Files
claudemesh/apps/cli
Alejandro Gutiérrez b49e9a9b61
Some checks failed
CI / Lint (push) Has been cancelled
CI / Typecheck (push) Has been cancelled
CI / Broker tests (Postgres) (push) Has been cancelled
CI / Docker build (linux/amd64) (push) Has been cancelled
feat(cli+broker): three-tier peer removal: disconnect, kick, ban
Broker (apps/broker/src/index.ts)
- Unified disconnect/kick handler uses close code 1000 for disconnect
  (CLI auto-reconnects) vs 4001 for kick (CLI exits, no reconnect).
- Ban now closes with code 4002.
- Hello handler: revoked members get a specific 'revoked' error with a
  'Contact the mesh owner to rejoin' message, then ws.close(4002).
  Previously banned users saw the generic 'unauthorized' error.
- list_bans handler returns { name, pubkey, revokedAt } for each
  revoked member.

CLI (apps/cli)
- ws-client: close codes 4001 and 4002 set .closed = true and stash
  .terminalClose so callers can surface a friendly message instead of
  the low-level 'ws terminal close' error. Revoked error in hello is
  also captured as a terminal close.
- withMesh catches terminalClose and prints:
  4001 → 'Kicked from this mesh. Run claudemesh to rejoin.'
  4002 → the broker's 'Contact the mesh owner to rejoin.' message
- kick.ts now exports runDisconnect + runKick with clear hints:
  'disconnect' → 'They will auto-reconnect within seconds.'
  'kick'       → 'They can rejoin anytime by running claudemesh.'
- cli.ts adds 'disconnect' dispatch; HELP updated.

Semantics:
  disconnect: session reset, no DB state, auto-reconnects
  kick      : session ends, no DB state, user must manually rejoin
  ban       : session ends + revokedAt set, cannot rejoin until unban

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-20 09:55:05 +01:00
..

claudemesh-cli

Peer mesh for Claude Code sessions. Connect multiple Claude Code instances into a shared mesh with real-time messaging, shared state, memory, file sharing, and 79 MCP tools.

Install

npm i -g claudemesh-cli

Quick start

claudemesh register        # create account
claudemesh new "my-team"   # create a mesh
claudemesh invite           # generate invite link
claudemesh                  # start a session

Commands

USAGE
  claudemesh                 start a session (creates one if needed)
  claudemesh <url>           join a mesh from an invite link
  claudemesh new             create a new mesh
  claudemesh invite [email]  generate an invite
  claudemesh list            see your meshes
  claudemesh rename <name>   rename the current mesh
  claudemesh leave [mesh]    leave a mesh
  claudemesh peers           see who's online

  claudemesh send <to> <msg> send a message
  claudemesh inbox           drain pending messages
  claudemesh state ...       get, set, or list shared state
  claudemesh remember <text> store a memory
  claudemesh recall <query>  search memories
  claudemesh remind ...      schedule a reminder
  claudemesh profile         view or edit your profile

  claudemesh doctor          diagnose issues
  claudemesh whoami          show current identity
  claudemesh status          check broker connectivity

  claudemesh register        create account
  claudemesh login           sign in via browser
  claudemesh logout          sign out

  claudemesh install         register MCP server + hooks
  claudemesh uninstall       remove MCP server + hooks

Architecture

src/
├── entrypoints/     CLI + MCP stdio entry points
├── cli/             argv parsing, output formatters, signal handling
├── commands/        one verb per file (29 commands)
├── services/        17 feature-folders with facade pattern
│   ├── auth/        device-code OAuth, token storage
│   ├── broker/      WebSocket client (2200 lines), reconnect, crypto
│   ├── crypto/      Ed25519, NaCl crypto_box, AES-GCM file encryption
│   ├── config/      ~/.claudemesh/config.json with atomic writes
│   ├── mesh/        CRUD, join, resolve target
│   ├── invite/      generate, parse, claim (v1 + v2 formats)
│   ├── api/         typed HTTP client for claudemesh.com
│   ├── health/      6 diagnostic checks
│   └── ...          device, clipboard, spawn, telemetry, i18n, logger
├── mcp/             MCP server with 79 tools across 21 families
├── ui/              TUI: styles, spinner, welcome wizard, launch flow
├── constants/       exit codes, paths, URLs, timings
├── types/           API, mesh, peer interfaces
├── utils/           levenshtein, slug, URL, format, semver, retry
├── locales/         English strings (i18n ready)
└── templates/       5 mesh templates

Development

pnpm install
bun run dev          # hot-reload
bun run build        # production build
bun run typecheck    # tsc --noEmit

License

MIT