The studio
The office is ready.
Start a connected agent to bring the room to life.
Start a connected agent to bring the room to life.
Needs input first. Select a session.
All recorded runtimes; not narrowed by the agent filters.
Synthetic demo usage · illustrative token counts and costs, not real charges.
Observed session activity. Assign and approve work in your agent’s own terminal.
Write a task brief here, then copy it into your chosen agent. This panel does not run commands, submit prompts, or grant approvals.
Off by default. Remembered text stays in this tab's browser storage, separate from XP, usage and event history. Do not put secrets in a task brief.
python3 run.py --enable-task-runner --workspace
/absolute/path/to/project
Runs are held in memory and disappear when the server restarts.
Uses the selected CLI’s own account, configuration, and existing permissions; requests needing new approval are denied. Agent Office provides no models or APIs.
Follow the live stream or search the event history kept on this computer.
Name your office, arrange the room, and decide how much activity to keep.
Leave blank to use the selected layout’s name.
Expand the room with a compact HUD. Saved in this browser. V toggles it; Escape exits after closing panels or finishing furniture edits.
Release choices for sessions that have left the office. Active sessions keep their preferences, including sessions outside the current runtime view.
Choose a prop, then click a free area on the floor. Up to 24 custom props.
Filters the latest 30 events, not the full saved history. Older events are in Activity. Requests here may already be answered; use Needs input for requests waiting now.
Keep the most recent events within the size, count and age limits. These limits do not remove XP, reported usage, or unanswered requests.
The database also stores live sessions and usage totals, outside the event history limit.
Automatic history pruning is paused until settings can be read.
Retention limits apply to raw event history. The database also keeps usage correction records and live state. Inbox totals already include processed files awaiting cleanup and temporary publications; these rows are not additive.
Unprocessed events and temporary publications are kept for safe retry. Legacy logs are read without truncation. A settings change does not remove those files.
Reset clears XP, earned badges, reported usage and event history. Your room settings stay.
This office observes your coding agents by default. Tasks → Local runs can start a fresh Codex, Claude Code, or OpenCode task only after you enable the local runner. Existing sessions and approvals stay in the original runtime. Room toys do not run agent commands.
Open the Connection guide to choose a runtime. Preview setup with
python3 install.py --dry-run, then connect only what you
use with --only. Restart the runtime and keep
python3 run.py open. The installer detects Hermes,
OpenCode, Claude Code, Codex, Gemini CLI, and the VS Code view.
The demo runs in a temporary directory and is marked DEMO. Its XP and events are separate from your real sessions.
One local observer. Your existing tools. Choose a runtime to see its connection steps.
In your Agent Office checkout, run this and keep the terminal open.
python3 run.py
In a second terminal, connect only the runtime selected above. Review its output, then restart that runtime. Add --dry-run to inspect the plan without changing configuration.
python3 install.py
Your agent appears after its first recorded event. Select its desk or open Agents to inspect the current tool and recent activity.
From the repository root, import an existing complete
codex exec --json capture. Hooks handle lifecycle
activity; this importer adds reported token counts.
python3 codex/stream.py --stream-id build-check-01 <
build-check-01.jsonl
Use one unique name per captured invocation, and reuse it only for the same capture. Include thread and turn boundaries. Interactive transcript usage and cost are not reported by this adapter.
Check the installer output and restart the runtime. The server and
runtime must share the same HERMES_HOME. Without it, both
use ~/.hermes.
Connected means the observer is reachable. It does not confirm that a runtime is installed. Quiet sessions eventually leave the room; they are not persistent employees.
When an agent needs input, select the button above the floor to inspect it. Respond in the original runtime. This office never approves a command.
Try python3 demo_feed.py for a separate, clearly labeled
demo at port 8114. Its activity and XP stay separate from your real
sessions.
Feed and collect fish as your agents work.
Artwork: loading…
Choose one to four discovered fish. Every unlock comes from observed runtime activity.
Feeding is just for fun: it earns no XP and never changes agent activity or usage. Snacks stay in this browser visit. Your fish need no care while you are away.
Pick a game for your next break. Your best Breakout score stays in this browser.
Press Load & start Duck Hunt below.
Choose a game. Nothing starts automatically.
Breakout by mazipan/mini-games (MIT), adapted for Agent Office. Duck Hunt recreation by Adi52/duck-hunt. Game credits and controls ↗
Three original, quiet loops. Music plays locally in your browser and stops when you leave this tab.
Play enables office sound. The header sound button mutes both music and notifications. Music never starts automatically.