{
  "$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"
}