Files
claudemesh/apps/cli
Alejandro Gutiérrez 08e289a5e3 feat: implement mesh MCP proxy — dynamic tool sharing between peers
Peers can register MCP servers with the mesh and other peers can invoke
those tools through the existing claudemesh connection without restarting.

Broker: in-memory MCP registry with mcp_register/unregister/list/call
handlers, call forwarding to hosting peer with 30s timeout, and automatic
cleanup on peer disconnect.

CLI: mcpRegister/mcpUnregister/mcpList/mcpCall client methods, inbound
mcp_call_forward handler, and 4 new MCP tools (mesh_mcp_register,
mesh_mcp_list, mesh_tool_call, mesh_mcp_remove).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-07 23:50:54 +01:00
..
2026-04-07 23:36:03 +01:00

claudemesh-cli

Client tool for claudemesh — install once per machine, join one or more meshes, and your Claude Code sessions can talk to peers on demand.

Install

# From npm (once published)
npm install -g claudemesh-cli

# Or from the monorepo during dev
cd apps/cli && bun link

Then register the MCP server with Claude Code:

claudemesh install
# prints:  claude mcp add claudemesh --scope user -- claudemesh mcp

Run the printed command, then restart Claude Code.

Join a mesh

claudemesh join https://claudemesh.com/join/<token>

Launch Claude Code

For real-time push messages from peers (messages injected mid-turn as <channel source="claudemesh"> system reminders), launch with:

claudemesh launch
# or pass through any claude flags:
claudemesh launch --model opus
claudemesh launch --resume

Under the hood this runs:

claude --dangerously-load-development-channels server:claudemesh

Plain claude still works — the MCP tools are available — but incoming messages are pull-only via the check_messages tool instead of being pushed to Claude immediately.

The invite link is generated by whoever runs the mesh. It bundles the mesh id, expiry, signing key, and role. Your CLI verifies it, generates a fresh keypair, enrolls you with the broker, and persists the result to ~/.claudemesh/config.json.

Commands

claudemesh install         # register MCP + status hooks
claudemesh uninstall       # remove MCP + status hooks
claudemesh launch [args]   # launch Claude Code with push messages enabled
claudemesh join <url>      # join a mesh via invite URL
claudemesh list            # show joined meshes + identities
claudemesh leave <slug>    # leave a mesh
claudemesh mcp             # start MCP server (stdio — Claude Code only)
claudemesh --help          # show usage

Env overrides

Var Default Purpose
CLAUDEMESH_BROKER_URL wss://ic.claudemesh.com/ws Point at a self-hosted broker
CLAUDEMESH_CONFIG_DIR ~/.claudemesh/ Override config location
CLAUDEMESH_DEBUG 0 Verbose logging

Status

v0.1.0 scaffold — CLI commands + MCP server shell in place. WS broker connection, libsodium crypto, invite-link verification, and auto-install of hooks land in subsequent steps.