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
| Answer | Where | |
|---|---|---|
| Who can use it | Serves nobody until you list your Telegram ID | src/takopi/telegram/parsing.py:98-102 — if allowed is not None and msg_chat_id not in allowed: return None |
| With no allowlist set | transports.telegram.chat_id in ~/.takopi/takopi.toml (required); allowed_user_ids (default empty) is an optional per-sender filter | src/takopi/settings.py:105-107 — bot_token and chat_id are required fields |
| Before the agent acts | runs the agent with permission prompts switched off | src/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 token | Read from the environment or a config file; no real token is committed | |