Releases: nnemirovsky/peerbus
v0.3.0
Friendly names, self-identification, and cleaner channel UX
New features
- Friendly peer names (
wild-wasp-3kxstyle) instead ofcc-<host>-<pid>-<rand> - Startup self-identification: each Claude session now gets
📡 connected as <name>once MCP initialization completes bus.peersnow returns structured{ self, peers }with self filtered from the peers list- Inbound channel messages now render as a single concise line:
📨 msg from <name>: "<body>"📨 broadcast from <name>: "<body>"
Improvements
- Default local broker port changed from
127.0.0.1:8080to127.0.0.1:47821to avoid collisions with common services and dev servers - README/docs scrubbed of pre-1.0 migration and previous-version chatter; docs now describe the project as it is
Fixes
- Self-identification announcement is now correctly gated on MCP
notifications/initialized, so Claude Code no longer drops the startup banner - Single-line channel format avoids Claude Code's newline-collapsing and truncation behavior
- Dropped the redundant
peerbusword inside channel content because Claude Code already prefixes the server name
v0.2.1
Release pipeline cleanup
Two small follow-ups to v0.2.0. No code or CLI changes — only release artifacts.
1. Bare binaries instead of tar.gz archives
goreleaser now ships the raw binary per platform:
peerbus_linux_amd64 peerbus_linux_arm64
peerbus_darwin_amd64 peerbus_darwin_arm64
peerbus_0.2.1_checksums.txt
Matches the sluice release style — no extract step, no wrapper for one binary. The latest/download/peerbus_<os>_<arch> URL is now a stable path.
Migration: curl -L -o peerbus https://github.com/nnemirovsky/peerbus/releases/latest/download/peerbus_$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m | sed s/x86_64/amd64/) && chmod +x peerbus
2. Dockerfile framing: broker-by-default, not broker-only
The image already contained the full peerbus multi-command binary as of v0.2.0; the BROKER ONLY wording was pre-refactor and stale. CMD defaults to serve (broker), but is overridable for ops tasks:
docker run --rm peerbus:latest --version
docker run --rm -v peerbus-data:/data peerbus:latest audit verify --db /data/peerbus.db
Adapters are still a poor fit for a container service (stdio MCP child of the agent runtime).
Branch protection on main
Pushes to main now require a PR + green CI (test, golangci-lint, gofumpt); enforce_admins: true (mirroring sluice). This PR (#1) is the first to land via that workflow.
v0.2.0
Single-binary refactor (breaking CLI)
v0.1.0 shipped two binaries (peerbus-broker, peerbus-adapter). v0.2.0 collapses them into one peerbus multi-command binary — same code, same flags, same env vars inside each subcommand. The Docker image still runs the broker by default; adapters are still stdio children of the agent runtime (security model and end-to-end HMAC are unchanged).
Migration
| v0.1.0 | v0.2.0 |
|---|---|
peerbus-broker serve |
peerbus serve |
peerbus-broker audit verify |
peerbus audit verify |
peerbus-adapter --adapter=cc |
peerbus adapter --adapter=cc |
peerbus-adapter --adapter=generic |
peerbus adapter --adapter=generic |
Update your .mcp.json accordingly — command: "peerbus", args: ["adapter","--adapter=cc"] (or --adapter=generic).
Other changes
- Docker image entrypoint is now
peerbus(CMD:serve); image is still broker-only by design. goreleaserproduces one binary per platform archive instead of two.Makefile:make run-broker/make run-adapter→make run ARGS='…'.- Docs, integration guides, README all updated to the new CLI.
No behavior changes inside the broker or adapter logic — this is a packaging refactor only.
v0.1.0
Initial release of peerbus — an agent-agnostic durable message bus: a long-lived WebSocket broker plus thin MCP adapters that let heterogeneous AI agents send and broadcast messages to each other through one broker.
Broker
- Durable SQLite queue, bearer-token auth, peer registry with same-token takeover
- At-least-once delivery: dedupe-by-id, per-sender FIFO, offline queue + reconnect/resume drain
- Broadcast fan-out (no late-joiner backfill), sender-excluded
- End-to-end HMAC-SHA256 over a canonical envelope (direct and broadcast)
- Exact-match protocol versioning
- blake3 tamper-evident audit hash-chain +
peerbus-broker audit verify
Adapters
- Generic stdio MCP adapter —
bus.send/bus.broadcast/bus.peers/bus.drain(host-scheduled) - Claude Code cc adapter —
claude/channelpush-wake, auto-registered unique peer name
Deployment & docs
- Broker-only Docker image + compose/s6 manifests (managed long-lived service)
- Full wire-protocol spec ("write your own adapter"), cc2cc parity matrix, integration guides
Pre-1.0: the wire protocol and adapter contract may still change; the cc adapter relies on Claude Code's research-preview claude/channel feature.
Inspired by non4me/cc2cc and louislva/claude-peers-mcp.