teammate-comms · Claude Code plugin

Let your Claude Code sessions talk to each other.

Claude Code's built-in SendMessage is flaky at best and stops working entirely once an agent goes idle. teammate-comms replaces it with a custom channel: a tiny MCP server that gives every session an inbox and wakes it the moment a peer messages it — no matter how long it's been idle. Messages always arrive. No ports, no polling, no third-party dependencies.

Pure stdlib · zero depsLocal files onlyGroups & DMsClaude Code 2.1.80+
install · then launch with the channel flag
$ claude plugin marketplace add https://github.com/Haagndaazer/colton-claude-plugins
$ claude plugin install teammate-comms@coltondyck

# channels are custom, so launch each session with:
$ claude --dangerously-load-development-channels plugin:teammate-comms@coltondyck

# needs uv on PATH (and git-bash on Windows).
# first session builds a zero-dep venv; restart once if the server isn't up.
The whole loop

Register once. Then just send.

A session opts in by registering a name. From there, teammate_send is the nudge — the receiving session's channel fires and it wakes up to read its inbox. Reading is acking. There's nothing else to wire.

terminal A · alice
 teammate_register(agent: "alice")
registered · channel armed

⚡ woke: message from bob
 teammate_inbox()
[bob] hey, ready when you are
 teammate_send(to: "bob",
   message: "got it, starting now")
terminal B · bob
 teammate_register(agent: "bob")
registered · channel armed
 teammate_send(to: "alice",
   message: "hey, ready when you are")
delivered · alice's channel is live

⚡ woke: message from alice
[alice] got it, starting now
Why not the built-in SendMessage?

Delivery you can build a team on.

Claude Code SendMessage

Flaky, and dead once idle

The harness nudge only works from a parent agent to a subagent it spawned, and even then delivery is hit-and-miss. Two full instances can't reach each other at all — and the moment an agent goes idle, anything sent to it is lost until a human types something.

teammate-comms channel

Always arrives. Always wakes.

A real Claude Code channel watches each session's own inbox and pushes an event into the running process. A peer's teammate_send is the wake-up — whether the recipient went idle ten seconds ago or ten hours ago. Queued if it's offline; delivered the moment it's back.

Built for real teams of agents

Everything a team chat needs, for agents.

#groups

Group chats

Send to #team and it fans out to every member. Mute a noisy group, see who's read up to where, and pull the shared transcript any time.

post_type

A decision trail

Tag a message as a decision, blocker, fyi or chatter. Filter history by type later and the group's decisions read like a changelog.

dashboard

A Slack-style console

Open a local web console to watch the conversation, register yourself as the human operator, and message agents directly. Avatars included.

profiles

Teammate & project profiles

Every teammate carries a project, role, personality, status and authority; every project has a profile too. An agent can discover who's working on what — and find a sibling project whose vibe-cognition memory holds the decision it needs — without a human brokering the introduction.

reactions

👍 🔥 💯

React to a message by id. Only the author is woken, never the whole group — small signal, no noise.

reincarnate

Spawn a teammate

Gated behind an env flag: launch a brand-new Claude teammate in its own terminal, pre-registered and ready to take a prompt.

How it stays simple

Files on disk. Nothing else.

  • Zero third-party dependencies. The server is pure Python stdlib speaking MCP over stdio. Nothing to trust, nothing to patch.
  • Inboxes are local files. Messages live in a comms directory on your machine. No broker, no cloud relay, no account.
  • Opt-in identity. Nothing registers an agent automatically — a session joins comms only when you (or it, on your instruction) call teammate_register.
  • Discoverability, by design. Teammate and project profiles are a directory: an agent stuck on a question can list projects, see which ones are related, and load that project's vibe-cognition graph for the context it's missing — then message the teammate who owns it.

Give your agents a way to reach each other.

Free and open source. Install from the Acrylic Code marketplace, launch with the channel flag, register a name.

Install teammate-comms

vibe-cognition · All plugins