A standalone TypeScript bot that bridges a Telegram chat to your locally-active Claude Code sessions — streaming Markdown replies, cron-scheduled tasks, multimodal input, guardrails, and a built-in admin console. Your code never leaves your machine.
CoBot puts it in your pocket: from any phone, a Telegram message starts or resumes a session in your project directory and streams the work back. Self-hosted, with the guardrails an autonomous code-executing agent needs.
Your dev machine stays on; you drive it from a phone in line at the coffee shop.
Markdown renders live in chat — tables, code, LaTeX — via progressive Rich Message edits.
Source, prompts, and session state stay on the host. Only chat traffic traverses the network.
Turn caps, daily cost/token quotas, an audit log, and interactive tool approval keep autonomy in check.
/projects lists whitelisted dirs (your devRoots); tap one to bind this Telegram chat to it.
Plain text, a photo, a PDF — CoBot starts (or resumes) a Claude Code session in that dir via the Agent SDK.
The assistant's output streams into the chat as Markdown. A per-chat FIFO queue keeps tasks serial; /stop interrupts.
# clone, install, link the `cobot` CLI git clone https://github.com/zaneven/CoBot.git && cd CoBot ./scripts/cobot.sh install # set your bot token + Telegram user id, whitelist your dev roots cp .env.example .env # then edit cp config.example.yaml config.yaml # start the background service cobot start
Progressive Rich Message edits, tables, code, LaTeX, HTML→plain fallback.
List, resume, and switch sessions across all your projects.
Per-chat FIFO. /stop interrupts, /drop clears the queue.
"Every morning, run the suite and report." List/enable/disable.
Send photos, PDFs, or log files alongside your prompt.
/skills lists available Skills; tap to fill the input bar.
/context shows the last turn's context-window % with a visual bar.
Tap ➕ to create a new dir with git init from chat.
Live tasks, costs, tool usage, logs, and config editing.
Turn cap, daily cost/token caps, audit log, interactive approval.
CoBot ships the controls that make unattended use controllable and observable.
TELEGRAM_ALLOWED_USERS gates access; unauthorized users are ignored.
/bind only accepts dirs under your devRoots — no escaping the sandbox.
DEFAULT_MAX_TURNS = 50 bounds a runaway tool loop.
dailyCostCapUsd / dailyTokenCap reject new tasks when exceeded.
Every task is recorded — cost, duration, tools, status — for forensics.
/approve interactive prompts before mutating tools; cron auto-approves.
Clone the repo, run one install command, and message your bot.