agents-office
Health Pass
- License — License: NOASSERTION
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Community trust — 11 GitHub stars
Code Fail
- process.env — Environment variable access in check.mjs
- network request — Outbound network request in check.mjs
- process.env — Environment variable access in config.mjs
- spawnSync — Synchronous process spawning in scripts/release.mjs
- fs.rmSync — Destructive file system operation in scripts/release.mjs
- process.env — Environment variable access in scripts/release.mjs
- process.env — Environment variable access in serve.mjs
Permissions Pass
- Permissions — No dangerous permissions requested
No AI report is available for this listing yet.
Command Centre — a 3D isometric office for your own Claude Code agents. Hire agents, give them desks, approve what leaves the building.
Agents Office (Beta)

A 3D isometric office where AI agents do real work on your own Claude login.
Six departments, thirty-three agents at their desks, a task bar that routes what you type to the
right agent, and a Brain at the centre that is your own folder of notes. Type a task, the office
gives it to the right person, they read your notes, do the work, and file the result back into
your notes. Everything runs on your machine.
Beta. It works end to end. Expect rough edges and tell us about them in Issues.
License, in plain English: free for personal and internal use. You may not sell it, resell it,
or build a paid product on it. (Formal terms: PolyForm Noncommercial 1.0.0 — see LICENSE.)
What you need
- macOS or Linux (Windows: works with
npmcommands directly,./setupis Bash only) - Node.js 20+ — https://nodejs.org
- git
- Claude Code, logged in with your Claude account, or an
ANTHROPIC_API_KEY
Install
git clone https://github.com/ajsahni/agents-office.git
cd agents-office
./setup # checks Node, git and Claude; installs; builds; boots once
npm start # → http://localhost:4520
Without ./setup: npm install && node build.mjs && npm start.
First five minutes
- Open http://localhost:4520. The panel on the right says LIVE · CLAUDE when the server is
connected. Opened as a plain file it runs a demo instead. - In the bar at the top of the panel, pick a department, type a task in plain words, press Add.
Claude picks the agent and names them; the task appears in the feed; the agent picks it up,
works, and the deliverable lands in that agent's chat and in your brain folder as a note. - Click any agent to talk to them. They answer in their role, grounded in your notes.
Sayrevise: make it shorterand they rework their last deliverable. - Press G, or click the Brain, to open your notes as a graph. Hover a note to see its links,
click it to read where it sits and who read or wrote it.
Make it yours
office.config.json:
{ "name": "Northgate Studio", "brain": "./brain", "port": 4520, "model": "" }
- name — your business. It appears in the title and in every agent's brief.
- brain — a folder of Markdown notes with
[[wiki links]]. An Obsidian vault works as is.
The sample brain inbrain/is a small fictional studio so the office works out of the box.
Point this at your own notes and rebuild (node build.mjs) or just restart the server. - port — where the office listens.
- model — leave empty for your Claude Code default, or name a model.
Put private overrides in office.config.local.json (ignored by git).
Agents write their deliverables to <brain>/Agents Office/ as dated notes with a link back to
every note they read, so your graph grows as the office works.
Keys
| Key | Does |
|---|---|
1 to 6 |
Marketing, Emails, Sales, Operations, Finance, Delivery |
B |
The company board: every department, backlog to done |
G |
The Brain graph |
C |
Chat with the department lead |
X |
Send two agents to meet at the Brain |
V |
Camera mode: a mid-grey backdrop for filming the screen |
Esc |
Back |
The build loop
npm run check # build, offline smoke test in a headless browser, server smoke test
npm run check:live # the same, plus one real task and one chat turn through Claude
Every check prints ✓ or ✗ with the reason. The Beta was built against this loop and it is the
first thing to run after any change.
Where things live
| Path | What |
|---|---|
src/ |
The office: main.js scene, tasks.js task panel, brain.js the Brain, mcp.js connectors, data.js departments and roster, v1data.js agent personalities |
serve.mjs |
The local server: routing, deliverables, chat, the live Brain graph |
graph-build.mjs |
Reads your brain folder and lays out the graph |
brain/ |
The sample brain |
data/tasks.json |
Your tasks (created on first run, ignored by git) |
Privacy
Your notes are read from disk and sent to Claude only as context for the task or chat at hand
(a handful of the most relevant notes, plus your brain's CLAUDE.md and index.md if present).
Nothing else leaves your machine. Deliverables are saved locally.
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found