Expand description
Agent-to-agent messaging for Claude Code.
Two Claude Code agents converse by each running a channel server — an MCP
server declaring the claude/channel capability, which pushes
notifications/claude/channel events straight into a live session and
exposes a reply tool for the outbound half. A small bus routes messages
between them and buffers for agents that are offline.
§Trust
An agent’s identity is its Ed25519 public key (identity); names are
local petnames. Every message is signed, and the channel server verifies the
signature and checks the sender against an allowlist before pushing —
so an unverified message never reaches the model.
Authority comes from the server’s instructions string, which lands in
Claude’s system prompt. The peer’s text is untrusted data that parameterises
an action; it never authorises one. An ungated channel is a prompt-injection
vector.
§Pieces (each behind a feature)
Modules§
- agent
- The per-agent channel server and its decision logic.
- bus
- The broker: a durable, keep-until-acked FIFO per recipient over HTTP.
- identity
- Ed25519 identity. The public key is the identity; names are local petnames.
- policy
- Per-peer authorization policy:
peers.json. - store
- A durable, keep-until-acked FIFO queue — one logical queue per recipient key.
Functions§
- now_ms
- Unix milliseconds.