@aku11i/rosso
v0.2.1
Published
Build an RSS feed from various sources
Readme
Rosso
Build an RSS feed from various sources.
Rosso is a small CLI that lets you combine multiple RSS feeds into a single feed for your reader.
fetch: downloads RSS feeds defined insource.yamland caches items locally (as JSON)build: generates an aggregated RSS feed from the cache (offline; no network access)
Install
npm install -g @aku11i/rossoRequires Node.js >=22.
Quick start
Create source.yaml:
name: My Feed
description: A combined feed for my reader
link: https://example.com/
feeds:
- type: rss
url: https://blog.example.com/rss.xml
- type: rss
url: https://news.example.com/feed.xmlFetch and cache:
rosso fetch source.yamlBuild an RSS file:
rosso build source.yaml --output-file ./dist/rosso.xmlIf you omit --output-file, Rosso prints the RSS XML to stdout.
source.yaml format
Required fields:
namedescriptionlinkfeeds
Feed entries:
feeds:
- type: rss
url: https://example.com/feed.xmlDuplicate feed URLs are removed within the same source.
Optional filtering (LLM)
Add a filter prompt:
filter:
prompt: Keep items about TypeScript and Node.js.Then pass a model when running fetch:
rosso fetch source.yaml --model-provider openai --model gpt-5-miniProviders: openai, github.
API keys:
openai: setOPENAI_API_KEYor pass--model-provider-api-keygithub: setGITHUB_TOKEN, login viagh auth token, or pass--model-provider-api-key
Cache
- Default location: your OS user cache directory
- Override:
--cache-dir <dir> fetchupdates the cache using the networkbuildreads only from the cache (no network)
CLI
rosso fetch <source> [--cache-dir <dir>] [--model-provider ...]rosso build <source> [--cache-dir <dir>] [--output-file <file>]
Run rosso --help for full usage.
License
MIT (see LICENSE).
Development
- Requires Node.js
>=22 - Install:
pnpm install - Build:
pnpm build - Test:
pnpm test - Lint:
pnpm lint
