Skip to content

hu553in/telekilogram

Telekilogram

CI go-test-coverage Go Report Card GitHub go.mod Go version

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.


Functionality

  • 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_KEY is 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
  • 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.

Environment variables

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.

Example configuration

TOKEN="example"
DB_PATH="db.sqlite"
ALLOWED_USERS="1,2"
OPENAI_API_KEY="example"

Releases

No releases published

Packages