Find the session
that needs you.
Questions and permission requests stay visible. Jump to the relevant session details, then respond in the original runtime.
A local home for your coding agents
See which coding agents are working or need your input. Inspect reported usage, keep reusable task briefs, and explicitly start new local CLI tasks. Your sessions and permissions stay with your tools.
Free & open source. No account needed for the office.
A useful view, with a little personality
When several agents are working at once, the hard part is keeping context. Agent Office brings their observed activity into one place, while you keep using the tools you already know.
Questions and permission requests stay visible. Jump to the relevant session details, then respond in the original runtime.
Read retained events, follow parent and child sessions, and inspect token usage with its source. Missing data stays clearly marked.
Choose a configured project and a supported CLI, review the exact prompt, then press Run. Read output, cancel a process, or reuse the brief. Nothing starts from a furniture click or an observed event.
Enable local runsTake a look around
Every observed session gets a character. Tools, input requests, and delegated work have visible states, so you can inspect the activity behind the animation.
Inspect usage by runtime, model, and session. See which counters were reported and where a cost estimate came from. Unknown values never turn into a reassuring zero.
Coverage depends on the runtime. Estimates are not provider invoices.
Read the coverage details
Choose oak or slate floors, a theme, and recognizable characters. Arrange the space with furniture that opens useful views when you click it.
Appearance changes never inflate work XP. XP represents observed activity, not work quality.
Customize the room
Feed your fish, unlock species, and choose the aquarium’s residents. Choose cats, dogs or a pocket robot, or put on an original jukebox loop.
Motion can be paused. Your reduced-motion preference is respected.
Explore the room’s arcadeThese are screenshots of the actual app using synthetic test sessions. The public demo is an isolated example; it cannot see your local agents.
Keep your tools. Add a view.
Agent Office reads local observer events. Each adapter has a defined scope, and the interface shows when a runtime hasn’t supplied a value.
CLI and Telegram sessions, tools, approvals, and subagents.
API usage when the installed hook supports itSessions, tools, permissions, questions, and child sessions.
Assistant-message tokens and runtime estimatesSession, prompt, tool, approval, question, and subagent hooks.
Token usage is not supplied by these hooksLifecycle and subagent hooks, with explicit local hook trust.
Optional usage from a captured exec JSON streamSession start/end and agent-loop busy/idle observations.
Lifecycle only; tools and usage are not reportedThe included VS Code view opens the same local dashboard inside your editor.
Connect just the runtimes you use. Preview what the installer detects, then choose the integrations to add. Connection steps. See tested coverage and validation limits.
Move in
Start the local observer, connect the runtimes you already use, and open your floor. The app needs Python 3.10 or later. Git is used for the checkout below.
Full installation guide
The server binds to 127.0.0.1. The office serves
local assets with no analytics. Observation makes no
model-provider requests; an explicitly launched CLI uses its own
account and billing.
In a terminal, clone the repo and start the server:
git clone https://github.com/NosytLabs/agent-office.git
cd agent-office
python3 run.py
Then open http://127.0.0.1:8113. Keep this terminal running.
From the same checkout, in a second terminal:
python3 install.py --dry-run
python3 install.py --only codex
The first command previews detected integrations without
changing configuration. The second connects only Codex. Replace
codex with the tools you use: hermes, opencode,
claude, codex, gemini, or vscode. Unrelated configuration is
preserved. Restart the selected runtimes afterward. The
installer does not install the CLIs themselves.
For Codex, review and trust the hook through
/hooks. Existing OpenCode JSONC receives manual
setup instructions.
The installer can add the included VS Code extension. Keep the local server running, reload VS Code, and run this command from the Command Palette:
Agent Office: Open Floor
For remote workspaces or a different local port, follow the extension connection guide.
Optional: install and sign in to Codex, Claude Code, or OpenCode first. Stop the existing office server, then restart it with your project’s absolute path in place of the example:
python3 run.py --enable-task-runner --workspace /absolute/path/to/project
Open Tasks → Local runs, choose the project and CLI, review the prompt, then press Run task. This starts a new process, not a message to an existing session. The CLI uses its own account, permissions and billing. The hosted demo cannot run commands on your computer.
Before you move in
It observes connected sessions by default. Enable the optional local task runner to start a new Codex, Claude Code, or OpenCode task in a configured project, follow its output, and cancel it. Respond to existing sessions' questions and permission requests in the original runtime. Set up local task runs.
The public demo uses fictional sessions, activity, XP, and usage. Its preferences stay in your browser. To observe actual work, run the local server and install the adapters on the same computer as your runtimes.
The office records the counters a supported source reports, with replay protection and corrections. It keeps unavailable values distinct from zero and labels partial coverage. Cost values are runtime estimates when supplied, not provider invoices. Read each adapter’s scope.
Retained raw history defaults to the newest 1,000 events within seven days and 5 MiB. Change all three limits in Customize. History pruning preserves earned progress, usage totals, and unanswered approvals. Usage identities remain separately for corrections, so this is not a hard cap on the entire database. If retention settings cannot be read safely, automatic pruning pauses while observation continues.
The repository’s code is MIT licensed. Run it locally and customize the themes, names, characters, furniture, aquarium, and music. Runtimes and model providers have their own requirements and pricing. Optional commercial Smallburg art is not bundled; the public app includes original fish sprites.
Tasks brings together session activity, reported lists, saved briefs with backup import/export, and optional new local runs. Sending work into existing OpenCode sessions, interactive terminals, and scheduled orchestration are not available. The audit record separates verified behavior from remaining work.
Open source. Open door.
Try the room. Read the code. Help make the next version better.