all repos — llm_aggregator @ master

A CLI tool to aggregate RSS feeds and summarise them with LLMs

2e7ca2ff
docs: clarify README
Maxwell Jensen 85795372+maxwelljens@users.noreply.github.com
Mon, 04 May 2026 20:33:29 +0200
f8680f68
refactor: update module path to codeberg.org/maxwelljensen/llm_aggregator

The module path now matches the canonical import path on Codeberg.
All internal imports updated accordingly.

Also moved the entry point to the module root so that
`go install codeberg.org/maxwelljensen/llm_aggregator@latest`
produces a binary named llm_aggregator in $GOPATH/bin.
Maxwell Jensen 85795372+maxwelljens@users.noreply.github.com
Mon, 04 May 2026 10:01:45 +0200
95ee75b0
docs: add missing flag

- Added `--stdin` to documentation
- Added a note regarding `-f/--feeds-file`
Maxwell Jensen 85795372+maxwelljens@users.noreply.github.com
Fri, 01 May 2026 15:20:58 +0200

llm_aggregator

LLM Aggregator logo
Aggregate RSS feeds and summarise them with LLMs

Codeberg Release Codeberg License


What is it?

llm_aggregator fetches articles from multiple RSS/Atom feeds, filters and processes the content, and sends it to any OpenAI-compatible LLM to produce a concise summary, without you needing to read dozens or hundreds of posts.

Supports: RSS 2.0, Atom, JSON Feed | OpenAI-compatible APIs | Local LLMs (Ollama, etc.) | TUI with live progress | Text/Markdown/JSON output


Quick start

# Create a feeds file
cat > feeds.txt << 'EOF'
https://news.ycombinator.com/rss
https://lwn.net/headlines/newrss
EOF

# Run
llm_aggregator --api-key <YOUR_KEY> --base-url <URL> \
-f feeds.txt -p "What are the top tech stories today?"

First run? See docs/USAGE.md for installation, configuration, and all available options.


Key features

| | | |–|–| | πŸš€ | Concurrent feed fetching with rate limiting | | πŸ” | Keyword filtering (include/exclude, case‑insensitive) | | πŸ“… | Date‑based filtering and sorting (date/title/source) | | πŸ€– | Any OpenAI-compatible API (Deepseek, Ollama, OpenRouter, …) | | πŸ–₯️ | Interactive TUI with progress bar and mouse scrolling | | πŸ“¦ | Config file, environment variables, and CLI flags | | πŸ“„ | Read feeds directly from stdin via --stdin | | πŸ”§ | Dry‑run mode to validate config without API calls |


TUI mode

Enable the TUI with -t for a colourful progress bar, live article counters, and elapsed time. The TUI renders LLM output as styled Markdown (headers, bold, code blocks, lists) and supports keyboard navigation (j/k, arrows, b, g/G) and mouse wheel scrolling.

LLM Aggregator action in GIF


Architecture

Feeds file / stdin
        ↓
  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
  β”‚  aggregator β”‚   RSS/Atom/JSON Feed parsing, concurrent fetching
  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
        ↓
  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
  β”‚  processor  β”‚   Filter by keywords/age, sort, truncate
  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
        ↓
  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
  β”‚     llm     β”‚   OpenAI-compatible API call
  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
        ↓
  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
  β”‚   output    β”‚   Text / Markdown / JSON
  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Configuration precedence

CLI flags  >  Environment variables  >  Config file  >  Defaults

Create ~/.config/llm_aggregator/config.toml (see docs/USAGE.md for the full reference).

Building

Detailed build instructions (standard build, goreleaser, cross-compilation, man page installation, tests, and linting) are in docs/BUILD.md.


Licence

This project is licensed under European Union Public Licence 1.2.

clone
git clone https://maxwelljensen.eu/llm_aggregator.git