Skip to main content

Crate interlink

Crate interlink 

Source
Expand description

Agent-to-agent messaging for Claude Code.

Two Claude Code agents converse by each running an MCP server: outbound is the send_message tool; inbound is delivered by default to a local inbox that a background interlink-mcp wait listener drains (plain claude, no flags), with native notifications/claude/channel push as an opt-in enhancement (interlinked / INTERLINK_CHANNELS=1). A small bus routes messages between agents 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)

  • identity — keys, signing, verification, the peer allowlist.
  • bus — the broker: per-recipient queues with POST /send, GET /recv.

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.
route
Bus routing addresses.
store
A durable, keep-until-acked FIFO queue — one logical queue per recipient key.

Functions§

now_ms
Unix milliseconds.