AgentSystemLabs/agent-office
agent-office is an open-source Node.js application that renders your team's projects as floors of a cartoon 3D office, where each Claude Code, OpenCode or Codex coding-agent worker sits at a desk with a visible terminal others can join. It wires agent workers directly into GitHub: an issues board and PR board with diff review, CI status and merge actions, a task queue that auto-hires workers into isolated git worktrees, one-click PR creation, live worker status via Claude Code/Codex hooks and an OpenCode plugin, and per-worker cost/token tracking against Claude plan limits. It also supports multi-agent meeting-room collaboration patterns such as debate, lead and team, map-reduce, red and blue, and review panel, where several agent workers jointly produce a file and open a PR, plus shared voice chat and screen sharing for the human team.
What it claims
agent-office is a single-maintainer, work-in-progress tool. The README says plainly that it is "built for one person's workflow" and warns of breaking changes between releases: keys move, screens get redrawn, and features come and go. The author recommends forking it rather than depending on it.
Beyond the agents named in the summary, it also runs Grok, Muse, DeepSeek Harness (dsh) and Pi (0.87.1+) workers. Two capabilities matter for adoption:
- Agents managing agents. Every worker can list, hire, message and dismiss other workers. Claude Code, Codex and OpenCode do this through a bundled
agent-officeMCP server; other workers use anoffice-workerscommand. Dismissing a worker deletes its worktree and branch unless it holds unpushed work. - Cross-repo tasks. One task can span several projects. The worker gets a worktree in each repo and opens a PR in each that links to the others.
There is also a /lite 2D view for phones and slow machines.
How to use it
Requirements on the host:
- Node.js 20+
- git
- GitHub CLI, signed in (
gh auth login) - At least one agent CLI, signed in as the user that runs the office
Install and start:
curl -fsSL https://raw.githubusercontent.com/AgentSystemLabs/agent-office/main/install.sh | bashOn Windows: irm https://raw.githubusercontent.com/AgentSystemLabs/agent-office/main/install.ps1 | iex.
The first run walks you through setup:
- Choose a clone root. Projects go in
<folder>/<owner>/<repo>. - Sign in to GitHub.
- Pick a first repo.
The office password is printed to the terminal and saved in ~/agent-office/.agent-office/config.json.
Useful flags:
agent-office ~/code/my-project
agent-office --port 4700
agent-office --agent pi # default agent: claude, codex, opencode, grok, muse, dsh or pi
agent-office --no-open
agent-office setupTeam deployment. Each target has its own script under deploy/:
| Target | Script | Resources created |
|---|---|---|
| AWS | deploy/aws.sh up | t3.xlarge, 50 GiB disk, Elastic IP |
| Azure | deploy/azure.sh up | Standard_D4as_v5, 64 GiB Premium SSD |
| Railway | deploy/railway.sh up | Container with a volume at /data |
| Fly.io | deploy/fly.sh up | shared-cpu-4x, 8 GB |
| Dokploy | deploy/dokploy.sh up | Container with SSH on port 2222 |
| Any Ubuntu/Debian server | provision.sh one-liner | systemd service |
All of them take --claude-token "$(claude setup-token)" or --anthropic-api-key. The AWS and Azure scripts support pause, resume, resize and destroy. The AWS deployment script installs only Claude Code, so Codex and OpenCode must be installed by hand over ssh.
Accounts. Invite links are single-use and valid for 7 days, with Member or Admin roles. You can also manage them from the CLI with agent-office accounts invite ada --admin. With accounts enabled, each person's workers run on their own Claude plan, and GitHub actions appear under their own name. The issue and PR boards still read through the machine's own gh, so that identity needs read access to the repos.
How it works
flowchart LR U[Teammate browser] -->|SSH tunnel :4600| O U -->|Tailscale Serve HTTPS| O U -->|Caddy + own domain| O O[Office on 127.0.0.1:4600] --> W[Agent workers in PTYs] O --> G[gh token on host]
The office always listens on 127.0.0.1:4600 and is never exposed directly. Teammates reach it in one of three ways:
- SSH tunnel. Their key is installed from
github.com/<user>.keysand logs in as a locked-downofficeuser that can only forward that one port. - Tailscale Serve, with a real certificate.
- Caddy, on your own domain.
The --host 0.0.0.0 option exists, but it serves plain HTTP, and voice and screen sharing do not work over plain HTTP. Workers survive server restarts because they run in a separate PTY host.
Limits
- Shared GitHub token. Deployment copies your local
ghtoken to the machine, and anyone in the office can use it. Pass--github-token <fine-grained token>or--no-github-tokento limit this. - Shared password grants admin. Until you disable it (
agent-office accounts password off), anyone with the shared password gets in as an admin. - Unstable surface. The README explicitly says the project is unstable and tuned to one person's use.
- No licence stated. The page does not state a licence, so check the repo before adopting.
- Summary features not documented here. The README does not mention the meeting-room patterns or the cost and token tracking described in the summary. Verify those in
docs/features.md.
Organisations named here
- GitHub
- Claude Code
- OpenCode
Technologies named here
- Claude Haiku
- agent-office
- Claude Code
- Fable
- OpenCode
- Codex
- GitHub CLI
- Excalidraw
- Node.js
- Git
- GitHub
Techniques named here
- Isolated git worktrees
- Debate
- Lead & team
- Map-reduce
- Red / blue
- Review panel
Related in coding-agents
