How mugyen/claude-bridge works
claude-bridge is a local MCP message broker for real-time Claude-to-Claude communication. CLI sessions register through lifecycle hooks, while Desktop uses the stdio adapter; both reach the Node bridge. The bridge routes ask, reply, notify, broadcast, and scratchpad operations through in-memory session/message state, waking idle CLI sessions through hooks. Optional rooms federate rosters across machines over a secure link. The rendezvous worker only resolves short join codes to links. Sampled source was partial, so some federation details remain grouped at the server path.
Components 16
Client Interfaces
- Desktop MCP Adapter
bridge-stdio.mjs
Local Bridge
- Bridge Server
bridge-server.mjs - MCP Tool Dispatcher
bridge-server.mjs - Session Registry
bridge-server.mjs - Message Threads
bridge-server.mjs - Scratchpads
bridge-server.mjs
Rooms Federation
- Federation Links
bridge-server.mjs - Room Controls
bridge-server.mjs
Join Discovery
- Rendezvous Worker
rendezvous/worker.js - Code KV Store
rendezvous/worker.js
CLI Automation
- Lifecycle Hooks
hooks - Bridge CLI
claude-bridge
Other components
- CLI Claude Sessions
- Desktop Claude
- Remote Bridge Node
- Tunnel Provider
Connections 16
- CLI Claude Sessions → Lifecycle Hooks: registers and polls
- Lifecycle Hooks → Bridge Server: calls REST
- Desktop Claude → Desktop MCP Adapter: sends MCP
- Desktop MCP Adapter → Bridge Server: posts messages
- Bridge Server → MCP Tool Dispatcher: dispatches tools
- MCP Tool Dispatcher → Session Registry: registers sessions
- MCP Tool Dispatcher → Message Threads: routes messages
- MCP Tool Dispatcher → Scratchpads: reads and writes
- Bridge Server → Lifecycle Hooks: delivers questions
- Bridge CLI → Bridge Server: controls lifecycle
- Bridge Server → Federation Links: maintains links
- Federation Links → Remote Bridge Node: relays federation
- Tunnel Provider → Federation Links: exposes link
- Bridge CLI → Room Controls: manages rooms
- Room Controls → Rendezvous Worker: publishes codes
- Rendezvous Worker → Code KV Store: stores mappings