ISS
← Field Notes
AI & AGENTS
April 11, 2026 · AI & Agents · 2 min read

Running a Personal Colony of Claude Agents Over Telegram

A single-operator control plane for a swarm of local Claude Code agents, each a persistent tmux session with its own project and personality, routed through one Telegram bot.

Operator Swarm is my personal colony of autonomous Claude agents, the ones I think of as v1 through v6, the sibs. Each agent is a persistent tmux session running Claude Code with a name, a project directory, a personality, and a job. I talk to them through one Telegram bot. They talk back, and they can talk to each other.

The important framing up front: this is not a client product. There is no approval flow, no gateway filtering, no sandboxing. You set one operator Telegram ID and that is who controls the swarm. For the sandboxed-strangers version there is a separate project, colony-agent-kit. Operator Swarm is deliberately the trusting, single-owner build.

One bot, many agents

The transport is the part I care most about. Each agent lives in its own tmux session with its own project dir and CLAUDE.md, and a single Telegram bot is the router. You DM the bot and address a specific agent, and its output comes back to you as clean code blocks, chunked automatically when a response runs long. Commands like listing the swarm, DMing one agent, broadcasting to all of them, checking tmux state, and tailing an agent's hook debug log all flow through that one channel.

Keeping the interface to one bot matters. The alternative, a separate chat per agent, does not scale in your head. With one router you address agents by name and the mental model stays flat.

Agents that see each other

The agents are not isolated. There is a shared channel, named with a GROUP prefix, that lets them see each other and communicate. That inter-agent visibility is what turns a set of parallel workers into something closer to a colony, where one agent's output can become another's input.

A couple of supporting pieces make the whole thing livable. Long instructions get prefixed and expanded by a prompt condenser integration, so I can fire off a short token and have it unfold into a full instruction on the agent side. Heartbeat pokes keep agents from going idle. And a skills system means dropping markdown files into a skills directory mounts them into every agent's local skills folder, so a new capability propagates across the swarm at once.

The takeaway from living with this build is that autonomy is cheap and coordination is the real cost. Spinning up N Claude Code sessions is trivial. The value is entirely in the routing, the shared channel, and the skill propagation, which is to say the plumbing that lets a pile of agents behave like one operable system.

Have something that needs building, or stabilizing?

These notes are the work log. The paid work runs through Moonshine Labs, my product and engineering studio. Tell us what you're building, or grab a call.

Work with us →
the studio: moonshinelabs.io