Run a fleet of AI coding agents from your phone
Self-hosted, in one Telegram supergroup — each agent gets its own topic. Voice or text, files back, live sessions. No account. No vendor app.
Telegram‑native · multi‑agent · real terminals · park & wake · Codex too · fully self‑hosted
Runs Claude Code and Codex · v2.0.0 on npm · MIT
~/checkout-apiauth.test.ts…fix/login. Open a PR?A whole team of agents, in your pocket
The power of terminal coding agents — unchained from the terminal, and from any vendor.
Talk from Telegram
Text, voice, and files — both directions. Voice notes are transcribed — Groq, OpenAI, or local Whisper. Kick off a task from anywhere; get a diff or a file back in the chat.
Spawn & manage a fleet
Spawn agents on demand with /spawn and run several at once — one forum topic per agent, so every session stays its own clean thread.
Real terminals, park & wake
Every agent is a real terminal window you can watch — or take over and type. Close it and it parks, freeing RAM; message its topic and it wakes with context intact.
MCP-native, Codex too
Each agent ships a bundled MCP server — send_message / send_file straight back to its topic. Runs Claude Code and Codex (official CLI, no fork).
A thin Telegram layer over local runners
No backend, no webhook — one local process. Telegram is just the remote.
your phone your machine +--------------+ +---------------------------+ | Telegram | getUpdates | fleet runner | | supergroup | <= long-poll => | |- agents: claude·codex | | | no webhook | | (real pty terminals) | | 1 topic = | no URL | |- bundled fleet MCP | | 1 agent | <-- replies --- | `- ~/.fleet config | +--------------+ +---------------------------+ no backend · no cloud · nothing leaves your machine
fleet start); long-polls Telegram — no public URL, works behind NAT.send_message / send_file back to its topic.Two commands and a bot token
From zero to a working fleet in about five minutes — nothing to deploy.
$ npm i -g @sand0vvv/fleet $ fleet init # wizard → ~/.fleet $ fleet start # long-polls Telegram
/link once → /spawn ~/path/to/project — each agent gets its own topic and a real terminal window@BotFather → /newbot → copy the token. New group → enable Topics → add the bot as admin.
npm i -g @sand0vvv/fleet, then fleet init — an interactive wizard — and fleet start. Config and secrets stay in ~/.fleet.
Send /link in the group — once. Then /spawn a project per agent; text or voice the topic, get diffs and files back.
Node ≥ 18 · Claude Code logged in · Codex optional · Windows / macOS / Linux · MIT
Under a minute, phone to diff
Spawn an agent, hand it a task by voice, watch the work land back in the chat.
Questions
The honest answers — including how this differs from what already exists.
Claude Code already has remote features — why fleet?
~/.fleet. One supergroup holds the whole roster, each agent in its own topic, and it drives Codex as well as Claude Code. Want a managed service? Use those. Want to own the whole loop? That's fleet.Do I need an account or a separate app?
Where do the agents actually run?
fleet start) long-polls Telegram — no public URL, works behind NAT — and nothing routes through anyone's cloud except Telegram's own bot API.Claude only, or Codex too?
codex CLI — no fork. Same topics, same voice notes, same controls either way.What happens when I close an agent's window?
/hide parks it on purpose, /show brings the window back.Is it free?
Built by @sand0vvv
fleet is the tool my own agents run on, every day. I build the same kind of thing for clients — MCP servers, Claude/Codex integrations, agent systems that make a product usable by AI agents. Fixed scope, shipped in days, not months. If you're building in this space, my DMs are open.