🎭Punakawan
omp <-> Telegram bridge

Talk to your coding agent from your pocket.

Punakawan turns omp into a Telegram bot. Long-polls Telegram, runs omp -p per chat in its own session directory, and gets out of the way — one Python file, stdlib only, one setup command.

curl -fsSL https://punakawan.raprast.asia/install | bash

Checks for omp itself and installs it first if it's missing, then walks you through bot token, allowed chats, and (on Linux) a systemd --user service so it survives reboots.

What it is

omp has no messaging gateway of its own. Punakawan is the thin frontend a framework would otherwise provide — nothing more than a long-poll loop, a per-chat session directory, and enough plumbing to make a Telegram chat feel like a real terminal.

Zero dependencies

One Python file, standard library only. No build step, no package manager, no framework to keep patched.

Sessions that persist

Each chat gets its own omp session directory — conversations stay coherent across restarts, not just messages.

Deploy without fear

The running bot is a validated copy, never the checkout you're editing. A bad pull gets byte-compiled, rejected, and rolled back before it ever reaches production.

Cross-platform by design

Process spawning and killing works natively on Linux, macOS, and Windows. The background-service story is Linux-only for now — everywhere else, you run it yourself.

Bot commands

Inline-keyboard picker over every model your configured providers can actually serve — pick a provider, then a model.

Full reference, cron jobs, and config variables: README on GitHub .

Install

  1. Create a bot with @BotFather and grab its token.
  2. Run the installer for your platform (above). It checks for omp, installs it if missing, fetches Punakawan, and hands off to the setup wizard.
  3. Paste your token, choose who's allowed to talk to the bot, and you're done — message it on Telegram.

Already have a checkout? python3 bridge.py setup runs the same wizard directly, and doubles as an editor for existing config.