By hyattc1
Multiplayer Claude Code. Two or more developers each running their own Claude Code session, sharing live state of what their agents are doing, in real time.
Create a new claude-rooms room and print the code to share with a teammate.
Print a claude-rooms diagnostic page (WSL status, ICE config, MCP socket, recommended next step).
Join an existing claude-rooms room by code.
Leave the current claude-rooms room.
Show the current claude-rooms room state (room code, teammates, locks).
Admin access level
Server config contains admin-level keywords
Modifies files
Hook triggers on file write and edit operations
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
This plugin requires configuration values that are prompted when the plugin is enabled. Sensitive values are stored in your system keychain.
actor_nameShort identifier other teammates see for you in the room. Defaults to your git user.name, kebab-cased. Override here if you want something different.
${user_config.actor_name}turn_serversJSON array of RTCIceServer entries to use as a WebRTC relay. Example: [{"urls":"turn:my.coturn:3478","username":"u","credential":"p"}]. Default config is STUN-only (direct P2P required); set this when you self-host coturn, use Cloudflare TURN with HMAC, or have a paid Metered.ca/Twilio TURN account. Run /claude-rooms:rooms-doctor to verify your entry actually produces a relay candidate.
${user_config.turn_servers}share_promptsShare the first 100 characters of each prompt you send with teammates in the room. Default OFF. When enabled, your verbatim prompts will be visible to all teammates in any room you join. Only enable this if you are confident every prompt you type is safe to share.
${user_config.share_prompts}room_code_lengthHow many words to include in a generated room code. 4 is the safe default (~2.8 trillion combinations from the EFF Short Wordlist). Use shorter only on trusted local networks. Range 2-6.
${user_config.room_code_length}signaling_serversJSON array of WebSocket URLs to use as y-webrtc signaling servers. Power-user override; leave unset to use the community defaults baked into y-webrtc.
${user_config.signaling_servers}Multiplayer Claude Code. Code with a friend in your own terminals, your Claude sessions aware of each other in real time.
/plugin marketplace add hyattc1/claude-rooms
/plugin install claude-rooms@claude-rooms
connor> /claude-rooms:rooms-create
Room: kite-frog
ryan> /claude-rooms:rooms-join kite-frog
Joined room kite-frog as ryan. 1 teammate online: connor.
connor> /claude-rooms:rooms-status
Room: kite-frog
You: connor (online)
Teammates: ryan (online)
That is it. From this point on, both Claudes have continuous live awareness of each other. Anything either agent does (edits, focus changes, file locks) propagates to the other in the background. Either agent can call the read_room_state MCP tool at any time during its own turn to pull a fresh snapshot.
Peer-to-peer, no server. Every developer's Claude Code session runs its own claude-rooms MCP server, which holds a live CRDT document for the room. Sessions sync that document directly to each other over WebRTC, using y-webrtc on top of yjs. There is no relay we run, no account to make, no infrastructure to deploy. The room code is the rendezvous string used by the public signaling servers; whoever has the code is in the room.
Shared state, not messages. Agents do not message each other. They share a single document whose state describes every agent's current focus, branch, recent files, recent actions, and active file locks. Each agent reads from this live document via the read_room_state MCP tool, which is a sub-100ms in-memory query. The agent decides how to react. The PreToolUse hook on Write/Edit/MultiEdit also checks the document deterministically before any file edit, so a conflicting edit is denied with a structured reason naming the teammate who holds the file.
Hooks for plumbing, MCP for context. The plugin ships a small set of hooks (SessionStart, PreToolUse, PostToolUse, Stop, SessionEnd) that publish each agent's current state to the local MCP server over a Unix domain socket (or named pipe on Windows), and an MCP server that owns the y-webrtc connection and exposes two tools (read_room_state, update_my_focus) to the agent. Hooks fail open: if the MCP server is unreachable or the room is offline, every hook exits 0 silently and your local Claude Code session keeps working. claude-rooms going offline is a feature loss, not an outage.
Full design rationale (state schema, lock semantics, awareness reaping, the six lock cases, fail-open principles, out-of-scope decisions) lives in CLAUDE.md.
| Command | What it does |
|---|---|
/claude-rooms:rooms-create | Generate a new room code and join it. Share the code with a teammate. |
/claude-rooms:rooms-join <code> | Join an existing room. Warns if no teammates are detected after 3 seconds. |
/claude-rooms:rooms-status | Print the current room code, you, teammates, active file locks, and any territory overlaps. |
/claude-rooms:rooms-leave | Release your locks, drop your territory claim, mark offline, and clear the local room state. |
/claude-rooms:rooms-doctor | Print a diagnostic page (WSL2 status, ICE config, MCP socket, recommended next step). Works outside a room. |
Inside the plugin, the agent also has these MCP tools:
| Tool | What it does |
|---|---|
read_room_state | Snapshot of every teammate's live state. Call it liberally. |
update_my_focus | One-phrase status, so teammates see what you are currently working on. |
update_my_plan | Compact summary of a multi-step plan plus done/total counts. |
claim_territory | Declare which directories/files you intend to touch for the current task. |
release_territory | Drop your current territory claim. |
Better WSL2 ergonomics and a real diagnostic. Three things:
npx claudepluginhub hyattc1/claude-rooms --plugin claude-roomsAccess thousands of AI prompts and skills directly in your AI coding assistant. Search prompts, discover skills, save your own, and improve prompts with AI.
Continuous self-referential AI loops for interactive iterative development, implementing the Ralph Wiggum technique. Run Claude in a while-true loop with the same prompt until task completion.
Feature development with code-architect/explorer/reviewer agents, CLAUDE.md audit and session learnings, and Agent Skills creation with eval benchmarking from Anthropic.
Production-grade engineering skills for AI coding agents — covering the full software development lifecycle from spec to ship.
Permanent coding companion for Claude Code — survives any update. MCP-based terminal pet with ASCII art, stats, reactions, and personality.