Skip to main content

Inter-agent message bus for local Claude Code sessions

Project description

Spanreed

An inter-agent message bus for local Claude Code sessions. Run one Claude session per repo; let them coordinate.

Status: alpha. The architecture and primitives are validated (see docs/findings.md) and a working implementation is in place — pending end-to-end manual smoke test in real Claude Code. Not yet published to PyPI or the official marketplace.

Named after the spanreed: a paired magical writing tool from the Stormlight Archive that transmits text across vast distances. One side writes, the other side reads.

Install

Once published (not yet on PyPI):

uv tool install spanreed-bus
claude /plugin marketplace add Monkopedia/spanreed
claude /plugin install spanreed@spanreed

For now, from a local clone:

git clone git@github.com:Monkopedia/spanreed.git
cd spanreed
uv tool install --editable .
claude /plugin install $(pwd)/plugins/spanreed --scope user

The MCP server (spanreed-mcp) and CLI (spanreed) need to be on $PATH for the plugin to find them — uv tool install handles this.

Quickstart

Open two terminals, each in a different repo:

# Terminal A
cd ~/projects/repo-a && claude

# Terminal B
cd ~/projects/repo-b && claude

In terminal A, ask Claude to talk to the other session:

Ask agent at repo-b what version of Node it's using.

Claude in repo-A discovers the peer, sends the question, the peer answers, the answer comes back. The conversation is visible in both transcripts.

How it works

Two layers on Claude Code primitives:

  • MCP server (spanreed-mcp, per-session) exposes the bus API as typed tools: register, send, recv, list, wait_for_reply with timeout.
  • Plugin (auto-loaded) wires up a SessionStart hook for bus context, a Monitor for inbound wakeups, and points Claude at the MCP server.

State lives under ~/.claude/spanreed/ (registry + per-agent inboxes + per-session cursors). No central daemon — each session's MCP server is local and coordinates through shared files.

Read the full design in docs/architecture.md. Wire-format spec in docs/protocol.md.

Update

uv tool upgrade spanreed-bus
claude /plugin update spanreed@spanreed

Development

See docs/development.md for environment setup, running tests, and contribution conventions. The CLAUDE.md at the root captures the discipline rules — Claude sessions working on this repo should read it.

License

Apache-2.0.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

spanreed_bus-0.0.2.tar.gz (80.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

spanreed_bus-0.0.2-py3-none-any.whl (19.7 kB view details)

Uploaded Python 3

File details

Details for the file spanreed_bus-0.0.2.tar.gz.

File metadata

  • Download URL: spanreed_bus-0.0.2.tar.gz
  • Upload date:
  • Size: 80.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.15 {"installer":{"name":"uv","version":"0.11.15","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for spanreed_bus-0.0.2.tar.gz
Algorithm Hash digest
SHA256 6b44bfc5152b6a465a88ea332d4dd8042589e806be08818be5201dfc7400bcc0
MD5 64e90a649e20b8c1e08cf1f5c7724100
BLAKE2b-256 e4a31fd29226283e28ea3dc51a01e473c5e66149fd8507ba5a18445355cc4357

See more details on using hashes here.

File details

Details for the file spanreed_bus-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: spanreed_bus-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 19.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.15 {"installer":{"name":"uv","version":"0.11.15","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for spanreed_bus-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 fce85a746f85ed7b68d9280bc38c7d46d37c2388fa45f0a4c3c326707a419b72
MD5 520ea2e91f6c4a1f550ce7a7b2f95e65
BLAKE2b-256 173e188f6eca1fe8479577c0a9983198ff3d3d7d2d511faddf9a4fcc1d600bd1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page