Some checks failed
CI / Tests / 🧪 Test (push) Has been cancelled
Makes @claudemesh/cli installable globally via npm without requiring bun on user machines. (Bun stays the dev runtime; bundled output is node-compatible.) - bun build --target=node --outfile dist/index.js produces a 2.69MB standalone bundle with node-shebang banner - package.json: add description/keywords/author/license/homepage/ repository, set bin to ./dist/index.js, files=[dist, README, LICENSE], publishConfig.access=public, engines.node >=20 - prepublishOnly auto-runs the build - pin zod from catalog: to 4.1.13 (npm rejects catalog: refs) - swap Bun.spawnSync → node:child_process.spawnSync in install.ts (the only Bun-global usage in the package) - strip shebang from src/index.ts (banner supplies it post-bundle) install command now runs in two modes: - BUNDLED (npm i -g): detects dist/index.js path, writes MCP entry with command "claudemesh" (relies on the global bin shim on PATH) - SOURCE (bun src/index.ts, dev): preflights bun, writes MCP entry with command "bun <absolute-path> mcp" verified end-to-end: - node dist/index.js --help prints usage ✓ - node dist/index.js install writes correct ~/.claude.json ✓ - node dist/index.js mcp | tools/list returns all 5 tools ✓ - bun src/index.ts install (dev mode) still works ✓ NOT PUBLISHED YET — @claudemesh/cli is owned by an unrelated project on npm. Awaiting user decision on alternative name (claudemesh-cli, @alezmad/claudemesh-cli, or new org scope). Bundle is name-agnostic and will reuse regardless. 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.