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 (seven 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 files containing AI instructions to produce a structured JSON output.
LICENSE The license file.
pyproject.toml The packaging configuration file.
requirements.txt The text file containing requirements to install.

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

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/]        # 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.

To configure this Digest to launch weekly, run:

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

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.1.0.tar.gz (15.5 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.1.0-py3-none-any.whl (13.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: tool_digest-0.1.0.tar.gz
  • Upload date:
  • Size: 15.5 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.1.0.tar.gz
Algorithm Hash digest
SHA256 2066d1dcd505d5d8348715c4994c7417e015c0883f6478c159d39dad56bf21f9
MD5 69b910ee54f257de077449825881617b
BLAKE2b-256 94c7476ac5a20f72ca34b6f0947326e8dc00d831b8b21e220ff685a263e2efcd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tool_digest-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 13.2 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.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1d57849eca008a78f73c8c1eac624f3cc12fcfbe12de445a3e2c0144010bf12f
MD5 dca98ed12ced665514b1d58c3ab86da8
BLAKE2b-256 b2bb6e92103ff6c31a95dc12bef8ed3bcae978271eaad0e3698321a75dffbc6a

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