takopi
🐙 he just wants to help-pi
telegram bot for codex. runs codex exec --json, streams progress, and supports resumable sessions.
features
stateless resume via codex resume <token> lines in chat.
edits a single progress message while codex runs (commands, tools, notes, file changes, elapsed time).
renders markdown to telegram entities.
runs in parallel across threads and queues per thread to keep codex history sane.
requirements
uvfor installation (curl -LsSf https://astral.sh/uv/install.sh | sh)codexon PATH (npm install -g @openai/codexorbrew install codex)
install
uv tool install takopito install astakopi- or try it with
uvx takopi
setup
- get
bot_tokenfrom @BotFather - get
chat_idfrom @myidbot - send
/startto the bot (telegram won't let it message you first) - run
codexonce interactively in the repo to trust the directory
config
takopi reads .takopi/takopi.toml in the current repo, otherwise ~/.takopi/takopi.toml.
legacy .codex/takopi.toml is migrated automatically.
bot_token = "123456789:ABCdefGHIjklMNOpqrsTUVwxyz"
chat_id = 123456789
[codex]
# optional: profile from ~/.codex/config.toml
profile = "takopi"
usage
start takopi in the repo you want to work on:
cd ~/dev/your-repo
takopi
send a message to the bot.
to continue a thread, reply to a bot message containing a resume line.
to stop a run, reply to the progress message with /cancel.
cli
default: progress is silent, final answer is sent as a new message (notification), progress message is deleted.
--no-final-notify edits the progress message into the final answer (no new notification).
--debug enables verbose logs.
notes
- private chat only
- run exactly one instance per bot token
development
see docs/specification.md and docs/developing.md.