https://github.com/backmeupplz/telegram-chat-summarizer
Telegram group bot that stores chat history and summarizes recent topics with Kimi K2.6 Turbo.
https://github.com/backmeupplz/telegram-chat-summarizer
bun fireworks grammy kimi sqlite summarization telegram-bot
Last synced: 8 days ago
JSON representation
Telegram group bot that stores chat history and summarizes recent topics with Kimi K2.6 Turbo.
- Host: GitHub
- URL: https://github.com/backmeupplz/telegram-chat-summarizer
- Owner: backmeupplz
- Created: 2026-05-29T16:42:49.000Z (23 days ago)
- Default Branch: main
- Last Pushed: 2026-06-11T20:18:28.000Z (10 days ago)
- Last Synced: 2026-06-11T22:11:37.370Z (10 days ago)
- Topics: bun, fireworks, grammy, kimi, sqlite, summarization, telegram-bot
- Language: TypeScript
- Homepage: https://t.me/chad_summary_bot
- Size: 1.19 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Telegram Chat Summarizer
Telegram group bot that stores incoming group messages in a local SQLite database and lets anyone in the group ask Kimi K2.6 Turbo for a summary of recent topics.
Bot: [@chad_summary_bot](https://t.me/chad_summary_bot)
## What It Does
- Stores incoming text, captions, and basic media placeholders separately per Telegram group.
- Lets any group member run `/summary` for the last 24 hours, or pass a window like `/summary 7d` or `/summary 100`.
- Uses Kimi K2.6 Turbo through Fireworks for concise summaries.
- Streams summaries by editing a plain-text placeholder message.
- Keeps secrets in environment variables, not in git.
Important Telegram limitation: bots can only store messages they receive after being added. The bot needs permission to receive normal group messages.
## Telegram Setup
1. Create or configure the Telegram bot.
2. Allow it to receive normal group messages.
3. Add the bot to a group.
4. Send `/start` or `/help` in the group.
5. After some chat happens, run `/summary`.
## Environment
Copy `.env.example` to `.env` locally, or set these variables in Easypanel:
- `TELEGRAM_BOT_TOKEN`
- `FIREWORKS_API_KEY`
- `FIREWORKS_BASE_URL`
- `FIREWORKS_MODEL`
- `DATABASE_PATH`
- `SUMMARY_DEFAULT_MESSAGES`
- `SUMMARY_MAX_MESSAGES`
- `AI_TEMPERATURE`
- `AI_MAX_TOKENS`
- `DISABLE_REASONING` (defaults to `true`; sends `chat_template_kwargs.enable_thinking=false` so reasoning models like MiMo return visible summary text instead of spending the budget on hidden chain-of-thought. Set to `false` to allow reasoning.)
Use a persistent volume for `DATABASE_PATH`, for example `/app/data/chat-summaries.sqlite`.
## Deployment
Use Nixpacks on Hetzner Easypanel. Set the env vars above in Easypanel and mount a persistent data volume at `/app/data`.
## Development
```bash
bun install
bun test
bun run typecheck
bun run start
```