Skip to main content

Technical watch summarization tool.

Project description

Digest

Digest is a simple tool to summarize a group of RSS feeds as a single markdown file on a regular basis.

Description

Digest helps easily keep up with many news source feeds and summarize them. Those summarized news are saved in markdown format in the news/ directory (automatically created if not existing). The aim of this project is to provide an easy way to automatically produce a weekly news digest from a group of RSS feeds.

Flow Logic

On launch, Digest works as follow:

  1. Fetch RSS feeds from the provided OPML URL
  2. Filter recent articles (7 or 30 last days)
  3. Send them to Gemini for summarization
  4. Generate a structured markdown file

Example Output

The is what the markdown file output looks like:

Digest - 15 April 2026

Period: 2026-04-08 • 2026-04-15
Source: 9 articles from 12 feeds.

Highlights

  • Bun v1.3.12 introduces native Markdown rendering and built-in cron scheduling.
  • New security integrations in Docker allow for smarter vulnerability prioritization via VEX statements.
  • Real-time data migration and cross-database querying are now easier with DBConvert Streams 2.0.
  • Pydantic v2.13.0 provides early support for Python 3.14 in its v1 namespace.
  • React improves Server Components stability with new cycle protection mechanisms.
  • ShadCN UI enhances DX with project preset switching and structured component trees.
  • Uvicorn adds WebSocket keepalive pings to improve long-lived connection reliability.

Details

Project Structure

The project contains several files and directories, which are the following:

Files Description
src/digest/cli.py The python module containing command-line interface functions.
src/digest/core.py The python module containing core functions.
src/digest/instructions.md The markdown file containing AI instructions to produce a structured JSON output.
CHANGELOG.md The markdown file listing the changes history of the tool.
LICENSE The text file defining the license of the tool.
README.md The markdown file introducting the tool.
pyproject.toml The packaging configuration file.

Prerequisites

Before installing Digest, make sure all of the following prerequisites are met:

1. OPML URL

To give Digest a source for the feeds to summarize, an OPML URL is required. It can be generated by using an external RSS tool (such as Inoreader, Feedly, etc.).

2. Google API Key

The news summarization is achieved by making an external call to Gemini 3 Flash Preview. An API key is therefore required, it can be generated here.

3. Scheduling

In order to schedule Digest so that it can run automatically, crontab is required. On Debian/Ubuntu, it can be installed as follows:

$ sudo apt install cron
$ service cron start

Installation

It is recommended to create a virtual environment before installing Digest:

$ python3 -m venv venv
$ source venv/bin/activate
$ pip install tool-digest

Configuration

To initialize a new Digest, run:

$ digest init <name>    [--language en --path news/ --frequency weekly]     # Initialize a new Digest with a name.

During initialization, the user will be prompted for:

  • an OPML URL (RSS feeds source)
  • a Gemini API Key

On initialization of a new Digest, a configuration is created at ~/.digest/config.<name>.env, and a news/ directory is created (where the init command is launched when no specific path is specified), in which the summarized news will be saved as a markdown file.

In weekly mode, to configure this Digest to launch automatically, run:

$ digest cron <name>    [--day monday --hour 9]             # Schedule a cronjob to run a Digest automatically every week on Monday.

In monthly mode, to configure this Digest to launch automatically, run:

$ digest cron <name>    [--day 15]                      # Schedule a cronjob to run a Digest automatically on the 15 of every month.

Even if a cronjob has been set, the virtual environment can be still be deactivated once Digest has been configured, it will still run automatically as expected. Do not delete the virtual environment though, or the cronjob will fail. If you want to delete the virtual environment, make sure you remove any Digest-related cronjob before.

Usage

Once a Digest is configured, the following commands can be used:

Run

$ digest run <name>                         [--silent]      # Run Digest to summarize a group of RSS feeds.

Manage

$ digest edit <name> <option> <value>       [--force]       # Edit a Digest by updating its configuration file.
$ digest rm <name>                          [--force]       # Remove a Digest by deleting its configuration file and its cronjob if it exists.
$ digest ls                                                 # List each configured Digest and its news/ output path, as well as the related cronjob if it exists.

Help

$ digest --help                                             # Show help with description for available commands.
$ digest <command> --help                                   # Show help with arguments/options description for the specified command.

Warning

Once a Digest created, it is recommended not to manually edit its configuration file located in the ~/.digest/ directory, as it may lead to unexpected behavior. To safely change the configuration of a Digest, use the dedicated digest edit <name> command.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tool_digest-0.2.0.tar.gz (16.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tool_digest-0.2.0-py3-none-any.whl (14.0 kB view details)

Uploaded Python 3

File details

Details for the file tool_digest-0.2.0.tar.gz.

File metadata

  • Download URL: tool_digest-0.2.0.tar.gz
  • Upload date:
  • Size: 16.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for tool_digest-0.2.0.tar.gz
Algorithm Hash digest
SHA256 c86cf8f59d5f364b4b3398ed2619d28999c953fb36cc7c51ae99c633213b240a
MD5 a7c2b7c9b1d34f5f5310e9845aea9362
BLAKE2b-256 301a6bd85457ae3ce00fb9bb312593a9b58f4d45bcd9920899feeab22728c567

See more details on using hashes here.

File details

Details for the file tool_digest-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: tool_digest-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 14.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for tool_digest-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cd6f63b826240d69ac58939513f1f5cd87d35cd1438b4726e2286bc1222a7e42
MD5 3afb2e753608ded05cd126d52838625c
BLAKE2b-256 b154bcfd9ce59583686bea8aaf3465e925bcbc7fd4660086d11953ea2210bc1c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page