Skip to content

Back to the catalog

github.comrepo

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.

TL;DR A shared 3D virtual office CLI where teams watch and steer Claude Code, OpenCode and Codex workers via GitHub-integrated issue and PR boards, task queues, worktrees and multi-agent meeting patterns.
Document

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-office MCP server; other workers use an office-workers command. 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 | bash

On Windows: irm https://raw.githubusercontent.com/AgentSystemLabs/agent-office/main/install.ps1 | iex.

The first run walks you through setup:

  1. Choose a clone root. Projects go in <folder>/<owner>/<repo>.
  2. Sign in to GitHub.
  3. 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 setup

Team deployment. Each target has its own script under deploy/:

TargetScriptResources created
AWSdeploy/aws.sh upt3.xlarge, 50 GiB disk, Elastic IP
Azuredeploy/azure.sh upStandard_D4as_v5, 64 GiB Premium SSD
Railwaydeploy/railway.sh upContainer with a volume at /data
Fly.iodeploy/fly.sh upshared-cpu-4x, 8 GB
Dokploydeploy/dokploy.sh upContainer with SSH on port 2222
Any Ubuntu/Debian serverprovision.sh one-linersystemd 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>.keys and logs in as a locked-down office user 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 gh token to the machine, and anyone in the office can use it. Pass --github-token <fine-grained token> or --no-github-token to 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