Skip to main content

Build Status Coverage

news-recap

Your feeds. Fewer repeats. A clearer picture.

Turn RSS feeds into a daily digest: related reports grouped together, vague headlines clarified, and links back to the original sources. Choose the topics to follow, the noise to exclude, and the language to read in.

  • Read stories, not a wall of headlines. Related reports come together in topic sections, with summaries and links to their sources.
  • Get past the clickbait. When a headline hides the news, the pipeline fetches the article and rewrites the headline from its content.
  • Have it ready when you are. Schedule digest creation and read it in the browser. Interrupted runs resume from saved progress.

Quick start

The free way needs no API keys: install uv and the Antigravity CLI (agy), then run:

uv tool install news-recap --upgrade --python 3.13
news-recap config set rss "YOUR_RSS_URL"
news-recap config set language en    # the digest language; default ru
news-recap ingest
news-recap create
news-recap serve

Settings live in ~/.news_recap_data/config.toml (news-recap config shows them); use news-recap config set agent claude or codex for a subscription agent. For scheduled runs, optional Jev filtering and all settings, see the manual.

Under the hood

Storage that fits the workflow. I started with SQLite, SQLModel, and Alembic, then found that the database added more machinery than this batch-processing workflow needed. Typed msgspec structures now carry data through processing and JSON storage, with daily article partitions and resumable checkpoints. The database prototype remains available for comparison.

Spend model calls where judgment matters. Embeddings narrow down candidate duplicates; LLMs decide which reports belong together and write the digest. Code removes duplicate and overlapping blocks after generation. Full articles are fetched selectively, when their headlines need clarification.

Coding agents as pipeline workers. The pipeline invokes Codex, Claude Code, or Antigravity through their CLI interfaces, with task-specific model selection and saved intermediate results. The agent integration guide describes the launch commands and task contracts for adapting this approach to another batch-processing application.

Development process

In this project, I experimented with an iterative development workflow using Codex and Claude Code: written plans, implementation, and separate review passes, followed by trials on real news feeds.

Those trials also shaped the architecture. The pipeline experiments compare digest strategies on the same article corpus, including processing time, article coverage, and the resulting section structure.

Contributing

Bootstrap the development environment and install pre-commit hooks:

source ./activate.sh
pre-commit install

Run the checks and test suite:

uv run inv pre
uv run pytest --cov=src tests/

See the contributor guide for repository conventions and uv run invoke --list for available development tasks.

Allure test report

Metadata

Release files for news-recap 1.10.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for news-recap 1.10.0
File Size Uploaded Provenance
news_recap-1.10.0.tar.gz 955.8 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for news-recap 1.10.0
File Interpreter ABI Platform
news_recap-1.10.0-py3-none-any.whl Python 3 none any Details

Total release size: 1.1 MB

Release files / news_recap-1.10.0.tar.gz

Download URL news_recap-1.10.0.tar.gz
Size 955.8 kB
Tags Source
SHA-256 checksum
How to use checksums
6288dbdd000f27d4486b706b5af49cf400ff0044c873eb78044df9ab829adc4e
BLAKE2b-256 checksum
How to use checksums
e887cdf0eafa470f6d8beb2f33b42511120be74ed3c1711f7ef128199e3e500c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / news_recap-1.10.0-py3-none-any.whl

Download URL news_recap-1.10.0-py3-none-any.whl
Size 163.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5f77a93d5c8369cd27647511b4b024ade029ad2eff2e277fbd1f99b80cd11ed8
BLAKE2b-256 checksum
How to use checksums
2668e7f4b81868b16315a444d61e93ebb925e53548b976674bb1520899706790
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Security for news-recap 1.10.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page