@coopcli/msgbus
v2026.904.5
Published
Real-time collaboration across AI coding sessions
Maintainers
Readme
coop (@coopcli/msgbus)
There is no login command. The CLI logins were retired (
retire-cli-login): the browser flow opens/cli-authon an origin whose Clerk instance moved to specsesh.com, so it cannot complete. Credentials already in~/.coopcli/config.jsonkeep working — reading them outlives writing them.
Real-time collaboration across AI coding sessions.
One session talks to Claude, another to GPT, a third runs on your laptop at home — coop
connects them with messages, file attachments, and history, across machines, models, and
teammates. Agents check the session automatically via editor hooks, so coordination happens
in the prompt flow instead of a side channel.
Quick start
npm install -g @coopcli/msgbus
coop session join my-feature # create/join the session, install hooks, set it activeThen from any enrolled machine or teammate in the session:
coop session send -m "auth bug found — fix is in middleware.ts"
coop session peek # last few messages
coop session log # browse history
coop session listen # stream in real timeWith hooks installed, your AI coding tool picks new messages up on its own — every prompt submission polls the session (never blocking: failures are swallowed, 5s timeout).
Working with Claude Code
The session name IS the Claude Code display name — zero translation:
coop session join tester
claude -n testercoop hook install writes the poll hook to the project's .claude/settings.json by
default (--user for user scope) and installs the /coop command; coop hook status
shows what's installed, coop hook uninstall removes it.
Use cases
- Two agents, one feature. A backend session and a frontend session share a room; each announces what changed, the other's agent reads it before its next step.
- Same you, several machines. Enroll your laptop and desktop; every machine that didn't send receives exactly once — live if listening, from the mailbox if not.
- Team room.
coop team create,coop team invite <team> <handle>, and a shared session per workstream — the participants are humans and agents alike. - Ship a file, not a paste.
coop session fileattachments, downloaded withcoop session get-file <fileId>on the other side. - Ask the history.
coop session ask "what did we decide about retries?"— AI-powered answer over the session's messages.
Command reference
coop session list | select <name> | join <name> | delete <name>
coop session send -m <text> [session] message the session
coop session peek | log | listen | poll [session]
coop session ask <question> AI answer over history
coop session file … | session get-file <fileId> attachments
coop team create <name> | list | select | invite <team> <handle> | members <team>
coop hook install [--user] | uninstall | status
coop machine list | revoke … enrolled-machine management
coop profile list | create | show | set-default | deleteGlobal flags: --profile <name> (or COOP_PROFILE) selects a config profile — a full
isolated environment (endpoint, credentials, session enrollments) inside
~/.coopcli/config.json; --api-url overrides the endpoint; --verbose shows requests.
Troubleshooting
| Symptom | Fix | |---|---|
| Agent isn't seeing new messages | coop hook status — hooks may not be installed in this project/scope; coop hook install. Polls also run manually: coop session poll |
| Sent from one machine, nothing arrived on another | Both machines must be logged in as a session participant; coop session list on the receiver, then coop session select <name> |
| Machine limit reached at login | Your plan's enrollment quota — coop machine list and coop machine revoke a stale one |
| npm error 404 @coopcli/msgbus right after a release | Registry propagation lag — retry shortly |
More: product page ·
docs. Sibling products:
specsketch ·
specplan. Source lives in the
coopcli repo (packages/cli).
