agentsclimarketplace

Rss news

Skill techstay/some-skills/skills/rss-news

A collection of AI agent skills that extend LLM capabilities with Obsidian task management, multi-backend web search, and more.

Install
npx -y skills add techstay/some-skills --skill rss-news

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

RSS news aggregation skill. Fetches news by category from configured RSS sources and outputs each article as a title + summary block. Suitable for getting news updates, RSS feed subscriptions, blog or site updates, news source aggregation, and browsing news by category. The script ships with local caching (default 4 hours, adjustable) and by default only shows news from the last 24 hours, with filtering by category and time window.

The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

6.7 KB, as published. Nobody here has run it

RSS News

Fetches news from RSS sources by category as defined in news-source.json, deduplicates via cache, and outputs each article as a title + summary block followed by a total count.

Quick Reference

cd skills/rss-news/scripts

# Without -c, all available categories are fetched by default
uv run rss-fetch.py

# Single category
uv run rss-fetch.py -c politics
uv run rss-fetch.py -c technology

# Multiple categories (comma-separated)
uv run rss-fetch.py -c politics,technology

# Only news from the last 48 hours (default 24, 0 means no time limit)
uv run rss-fetch.py -c politics --within-hours 48
uv run rss-fetch.py -c sports --within-hours 0

# Only refresh the cache, no news output (useful for warming cache)
uv run rss-fetch.py --fetch-only

# Force a cache refresh without outputting anything
uv run rss-fetch.py --fetch-only --refetch-interval-hours 0

Command Options

OptionDefaultDescription
-c, --categoryAll categoriesCategories to output, comma-separated, e.g. -c politics,technology. If omitted, outputs all available categories.
--refetch-interval-hours4Cache freshness threshold. Skips fetching when the cache exists and is younger than this many hours.
--within-hours24Only show news published within this many hours. 0 means no limit, showing all cached news.
--fetch-onlyOffOnly refresh the cache; do not output any news. Prints one status line to stdout on completion (news fetched successfully or cache is fresh). Respects --refetch-interval-hours; combine with --refetch-interval-hours 0 to force a refresh.
--debugOffEnables DEBUG-level logging, outputting fetch and cache details.
-h, --helpShow help.
--versionShow version.

Key Rules

RuleDescription
Use -c to select categories, omit for allCategory names are listed in the table below; comma-separate for multiple selections.
Cache is managed automaticallycache/rss_output.json skips fetching if younger than --refetch-interval-hours; auto-refreshes fully when stale or missing.
Use --within-hours to control time rangeDefaults to showing only news from the last 24 hours; pass 0 to show all.
Use --fetch-only to warm the cacheRefreshes the cache without producing any news output; respects --refetch-interval-hours for freshness gating.
Do not manually look for a refresh commandRefresh logic is built into the output flow; pass --refetch-interval-hours 0 to force a refresh.
The script only returns RSS summariesWhen full article text is needed, fetch the link with a web tool.
Fetch failures do not halt executionA single source failure is logged and skipped; other sources return normally.

Available Categories

Categories are defined by the script's Category enum and map to category names in news-source.json:

Category name (-c value)Maps to news-source.json category
chinaChina News
internationalInternational News
technologyTechnology
financeBusiness & Finance
politicsPolitics
sportsSports
scienceScience
healthHealth & Medicine
entertainmentEntertainment
cultureCulture & Education

Output Format

The script outputs each article as a title + summary block: the article title on the first line and the RSS summary text on the next line, blocks separated by a single blank line. A trailing total n news line reports how many articles were shown. Empty/whitespace-only summaries are skipped.

First article headline
First article's RSS summary text appears here.

Second article headline
Second article's RSS summary text appears here.

Third article headline
Third article's RSS summary text.

total 3 news

Field descriptions:

FieldMeaning
titleThe article title, printed as the first line of each block
summaryThe RSS summary/description text of each article, HTML-stripped, on the line after the title

Caching

  • Cache file: cache/rss_output.json
  • Fetching uses HTTP etag / modified conditional requests; when a source returns 304, cached news is preserved and not wiped
  • last_sync must reach --refetch-interval-hours (default 4 hours) before refetching
  • Force refresh: uv run rss-fetch.py --refetch-interval-hours 0

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.