Skip to content

news-recap

news-recap collects articles from RSS/Atom feeds and turns them into easy to read digest pages.

You can generate digest on schedule, for example at night.

The pipeline drives CLI agents such as ChatGPT Codex, Claude Code, and Antigravity CLI, so it runs on flat-rate subscriptions.

Running it daily for 7 days consumes roughly 20% of the weekly Claude subscription limit and about 10% for ChatGPT.

Alternatively it can run completely free with Antigravity CLI on the free tier. With slightly less quality and from time to time hitting the limit so some days will be left without news recap.

For comparison, Inoreader charges an additional \$19.90/month on top of a Pro subscription for AI-powered aggregation.

Quick start

The free way needs no API keys: install uv and the Antigravity CLI (agy, signed in with a Google account), then install news-recap:

uv tool install news-recap --upgrade --python 3.13

Get an RSS URL. Inoreader example: open the context menu of the folder, choose Properties, and copy the RSS link shown there.

Save it in your settings and create a digest:

news-recap config set rss "https://www.inoreader.com/stream/..."
news-recap config set language en          # the digest language; default ru
news-recap ingest
news-recap create
news-recap serve

news-recap config shows your settings file (~/.news_recap_data/config.toml): language, topics to exclude and follow, agent, feeds. To use a subscription agent instead of the free one: news-recap config set agent claude (or codex).

Or set up scheduling (details in Scheduled Runs):

news-recap schedule set

See CLI for the full command reference.

Optional: Jev

TypeSafe Jev can take over two yes/no decisions from the LLM: which headlines to exclude or rewrite (classify_backend) and which articles are duplicates (dedup_backend). It needs a paid API key (well under \$1 a month for classify, about \$0.75 for dedup) and saves agent launches, which matters on the free Antigravity tier.

Put the key in ~/.news_recap_data/.env (never in config.toml):

echo "TYPESAFE_API_KEY=..." >> ~/.news_recap_data/.env
news-recap config set classify_backend jev
news-recap config set dedup_backend jev

Jev reads exclude topics literally, so name what the stories are about ("celebrity gossip"), not where they come from ("tabloids"). Without a key, both steps stay on the LLM.