CC Group Chat

Cross-window AND cross-device group chat for Claude Code. Multiple claude sessions — on the same machine or across a LAN — join a shared room and message each other via @ mentions; the addressed session wakes automatically through the Claude Code Channels mechanism.
Status
Listed in the Anthropic plugin directory. Channel capability is still under Anthropic's separate allowlist review — until that lands, end users must launch Claude Code with --dangerously-load-development-channels. See CHANGELOG for release history.
v0.3 adds cross-device rooms over the LAN (and over any user-provided IP:port for cross-network use). v0.2 was same-machine-only.
Requirements
- Claude Code v2.1.80+
- Bun 1.0+ on
PATH (the channel server and broker daemon both run as Bun scripts)
- Anthropic auth (claude.ai or Console API key). Channels are not available on Amazon Bedrock, Google Vertex, or Microsoft Foundry.
Install (end users)
Inside any Claude Code session:
/plugin marketplace add KARPED1EM/CC-Group-Chat
/plugin install cc-group-chat@cc-group-chat-marketplace
Then exit Claude Code and relaunch it with the channel enabled:
claude --dangerously-load-development-channels plugin:cc-group-chat@cc-group-chat-marketplace
The plugin ships its own pre-built bundles under bin/, so the install step does not require running bun install on your machine — Bun just needs to be on PATH so Claude Code can spawn the channel server.
Use
Same-machine, multiple Claude Code windows
Open two or more CC windows in the same project directory. In each, tell the agent to join:
> Join the group chat as "Auth", working on the auth refactor.
> Join the group chat as "Decompiler", decompiling the legacy assembly.
They will end up in the same room automatically — the room is keyed off Claude Code's launch directory, so sessions in the same project rendezvous without any configuration.
In either window, address the other:
> Ask @Decompiler what the field layout of PlayerController is.
The other window wakes up on its own — no need to switch focus or type anything — and responds through the chat.
Cross-device
On the host machine, after the agent has joined its local room:
> Make this room public with the password "winter-fox-7".
The agent calls open_public([REDACTED:Password]). The broker starts accepting non-loopback connections on its WebSocket port and broadcasts the room over mDNS to the LAN. The agent will produce a paste-ready invitation prompt — something like:
Please join the cc-group-chat room hosted at 192.168.1.42:47892 with password "winter-fox-7" (room: auth-refactor#1 on karped1em). After you paste this to me, I'll ask what name and description to use, then join you in.
Send that to a teammate (Slack, email, whatever). They paste it into their own Claude Code session; their agent recognizes the invitation, asks them for a name and a one-line description, then joins.
mDNS discovery means teammates on the same LAN can also see the room in list_rooms without needing the IP. Cross-network is the user's responsibility — port-forward the broker's port, or use Tailscale / Cloudflare Tunnel / ngrok / whatever you prefer. We don't operate any servers and don't do NAT traversal.
To stop accepting remote connections: > Close the room from remote. (agent calls close_public.)
To rotate the password: > Change the room password to "summer-otter-3". (everyone remote is disconnected and must rejoin.)
To kick a specific machine: > Kick "user894124" from the room.
To wipe the room entirely: > Disband the room. (history gone, everyone kicked.)
Picking a different room
In v0.3.0, each CC session is in exactly one local room — the one tied to its launch directory. To work in a different project's room, launch CC in that project's directory. (Multi-local-room API is at the broker layer for a future release.)
A note on short messages
The chat works best when each speak call carries one point and the recipient gets to reply before the next point. The underlying LLM turn is atomic — once an agent starts writing a 400-character monologue, it cannot pause halfway to consult code or react to interim thoughts. The channel server's instructions tell the agent to keep messages tight; if you watch a session write essays anyway, that is a prompt-engineering issue rather than a transport issue.
Update