Skip to content

Releases: nnemirovsky/peerbus

v0.3.0

20 May 17:09
a579db8

Choose a tag to compare

Friendly names, self-identification, and cleaner channel UX

New features

  • Friendly peer names (wild-wasp-3kx style) instead of cc-<host>-<pid>-<rand>
  • Startup self-identification: each Claude session now gets 📡 connected as <name> once MCP initialization completes
  • bus.peers now 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:8080 to 127.0.0.1:47821 to 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 peerbus word inside channel content because Claude Code already prefixes the server name

v0.2.1

20 May 04:33
08a6790

Choose a tag to compare

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

20 May 04:23

Choose a tag to compare

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.
  • goreleaser produces one binary per platform archive instead of two.
  • Makefile: make run-broker / make run-adaptermake 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

18 May 15:29

Choose a tag to compare

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/channel push-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.