Coming Soon — Swarm is currently in development and will be available in an upcoming release.
How It Works
Each Octo instance runs an MCP server over HTTP. Peers connect as MCP clients. From the supervisor’s perspective, peer Octo tools appear alongside regular MCP tools — no new protocol to learn.MCP-over-HTTP
Each Octo exposes tools via a FastMCP HTTP server. Peers connect as standard MCP clients — zero custom protocol needed.
Shared Telegram
All Octo bots join the same Telegram group. The supervisor handles unaddressed messages. @mention a specific Octo to talk to it directly.
Capability Routing
Each instance declares its capabilities. The supervisor routes tasks to the best-fit peer automatically.
Always On
Swarm instances run continuously, accept tasks from peers, and deliver results — even when no human is actively chatting.
Architecture
Communication Layers
| Layer | Purpose | Protocol |
|---|---|---|
| Human to Octo | Commands, questions, results | Telegram group chat |
| Octo to Octo (visible) | Delegation the human should see | Telegram @mentions in group |
| Octo to Octo (silent) | Background tasks, heavy lifting | MCP-over-HTTP |
Peer Tools
Each Octo exposes four tools to its swarm peers:| Tool | Description |
|---|---|
ask(question, context) | Get an answer synchronously (uses the peer’s full graph) |
dispatch_task(task, context, priority) | Queue a long-running task for background execution |
check_task(task_id) | Poll for the status and result of a dispatched task |
get_info() | Get peer name, capabilities, and current load |
Telegram Group Mode
In group mode, multiple Octo bots share a single Telegram group with the human:- Unaddressed message — only the supervisor responds
- @mention a specific Octo — that Octo responds
- Reply to a bot’s message — that bot handles the follow-up
- Name mention (e.g., “sentinel, check the logs”) — the named Octo responds
Configuration
Environment Variables
Peer Registry
Peers are configured in.octo/swarm/peers.json:
Slash Commands
| Command | Description |
|---|---|
/swarm | Show swarm status (name, port, connected peers) |
/swarm peers | List all configured peers and their online status |
/swarm add <name> <url> | Add a new peer and rebuild the graph |
/swarm remove <name> | Remove a peer and rebuild the graph |
/swarm ping | Check all peers’ health immediately |
Example: Two-Instance Setup
Instance 1 — Atlas (MacBook, supervisor)
.env
Instance 2 — Sentinel (Raspberry Pi, worker)
.env
Security
Roadmap
Static Peers (Current)
Manual peer configuration via
peers.json and /swarm add. Health monitoring via HTTP.mDNS Discovery
Zero-config peer discovery on the local network using mDNS/Bonjour (
_octo-mcp._tcp.local).Authentication
SWARM_API_KEY bearer token for peer-to-peer auth via FastMCP’s built-in auth framework.
