Skip to main content
Octo includes a full bidirectional Telegram bot that shares the same conversation thread as the CLI. Chat with your agents from your phone.

Create a Telegram Bot

1

Talk to BotFather

Open Telegram and search for @BotFather. Send:
/newbot
Follow the prompts to name your bot.
2

Copy the token

BotFather will give you a token like:
123456789:ABCdefGHIjklMNOpqrsTUVwxyz
3

Get your Telegram user ID

Talk to @userinfobot to get your numeric user ID.
4

Configure .env

TELEGRAM_BOT_TOKEN=123456789:ABCdefGHIjklMNOpqrsTUVwxyz
TELEGRAM_OWNER_ID=your_numeric_id
5

Start Octo

octo
The Telegram bot starts automatically alongside the CLI.

Features

The Telegram transport supports:
  • Text messages — full conversation with agents
  • Voice messages — transcribed via Whisper, replied to with TTS (requires ElevenLabs)
  • File attachments — agents send research reports and files as Telegram documents
  • Proactive messages — heartbeat and cron results delivered to your phone
  • Rich formatting — Markdown-to-HTML conversion for code blocks, bold, lists
  • Remote management — full slash command support for managing Octo from your phone

Telegram Commands

Octo registers its commands with Telegram on startup via set_my_commands(), so they appear in the autocomplete menu when you tap /.

Session Management

CommandDescription
/helpShow all available Telegram commands
/clearReset conversation (new thread)
/compactSummarize older messages to free context
/contextShow context window usage

Info

CommandDescription
/agentsList loaded agents
/modelShow current model

Skills

CommandDescription
/skillsList installed skills
/skills search <query>Search the skill registry
/skills install <name>Install a skill + rebuild graph
/skills remove <name>Remove a skill + rebuild graph

MCP Servers

CommandDescription
/mcpShow MCP server status
/mcp find <query>Search the MCP registry
/mcp remove <name>Remove a server + rebuild graph
/mcp disable <name>Disable a server + rebuild graph
/mcp enable <name>Enable a server + rebuild graph
/mcp reloadReload all MCP servers
/mcp install requires an interactive wizard and is not available via Telegram. Use the CLI or ask the AI to help configure it.

System

CommandDescription
/reloadHot-reload: re-reads .env, reloads config, rebuilds graph
/restartCold-restart: replaces the process via os.execv (same thread)
If Octo gets into a bad state (context overflow, stuck agent, broken tool calls), send /restart from Telegram to cold-restart without going to your Mac. The conversation resumes in the same thread.

Pass-Through

Any unrecognized /command passes through to the AI supervisor as regular text. This means /<agent_name> do something works from Telegram too.

User Authorization

By default, only the owner (configured via TELEGRAM_OWNER_ID) can use the bot. Manage access with:
CommandDescription
/authorize <user_id>Grant access to a user
/authorizeList authorized users
/revoke <user_id>Remove access
You can also reply to someone’s message and send /authorize to grant them access. Authorized users are stored in .octo/authorized_users.json.

Shared State

The Telegram bot shares the same conversation thread and graph lock as the CLI. This means:
  • Messages from CLI and Telegram appear in the same conversation
  • Agents have full context regardless of which transport you use
  • The asyncio.Lock prevents race conditions between transports
If you’re using both CLI and Telegram simultaneously, messages are serialized through the graph lock. One transport waits while the other’s request is being processed.

Voice

Enable voice responses with ElevenLabs:
ELEVENLABS_API_KEY=...
ELEVENLABS_VOICE_ID=...   # optional, uses default voice
Toggle in chat with /voice on or /voice off.