https://github.com/maxwelljens/llm_aggregator
A CLI tool to aggregate RSS feeds and summarise them with LLMs
https://github.com/maxwelljens/llm_aggregator
aggregator ai automation cli llm rss rss-feed terminal tui
Last synced: 10 days ago
JSON representation
A CLI tool to aggregate RSS feeds and summarise them with LLMs
- Host: GitHub
- URL: https://github.com/maxwelljens/llm_aggregator
- Owner: maxwelljens
- License: eupl-1.2
- Created: 2026-05-14T08:09:23.000Z (about 2 months ago)
- Default Branch: master
- Last Pushed: 2026-05-14T08:19:30.000Z (about 2 months ago)
- Last Synced: 2026-05-14T10:28:37.930Z (about 2 months ago)
- Topics: aggregator, ai, automation, cli, llm, rss, rss-feed, terminal, tui
- Language: Go
- Homepage: https://codeberg.org/maxwelljensen/llm_aggregator
- Size: 3.27 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
llm_aggregator
Aggregate RSS feeds and summarise them with LLMs


---
## 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
```bash
# Create a feeds file
cat > feeds.txt << 'EOF'
https://news.ycombinator.com/rss
https://lwn.net/headlines/newrss
EOF
# Run
llm_aggregator --api-key --base-url \
-f feeds.txt -p "What are the top tech stories today?"
```
**First run?** See [docs/USAGE.md](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.

---
## 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](docs/USAGE.md#configuration) for the full reference).
## Building
Detailed build instructions (standard build, goreleaser, cross-compilation,
man page installation, tests, and linting) are in
[docs/BUILD.md](docs/BUILD.md).
---
## Licence
This project is licensed under [European Union Public Licence
1.2](https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12).