A feed assistant Telegram bot written in Go.
Telekilogram aggregates content from RSS/Atom/JSON feeds and public Telegram channels, delivers daily digests, and optionally summarizes Telegram posts using OpenAI. It is designed to be reliable, predictable, and suitable for unattended operation.
- Follow RSS, Atom, and JSON feeds, as well as public Telegram channels:
- send a feed URL
- send a channel
@username - forward a message from a channel to the bot
- View the current feed list with
/list. - Unfollow feeds directly from the list.
- Receive an automatic 24-hour digest every day (default: 00:00 UTC).
- Request a 24-hour digest manually with
/digest. - Summarize Telegram channel posts using OpenAI:
- automatically falls back to local text truncation if
OPENAI_API_KEYis not set - summaries are cached for 24 hours to avoid reprocessing the same post across users
- cached summaries are invalidated if a Telegram post is edited
- automatically falls back to local text truncation if
- Message formatting:
- RSS / Atom / JSON feeds: grouped digest with post titles and links
- Telegram channels: grouped digest with AI-generated summaries (or trimmed text) linking to the original posts
- Configure user-specific settings via
/settings.
| Name | Required | Default | Description |
|---|---|---|---|
TOKEN |
Yes | – | Telegram bot token. |
DB_PATH |
No | db.sqlite |
Filesystem path to the SQLite database. The file is created automatically on first run. |
ALLOWED_USERS |
No | – | Comma-separated list of Telegram user IDs allowed to interact with the bot. |
OPENAI_API_KEY |
No | – | Enables OpenAI-based summaries for Telegram channel posts. If unset, local truncation is used instead. |
TOKEN="example"
DB_PATH="db.sqlite"
ALLOWED_USERS="1,2"
OPENAI_API_KEY="example"