Skip to main content
skill CX Codex

sports-news — Claude Code skill: sports headlines from RSS and Google

Pulls fresh sports headlines from RSS feeds and Google News, searches by query and filters by date. Handy for transfer rumours or match reports.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add machina-sports/sports-skills --skill sports-news -a claude-code
Open on GitHub

What sports-news does

The skill hands your agent two commands. fetch_feed reads an RSS/Atom feed by URL, while fetch_items searches Google News by query or reads a specific feed. Date filters after and before are available, plus sort_by_date. Under the hood there is a sports-skills CLI and a Python SDK, sports_skills.news, doing the same work.

Dates come from the system prompt's currentDate, not from guesswork. "This week" means 7 days back, "recent" means 3 days back. Skip sort_by_date=True and old articles slip into the results, so treat that flag as required for any "latest" request.

Google News only works as a pair: google_news=True together with a query. Without the query the results come back empty. Commands named get_news, search_news and get_headlines do not exist, even though the names look plausible — an agent that calls them gets nothing. Standings, scores and statistics are out of scope here: this skill returns text articles, not structured data.

What it helps with

  • pull fresh headlines about a club or player
  • filter news down to the last three days
  • read a curated BBC Sport or ESPN feed
  • build a weekly roundup across several sports
  • track transfer rumours before deadline day

Example prompts for the agent

  • What's the latest Arsenal transfer news?
  • Show me BBC Sport football headlines
  • Any Champions League news from this week?

How to install sports-news

1Skills CLI (Vercel)

npx skills add machina-sports/sports-skills --skill sports-news -a claude-code

2Manually: put the files in place

~/.claude/skills/sports-news/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/sports-news/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about sports-news

How do I install sports-news in Claude?

Run npx skills add machina-sports/sports-skills --skill sports-news -a claude-code. The skill lands at ~/.claude/skills/sports-news/SKILL.md.

What does sports-news do?

It fetches sports news from RSS/Atom feeds and Google News: headlines, query search, date filtering. You get text articles with sources and dates.

How is sports-news different from football-data or nba-data?

Those skills return structured data such as standings, scores and statistics. sports-news returns text articles only, so reach for it when you need coverage rather than numbers.

Source text

SKILL.md · MIT
---
name: sports-news
description: |
  Sports news via RSS/Atom feeds and Google News. Fetch headlines, search by query, filter by date. Covers football news, transfer rumors, match reports, and any sport via Google News.

  Use when: user asks for recent news, headlines, transfer rumors, or articles about any sport. Good for "what's the latest on [team/player]" questions. Supports any Google News query and curated RSS feeds (BBC Sport, ESPN, The Athletic, Sky Sports).
  Don't use when: user asks for structured data like standings, scores, statistics, or xG — use the sport-specific skill instead: football-data (soccer), nfl-data (NFL), nba-data (NBA), wnba-data (WNBA), nhl-data (NHL), mlb-data (MLB), tennis-data (tennis), golf-data (golf), cricket-data (cricket), cfb-data (college football), cbb-data (college basketball), or fastf1 (F1). Don't use for prediction market odds — use polymarket or kalshi. News results are text articles, not structured data.
license: MIT
metadata:
  author: machina-sports
  version: "0.1.0"
---

# Sports News

Before writing queries, consult `references/api-reference.md` for command parameters and `references/rss-feeds.md` for curated feed URLs.

## Quick Start

Prefer the CLI — it avoids Python import path issues:
```bash
sports-skills news fetch_items --google_news --query="Arsenal transfer" --limit=5
sports-skills news fetch_feed --url="https://feeds.bbci.co.uk/sport/football/rss.xml"
```

Python SDK (alternative):
```python
from sports_skills import news

articles = news.fetch_items(google_news=True, query="Arsenal transfer news", limit=10)
feed = news.fetch_feed(url="https://feeds.bbci.co.uk/sport/football/rss.xml")
```

## CRITICAL: Before Any Query

CRITICAL: Before calling any news command, verify:
- Dates are derived from the system prompt's `currentDate` — never hardcoded.
- `google_news=True` is always paired with a `query` parameter.
- `sort_by_date=True` is set for any "recent" or "latest" query.

## Choosing Dates

Derive the current date from the system prompt's date (e.g., `currentDate: 2026-02-16` means today is 2026-02-16).

- **"this week"**: `after = today - 7 days`
- **"recent" or "latest"**: `after = today - 3 days`
- **Specific date range**: use as-is

## Commands

| Command | Required | Optional | Description |
|---|---|---|---|
| `fetch_feed` | url | | Fetch an RSS/Atom feed by URL |
| `fetch_items` | | google_news, query, url, limit, after, before, sort_by_date | Fetch news from Google News or an RSS feed |

## Workflows

### Breaking News Check
1. `fetch_items --google_news --query="<topic>" --limit=5 --sort_by_date=True`
2. Present headlines with source and date.

### Topic Deep-Dive
1. `fetch_items --google_news --query="<topic>" --after=<7_days_ago> --sort_by_date=True --limit=10`
2. For curated sources, also try `fetch_feed --url="<rss_url>"`.
3. Cross-reference both for comprehensive coverage.

### Weekly Sports Roundup
1. For each sport of interest, `fetch_items --google_news --query="<sport> results" --after=<7_days_ago> --limit=5`.
2. Aggregate and present by sport.

## Examples

Example 1: Transfer news search
User says: "What's the latest Arsenal transfer news?"
Actions:
1. Derive `after` from `currentDate`: today minus 3 days
2. Call `fetch_items(google_news=True, query="Arsenal transfer news", after=<derived_date>, sort_by_date=True, limit=10)`
Result: Recent Arsenal transfer headlines with source, date, and links

Example 2: Curated RSS feed
User says: "Show me BBC Sport football headlines"
Actions:
1. Call `fetch_feed(url="https://feeds.bbci.co.uk/sport/football/rss.xml")`
Result: BBC Sport football feed title, last updated, and recent articles

Example 3: Date-filtered news
User says: "Any Champions League news from this week?"
Actions:
1. Derive `after` from `currentDate`: today minus 7 days
2. Call `fetch_items(google_news=True, query="Champions League", after=<derived_date>, sort_by_date=True, limit=10)`
Result: Champions League articles from the last 7 days, sorted newest first

## Commands that DO NOT exist — never call these

- ~~`get_news`~~ — does not exist. Use `fetch_feed` (for RSS) or `fetch_items` (for Google News search).
- ~~`search_news`~~ — does not exist. Use `fetch_items` with `google_news=True` and a `query` parameter.
- ~~`get_headlines`~~ — does not exist. Use `fetch_items` with `google_news=True`.

If a command is not listed in the Commands table above, it does not exist.

## Troubleshooting

Error: Google News returns empty results
Cause: `query` is missing or too narrow, or `google_news=True` is not set
Solution: Ensure `google_news=True` AND a `query` are both set. Try broader keywords (e.g., "Arsenal" instead of "Arsenal vs Chelsea goal")

Error: RSS feed returns an error
Cause: The feed URL may be temporarily down or the URL format has changed
Solution: Use Google News (`fetch_items` with `google_news=True`) as a fallback for the same topic

Error: Articles returned are old despite using "recent" query
Cause: `sort_by_date=True` is not set, or the `after` date filter is missing
Solution: Add `sort_by_date=True` and `after=<today - 3 days>` to ensure newest articles appear first

© machina-sports · MIT · machina-sports/sports-skills

Similar skills

All skills for Agent setup: memory, context, orchestration →

From the same set22

football-data This skill gives your agent football data: standings, fixtures, match stats, xG, transfers and forecasts. No API keys needed. CX Codex +1 2,300installs betting Converts odds, strips the vig, finds edge and sizes bets with the Kelly criterion. Useful when you have prices from two sources and want to know if there is value. CX Codex +1 1,600installs polymarket Pulls live Polymarket sports markets: prices, implied probabilities, order books and events. Useful when you need to know who the market favors. CX Codex +1 1,300installs kalshi This skill gives your agent Kalshi prediction market data: events, series, contracts, trades and candlesticks on sports outcomes. Useful when you want implied probabilities, not match results. CX Codex +1 1,000installs nba-data Skill for querying NBA scores, team rosters, and shot coordinates via CLI without API keys. Useful for analyzing live game summaries, injuries, and historical league stats back to 1946. CX Codex +1 989installs markets A skill that pairs ESPN schedules with Kalshi and Polymarket prediction markets: dashboards, odds comparison and bet evaluation. CX Codex +1 861installs nfl-data The skill gives your agent NFL schedules, rosters, stats and play-by-play through ESPN public endpoints and an nflverse backend. No API keys. CX Codex +1 752installs mlb-data Connects your coding agent to live and historical MLB data from ESPN and the official MLB API. Useful for pulling scores, rosters, injuries, and pitch analytics without API keys. CX Codex +1 737installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor