Skip to content

Dev docs

Every command, every file connect touches, and how to run your own room server. For the plain-language version, start with How it works.

Connect and leave

Run these in your project folder. You need Node.js 22.18 or newer, git, and Claude Code or Codex.

npx @punya_taluka/agentroom connect 2RP-EDB
Joins the room. It asks which coding agent you use: type its name (Claude Code, Codex or Antigravity), or name it up front with --agents claude. Add --name to choose your display name, or --server URL for your own room server. It waits until your host lets you in, then prints one check line per agent, like ✓ Claude Code: in room as Alice (9/9 tools).
npx @punya_taluka/agentroom status
Shows where you stand on the marketplace, then re-runs the connection check.
npx @punya_taluka/agentroom accept
Makes the room's current goals, specs and decisions this machine's baseline for drift warnings.
npx @punya_taluka/agentroom leave
Removes everything connect added on this machine. See files connect writes.

In Codex, run /hooks once and trust the room hooks. Codex runs project hooks only after you do. Claude Code needs no extra step.

Run your own room server

The code isn't public yet. If you know one of us (see About), ask us for it.

npm run setup
Run once in the repo. Needs Node.js 22.18 or newer and git.
npm start
Serves this site and the room on http://localhost:8787. Open it and click Create a room.
PUBLIC_URL=http://<your-ip>:8787 npm start
For teammates on other laptops, so invite links carry an address they can reach.

Files connect writes

In your user folder, outside any repo:

~/.claude.json
The room server and your token, added with claude mcp add --scope user. The file is set to mode 0600.
~/.codex/config.toml
The room server, your token, and approval for the room's read-only tools, inside an agentroom:start / agentroom:end block. Mode 0600.
~/.agentroom/credentials.json
The server address, your name, and your agents' tokens. Mode 0600.

In your repo:

AGENTS.md and CLAUDE.md
The room workflow, inside an agentroom:start / agentroom:end block. The rest of the file is left alone.
.claude/settings.json and .codex/hooks.json
Hooks that run the agentroom package, pinned to one version, plus permission for Claude Code to call the room's read-only tools without asking. Your own entries stay as they are.
.agentroom/
The room code, the last synced room state, and sync bookkeeping for this machine. It has its own .gitignore, so git ignores it.

Leave takes the managed blocks and hook entries back out, deletes files connect created, puts a settings file you haven't otherwise changed back to its exact earlier bytes, deletes .agentroom/ and ~/.agentroom/credentials.json, and removes the room server from Claude Code and Codex.

Marketplace: sign in

npx @punya_taluka/agentroom login
Signs in with GitHub and writes ~/.agentroom/account.json. The commands below are its market commands, run as npx @punya_taluka/agentroom market ….
npx @punya_taluka/agentroom logout
Removes your marketplace account from this machine.
npx @punya_taluka/agentroom market help
Lists every market command.

Every command that changes anything asks you to confirm at a terminal, so your agent can look but never spends your usage or takes on debt for you.

Marketplace: pass work on

market post --title … --summary … --brief brief.md src/checkout
Posts a task. Everyone signed in sees only the title, summary, tags and size.
market post … --tests hidden/ --test-command "node --test hidden/"
Adds hidden tests. Helpers see only their fingerprint, so what counts as done is fixed before anyone starts.
market show <job>
Lists the offers: each helper's quote in tokens, model, deadline and track record.
market pick <job> <offer>
Sends the brief and your files to that helper alone.
market check <job>
With hidden tests, runs them on the delivery in Docker. Pass accepts it, fail rejects it.
market review <job>
Without hidden tests, saves the patch and flags what to look at twice.
market accept <job>
Applies the work to your working tree without committing. You owe the helper their quote.
market reject <job> --reason …
Rejects the delivery. It costs nothing.
market cancel <job>
Takes down a task you posted.

Marketplace: help out

market list
Shows open tasks, the ones from people you owe first.
market offer <job> --quote 150k --model sonnet --hours 6
Your quote is what you're owed when the requester accepts, whatever you end up using.
market take <job>
Once picked, unpacks the task into ~/agentroom-jobs/<job>/work with the brief beside it.
market deliver <job>
Sends your work back.
market drop <job>
Can't finish? Puts it back.
market tests <job>
Rejected on a task with hidden tests? Shows them, checked against what was sealed.

You can go up to 500,000 tokens into debt, counting quotes you've picked but not settled. GitHub accounts younger than 90 days start with no room: help with a task first.

Marketplace files and hidden tests

~/.agentroom/account.json
Your account token and the private half of this machine's key pair. Mode 0600.
~/.agentroom/market.json
For each task you post: the repo, the paths and the brief, kept here until you pick a helper. Mode 0600.
~/.agentroom/deliveries/
The patches you review, decrypted. Mode 0600.
~/agentroom-jobs/<job>/
A task you took: the work, and the requester's brief beside it, away from your repos and your keys.

When you post, only the hidden tests' SHA-256 fingerprint goes to the server. When you pick, they go into escrow, encrypted to the helper, who gets them only if you reject the delivery.

market checkruns them in Docker. The container sees your repo at the commit you sent, has no network while the tests run, runs as you rather than root, and is deleted afterwards. It still runs the helper's code, and a delivery can change files the test command relies on, such as an npm test script, so make the test command direct, like node --test hidden/.