← Open-source Telegram bots

banteg/takopi: source audit, 2026-10-10

Read from the source at commit e0123d4f9b25; the bot was not run (it needs a BotFather token). Each answer cites the file and line that shows it. All 20 bots

In short

Only the configured chat is served, but if that chat is a group every member can run the agent unless you also set allowed_user_ids. There is no approval step in Telegram: Codex approval requests are auto-accepted and Claude gets Bash, Read, Edit and Write pre-approved.

What the source shows

AnswerWhere
Who can use itServes nobody until you list your Telegram IDsrc/takopi/telegram/parsing.py:98-102 — if allowed is not None and msg_chat_id not in allowed: return None
With no allowlist settransports.telegram.chat_id in ~/.takopi/takopi.toml (required); allowed_user_ids (default empty) is an optional per-sender filtersrc/takopi/settings.py:105-107 — bot_token and chat_id are required fields
Before the agent actsruns the agent with permission prompts switched offsrc/takopi/runners/codex.py:877-881 — approval requests return {"decision": "accept"}; src/takopi/runners/claude.py:24 — DEFAULT_ALLOWED_TOOLS = ["Bash", "Read", "Edit", "Write"]
Bot tokenRead from the environment or a config file; no real token is committed