{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreie7io4gwxmxufliaongy6o2jwfyamiwplw6jnz2mvsfz2spalbvj4",
"uri": "at://did:plc:pgryn3ephfd2xgft23qokfzt/app.bsky.feed.post/3mkkd672rvc32"
},
"path": "/t/llm-aggregator-a-tool-to-aggregate-rss-feeds-and-summarise-them-with-llms/175625#post_1",
"publishedAt": "2026-04-28T09:28:33.000Z",
"site": "https://discuss.huggingface.co",
"tags": [
"llm_aggregator",
"gofeed",
"openai-go",
"bubbletea",
"lipgloss",
"releases"
],
"textContent": "Hey everyone,\n\nI’d like to share a tool I’ve been developing for my own workflow: llm_aggregator.\n\n**What is it?** Free software written in Go that fetches articles from multiple RSS/Atom/JSON feeds, optionally filters them by date or keywords, then sends them as a query to any LLM through OpenAI-compatible API to produce a concise summary, or analysis, or whatever you prompt it for.\n\n**Why I built it:** I like some news sources, but I don’t really care for keeping up with hundreds of articles a day. I wanted something that:\n\n * Works completely from the terminal.\n * Does one thing well: fetches, filters, summarises; the Linux way.\n * Works with any LLM providers.\n\n\n\n**How it works: a quick example**\n\n\n # Feed file (one URL per line)\n $ cat feeds.txt\n https://news.ycombinator.com/rss\n https://lwn.net/headlines/newrss\n https://opensource.com/feed\n\n # Basic usage: summarise recent tech news\n $ llm_aggregator --api-key <API_KEY> --base-url <API_URL> \\\n --feeds-file feeds.txt \\\n --prompt \"What are the latest trends in open-source AI?\"\n\n # Power-user mode: filter, limit, output to JSON\n $ llm_aggregator -f feeds.txt \\\n -p \"Summarize Linux kernel news\" \\\n --include-keywords linux,kernel \\\n --max-days-old 2 \\\n --max-total-articles 15 \\\n --output json \\\n --output-file kernel_summary.json\n\n # Bonus: a bubbletea TUI with live progress bars!\n $ llm_aggregator --feeds-file feeds.txt --prompt \"Tech highlights\" --tui\n\n\n**Technical highlights**\n\n * **Written in Go:** single binary, available on every platform (Linux, macOS, Windows), zero runtime dependencies. `go build ./cmd/llm_aggregator.go` is all you need.\n * **Feed parsing** by gofeed: handles RSS, Atom, and JSON.\n * **LLM integration** via openai-go: use any OpenAI-compatible endpoint (Deepseek, Claude, Ollama, etc.) by changing a few parameters.\n * **Filtering & processing pipeline:** articles are fetched, filtered (date/keywords), content extracted (with `goquery` fallback when feeds are snippet-only), and assembled into a context-aware prompt.\n * **Flexible output:** plain text, Markdown, or structured JSON (optionally including the original articles).\n * **Sensible defaults:** silent by default, verbose logging behind `-v/--verbose`, environment variable for API key.\n * **TUI:** built with bubbletea & lipgloss. Still rough, but should be serviceable.\n\n\n\n**Configuration**\n\nAll options are command flags, a TOML file at `~/.config/llm_aggregator/config.toml` or environment variables prefixed with `LLM_AGGREGATOR_`. More information on this in the repository, but I explicitly designed it to fit any Linux workflow.\n\n**What I’d love feedback on**\n\n * The TUI (`-t/--tui`) experience: is it genuinely useful? If so, would something add to it?\n * Your personal use case and if anything is missing that would add to your workflow.\n\n\n\nI haven’t had anyone else try this software, so expect bugs or obvious things that I might have missed. However, I did already successfully use it to make a personal daily digest, using a Python script that compiles a newspaper in LaTeX, from about 25 feeds.\n\n**Interested?** Check out releases in the repository and grab a binary for your platform.\n\nHappy to answer questions. I want this program to benefit as many people as possible.",
"title": "LLM Aggregator - A tool to aggregate RSS feeds and summarise them with LLMs"
}