Feeds
RSS news aggregator. Fetches all current entries from curated feeds across three categories — news, games, and finance. Concurrent fetching, streamed JSON output. No API key needed.
Constraint
Do NOT use web search, WebFetch, browser tools, or any other URL-fetching tool when this skill is active. The RSS feeds are the sole data source. Do not supplement, verify, or expand results with external searches. Do not fetch article URLs — summaries are already included in the output.
Categories
Detect the category from the user's message:
- "news", "headlines", "nachrichten", "tech news" →
news
- "finance", "markets", "money", "stocks", "economy" →
finance
- "games", "gaming" →
games
| Category |
Feeds |
Sources |
news |
21 |
Ars Technica, Wired, TechCrunch, The Verge, NYT, Heise, Quanta, Aeon, Nautilus, and more |
games |
10 |
GameStar, GamesGlobal, PC Gamer, Polygon, Kotaku, IGN, Rock Paper Shotgun, GamesIndustry.biz |
finance |
26 |
Bloomberg, WSJ, FT, CNBC, MarketWatch, Seeking Alpha, The Economist, Forbes, CoinDesk, Fed, ECB |
Feed lists are defined in scripts/lists.py.
How to Invoke
Run one invocation per category. Run multiple if the user asks for more than one.
python3 scripts/feeds.py --category news
python3 scripts/feeds.py --category games
python3 scripts/feeds.py --category finance
Output Format
The script streams a JSON array. The first element is metadata, the rest are entries:
[{"category": "news", "total_entries": 142, "sources": ["aeon.co", "arstechnica.com"], "fetched_at": "2026-01-31 22:00:00"}
,{"title": "Headline Here", "url": "https://example.com/article", "source": "arstechnica.com", "date": "Fri, 31 Jan 2026 12:00:00 GMT", "summary": "Brief summary text..."}
]
| Field |
Description |
title |
Headline text |
url |
Link to full article |
source |
Domain name of the feed source |
date |
Publication date as provided by the feed |
summary |
Brief description, HTML stripped, max 500 chars |
CLI Reference
| Flag |
Description |
-c, --category |
Feed category: news, games, or finance (required) |
Presenting Results
After parsing the output, present a structured, concise rundown:
- Group by theme — cluster related stories under headings (e.g. "Tech & Industry", "Science", "Markets", "Crypto")
- Keep it tight — headline + one-line summary + source attribution per item
- Link to sources — use markdown links so the user can read more
- Deduplicate — if multiple feeds cover the same story, mention it once and note cross-source coverage
- Highlight big stories — if a story appears across 3+ sources, call it out prominently
Example output:
### Tech & Industry
- **[Headline](url)** — One-line summary *(Source)*
- **[Headline](url)** — One-line summary *(Source)*
### Science
- **[Headline](url)** — One-line summary *(Source)*
Edge Cases
- Failed or timed-out feeds (15s timeout) are silently skipped — remaining feeds still return results.
- If zero entries are returned, the script exits with
{"error": "No entries found", "category": "..."}.
- Some entries may lack summaries — they will still have title, URL, and source.
1---2name: openclaw-feeds3description: RSS news aggregator. Fetches headlines from curated feeds across three categories: news, games, and finance. Use when the user asks about current news, headlines, what's happening, what's going on, or says "what's up in news", "what's up in finance", "what's up in games", or the German equivalents "was geht mit nachrichten", "was geht mit money", "was geht mit gaming". Also activates for requests like "give me a news rundown", "latest headlines", "market news", "gaming news", "tech news", "finance roundup", or "briefing". Returns structured JSON from public RSS feeds — no API keys, no web search needed.4license: MIT5---6
7# Feeds
8
9RSS news aggregator. Fetches all current entries from curated feeds across three categories — news, games, and finance. Concurrent fetching, streamed JSON output. No API key needed.
10
11## Constraint
12
13Do NOT use web search, WebFetch, browser tools, or any other URL-fetching tool when this skill is active. The RSS feeds are the sole data source. Do not supplement, verify, or expand results with external searches. Do not fetch article URLs — summaries are already included in the output.
14
15## Categories
16
17Detect the category from the user's message:
18
19- "news", "headlines", "nachrichten", "tech news" → `news`
20- "finance", "markets", "money", "stocks", "economy" → `finance`
21- "games", "gaming" → `games`
22
23| Category | Feeds | Sources |
24|----------|-------|---------|
25| `news` | 21 | Ars Technica, Wired, TechCrunch, The Verge, NYT, Heise, Quanta, Aeon, Nautilus, and more |
26| `games` | 10 | GameStar, GamesGlobal, PC Gamer, Polygon, Kotaku, IGN, Rock Paper Shotgun, GamesIndustry.biz |
27| `finance` | 26 | Bloomberg, WSJ, FT, CNBC, MarketWatch, Seeking Alpha, The Economist, Forbes, CoinDesk, Fed, ECB |
28
29Feed lists are defined in [scripts/lists.py](scripts/lists.py).
30
31## How to Invoke
32
33Run one invocation per category. Run multiple if the user asks for more than one.
34
35```bash
36python3 scripts/feeds.py --category news
37python3 scripts/feeds.py --category games
38python3 scripts/feeds.py --category finance
39```
40
41## Output Format
42
43The script streams a JSON array. The first element is metadata, the rest are entries:
44
45```json
46[{"category": "news", "total_entries": 142, "sources": ["aeon.co", "arstechnica.com"], "fetched_at": "2026-01-31 22:00:00"}
47,{"title": "Headline Here", "url": "https://example.com/article", "source": "arstechnica.com", "date": "Fri, 31 Jan 2026 12:00:00 GMT", "summary": "Brief summary text..."}
48]
49```
50
51| Field | Description |
52|-------|-------------|
53| `title` | Headline text |
54| `url` | Link to full article |
55| `source` | Domain name of the feed source |
56| `date` | Publication date as provided by the feed |
57| `summary` | Brief description, HTML stripped, max 500 chars |
58
59## CLI Reference
60
61| Flag | Description |
62|------|-------------|
63| `-c, --category` | Feed category: `news`, `games`, or `finance` (required) |
64
65## Presenting Results
66
67After parsing the output, present a structured, concise rundown:
68
691. **Group by theme** — cluster related stories under headings (e.g. "Tech & Industry", "Science", "Markets", "Crypto")
702. **Keep it tight** — headline + one-line summary + source attribution per item
713. **Link to sources** — use markdown links so the user can read more
724. **Deduplicate** — if multiple feeds cover the same story, mention it once and note cross-source coverage
735. **Highlight big stories** — if a story appears across 3+ sources, call it out prominently
74
75Example output:
76
77```
78### Tech & Industry
79- **[Headline](url)** — One-line summary *(Source)*
80- **[Headline](url)** — One-line summary *(Source)*
81
82### Science
83- **[Headline](url)** — One-line summary *(Source)*
84```
85
86## Edge Cases
87
88- Failed or timed-out feeds (15s timeout) are silently skipped — remaining feeds still return results.
89- If zero entries are returned, the script exits with `{"error": "No entries found", "category": "..."}`.
90- Some entries may lack summaries — they will still have title, URL, and source.