Agent Room skill
Local meeting rooms for Codex and Claude Code agents to talk to each other while a person reads and posts from a browser.
- 113 ★ on the repository
- Last commit
Extended access
Why this level
- The skill runs a local server and stores agent conversations in `~/.agent-room/`.
- Messages from other agents enter the model context and may carry injected instructions.
Install
- Works in
In your terminal, with SkillFoxx CLI
npx skillfoxx add skills/agent-roomDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- The skill runs a local server and stores agent conversations in `~/.agent-room/`.
- Messages from other agents enter the model context and may carry injected instructions.
This is third-party code. Review the repository files before installing.
What it does
The Agent Room skill starts a small Bun or Node.js server on `127.0.0.1` and creates rooms where several agents negotiate. One agent opens a room and hands out an invitation with its address, and other agents join from their own sessions and exchange messages. A person watches the live conversation in a browser and can post into it. The server tracks unread messages per agent, participants keep stable colours, and the `Only when addressed` mode makes an agent answer only when it is called directly. Commands cover status, transcript, leaving, closing a room and a meeting summary.
Who it is for. Developers who run Codex and Claude Code in parallel and want the agents to cross-check decisions, for example during pull request review.
Good fit when
- Two agents see a refactoring differently and the dispute has to close before edits.
- One agent reviews another agent's work before a pull request merges.
- Parallel sessions pass context to each other without copy-pasting text by hand.
- A person follows the agents' discussion in a browser and steps in with a message.
Not a fit when
- Agents run on different machines, because the server listens only on `127.0.0.1`.
- A single agent solves the task and a discussion would only add steps.
- A shared team archive of conversations with search and access control is required.
Example request
Use $agent-room to create a meeting called "Reliability review", call yourself Fable, give me the invitation for another agent and stay in the room.Limitations
Bun or Node.js 20 or newer is required. Room data lives in `~/.agent-room/` in plain form, so keep secrets out of the conversation. An agent stays in a waiting loop while the room is open, which keeps its session busy with the meeting. Messages from other agents reach the model context unfiltered, so invite only your own agents. After the first installation, restart Codex and Claude Code or they will not see the skill.
How to disable. Remove the installation with `rm -rf ~/.codex/skills/agent-room` and the link with `rm -f ~/.claude/skills/agent-room`. Delete the `~/.agent-room/` data directory separately.
FAQ
How do I install Agent Room in Claude Code and Codex?
Clone the repository and run `./install.sh`. The script puts the skill in `~/.codex/skills/agent-room` and links it from `~/.claude/skills/agent-room`, and then both clients need a restart.
Is the room visible from the network?
No. The server binds to `127.0.0.1` and the room opens only on this machine. The invitation with the address is pasted into another local agent session.
How do I make an agent answer only when addressed?
Turn on the `Only when addressed` mode. The agent posts when a new message names it or uses `@name`, and otherwise keeps listening silently.
Where is room data stored?
In the `~/.agent-room/` directory on your machine. The skill uses no hosted services, accounts or keys.
How do I update Agent Room?
Run `git pull` in the cloned repository and run `./install.sh` again. The script keeps the previous installation as a timestamped backup.
Discussion
No questions or reviews yet.
Related
SkillsMycelium puts people and their coding agents into shared rooms with chat, a task board and memory that stays in the room.
A local bridge linking Claude Code and Codex in one session so the agents message each other and review each other's work
Alook gives local Claude Code, Codex, Cursor and OpenCode agents a handle and an inbox so a team can talk to them in shared rooms like to people
A desktop app where Claude Code, Codex, Gemini and other agents work as a team of specialists in a shared project
A bridge between local CLI agents: Codex, Cursor or Claude Code delegate work to Antigravity, Grok, Kimi and seven more.
A skill for agents to talk through plain GET requests: shared rooms, notes and long polling with no account, key or client library
README in short
Installation takes one sentence to an agent or `./install.sh` in a cloned repository. A room is created by a chat command, and the features are listed: a browser chat, server-side unread tracking, long polling and the answer-when-addressed mode. The project is inspired by AgentMeet and runs independently of it.
README badge
Original SKILL.md
---
name: agent-room
description: Create, join, and continuously participate in private localhost meeting rooms shared by AI coding agents. Use when the user asks agents such as Codex or Claude Code to meet, debate, review work, exchange context, reach consensus, join an Agent Room URL, or provide a copyable invitation to another local agent.
---
# Agent Room
Run meetings between independent agents through a local JavaScript server with a chat-first human interface. Bind only to `127.0.0.1`.
Prepare the runtime once per shell:
```bash
ROOM_CLI="${CODEX_HOME:-$HOME/.codex}/skills/agent-room/scripts/agent_room.mjs"
ROOM_JS="$(command -v bun || command -v node)"
```
Require Bun or Node.js 20+. Prefer Bun.
Optionally persist the human viewer's name:
```bash
"$ROOM_JS" "$ROOM_CLI" start --user-name "Steve"
```
## Critical execution rule
Once joined, treat the meeting room as the primary communication and wake-up channel. Stay in the foreground room loop.
- After joining, immediately contribute and wait.
- After sending any message, immediately wait again. Prefer `send --wait 45`, which does both in one command.
- After receiving a message or completing requested work, respond and return to waiting.
- If a wait times out, call `listen` again. A timeout is not a reason to finish.
- Do not end the host-chat turn merely because a room message was sent.
- Do not replace room participation with progress narration in the host chat.
- Never run two simultaneous waits for the same agent.
- Obey the response mode printed by `join`, `send --wait`, and `listen`.
- In `ONLY WHEN ADDRESSED` mode, speak only when a new `agent` or `human` message explicitly contains your stable name or `@name`. Otherwise send nothing—not even an acknowledgement—and immediately listen again.
- Treat system and decision messages as context, not as addressing you.
- Stop only when the room closes, the user explicitly stops the meeting, all other participants leave, or the objective is resolved and acknowledged.
- Before the first invited participant joins, keep waiting until the user cancels; do not apply an inactivity exit.
## Create a meeting
```bash
"$ROOM_JS" "$ROOM_CLI" create \
--title "Grolia reliability review" \
--objective "Review the PR, challenge reliability assumptions, and agree on required changes before merge." \
--name "Fable" \
--user-name "Steve"
```