BriefBot turns RSS feeds, web pages, and JSON APIs into a single AI-edited digest — delivered to Telegram, email, or Feishu. No server needed: it runs free on GitHub Actions.
Instant download·Works with zero API keys·Under 700 lines of Python
Day-1 validation, run on live sources with one command and zero API keys.
pulled from 4 live RSS feeds → one clean digest in a single message
repo stats snapshot, diffed automatically on every run — you only hear about changes
from a tracked repo, delivered as they ship
second run the same day: silently skipped everything already reported
Full 3-day validation report — actual digests and field-diff alerts from live sources — ships with the download.
One YAML file describes the whole pipeline. You read it in one sitting — all of it.
What to watch, how the brief should read (your own editor prompt), where to deliver. Secrets stay in env vars — never in the config.
Laptop cron, a $5 VPS, or the bundled GitHub Actions workflow — free, scheduled, with state cached between runs.
One message a day: new items only, in your editorial voice. Nothing changed? Nothing sent. Silence by design.
This is a real config — a daily tech digest, pushed to Telegram.
# watch → summarize → deliver, described once: llm: base_url: ${OPENAI_BASE_URL:-https://api.openai.com/v1} # any OpenAI-compatible endpoint api_key: ${OPENAI_API_KEY} # empty ⇒ plain mode, no key needed model: ${OPENAI_MODEL:-gpt-4o-mini} jobs: - name: tech-digest subject: "Morning Tech Brief — {today} ({items} items)" sources: - type: rss url: https://techcrunch.com/feed/ limit: 15 digest: mode: llm # llm | plain (plain needs no API key) only_new: true # skip items already reported channels: - type: telegram bot_token: ${TELEGRAM_BOT_TOKEN} chat_id: ${TELEGRAM_CHAT_ID}
Built for people who'd rather own a pipeline than rent one.
Copy the example config, run one command, get tomorrow's brief. Works with no API key at all — rule-based plain mode.
OpenAI, DeepSeek, OpenRouter, Groq, or a local Ollama — any OpenAI-compatible endpoint. Your editor prompt, your voice.
CSS selectors against any page, JSON APIs with field templates. Alerts fire only when a value actually changes — perfect for price watching.
A tiny state file dedupes items and diffs watched fields. The GitHub Actions workflow caches it, so a free cloud run behaves like a long-running server.
Tested against SSL-intercepting corporate networks and anti-bot pages. One hardened HTTP client — readable in 20 lines — with loud per-source failures that never kill the job.
Under 700 lines of readable Python, 4 dependencies, MIT license. Read it all in one sitting. Fork it, rename it, ship it as your own product.
One config, many use cases — swap the sources and you have a different product.
Honest scoping beats refunds. Here's the line.
One-time payment. Instant download. Yours forever.
Secure checkout by Creem (Merchant of Record) is being activated — email us and we'll send your checkout link the moment it goes live. Taxes handled, instant download after payment.
Not for you? Request a refund within the checkout window (up to 60 days) — see the Refund Policy. No hard feelings.
The questions everyone asks before buying.
No — plain mode works with zero keys. LLM mode accepts any OpenAI-compatible endpoint, including free local models via Ollama.
$0 on GitHub Actions. LLM mode costs cents per run with a budget model.
No. State-based dedupe and field-diffing mean you only get new items and actual changes. Runs with nothing new are silent by design.
All fetches go through one hardened HTTP client. Real-world tested: feeds behind SSL interception work out of the box. Hard anti-bot sites fail loudly per-source while the rest of the job keeps running.
If it's not for you, request a refund within the checkout window (up to 60 days via Creem) — no hard feelings.
Yes — the source is MIT. Fork it, rename it, ship it as your own.