Some checks failed
CI / Tests / 🧪 Test (push) Has been cancelled
The previous flow printed a \`claude mcp add ...\` command and asked users to paste it. That's 2 steps, a typo surface, and a point of user dropoff. Replace with direct read-modify-write of ~/.claude.json. install: - preflights bun on PATH (clear error + Bun.com link if missing) - verifies the MCP entry file exists on disk - reads ~/.claude.json (empty object if absent) - adds/updates mcpServers.claudemesh with resolved absolute path - writes back with 0600 perms, creates parent dir if needed - read-back verification (bails loudly if post-write state is wrong) - idempotent: re-running returns "unchanged" if entry already matches - preserves existing mcpServers entries + other top-level config keys uninstall: - removes the claudemesh entry if present - no-ops cleanly when entry or config file doesn't exist - doesn't touch anything else Both print a clear post-action hint: "Restart Claude Code to load the MCP server. Then join a mesh with claudemesh join <invite-link>". verified locally with HOME=/tmp/fake-home: - fresh install → ✓ added, config emitted correctly - re-install → ✓ unchanged (idempotent) - install alongside existing "other-mcp" entry → both preserved, plus unrelated top-level keys kept verbatim - uninstall → ✓ removed, claudemesh gone, other entries intact - uninstall again → · not present (no error) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@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 ic://join/BASE64URL...
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 # print MCP registration command
claudemesh join <link> # join a mesh via invite link
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.