Agent Virtual Office CLI
Agent Virtual Office draws Claude Code, Codex and Gemini CLI state as a tiny browser office through hooks and HTTP
- 71 ★ on the repository
- Last commit
- MIT
Extended access
Why this level
- Lifecycle hooks run a local adapter on agent events and write status metadata to local files
- The GitHub launcher listens on LAN without authentication, and the token protects API writes only
Install
- Works in
In your terminal, with SkillFoxx CLI
npx skillfoxx add cli/agent-virtual-officeDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- Lifecycle hooks run a local adapter on agent events and write status metadata to local files
- The GitHub launcher listens on LAN without authentication, and the token protects API writes only
This is third-party code. Review the repository files before installing.
What it does
Agent Virtual Office opens a pixel or classic "office" in the browser where role characters (PM, architect, developer, QA, DevOps, researcher, gatekeeper, designer) mirror the state of your agents. Status rings follow tool reports: a working agent sits at a desk facing its screen, and between tasks characters have coffee and gather at the whiteboard. A menu button opens a roster with status and recent activity, handy even in an IDE sidebar. Run it with no clone: `npx github:KbWen/agent-virtual-office --no-host`. `npx github:KbWen/agent-virtual-office setup` installs Claude Code lifecycle hooks, and the `--platform codex` and `--platform gemini` flags set up Codex CLI and Gemini CLI. Any tool can report status with a plain request: `POST /api/status` with a body like `{"dev":"working","workflow":"Sprint 42"}` or `POST /api/event` for a one-shot CI event such as `deploy-success`. Only a local server is needed: there is no hosted backend, database or WebSocket. Live status appears only when a connected source reports it, and ambient scenes remain decoration. The interface is in English and Traditional Chinese.
Who it is for. Developers who run several agents in the background and want to see their state at a glance without paging through terminals.
Good fit when
- Three agents work in different terminals and you want one screen showing who is busy and who waits for permission
- A CI build finishes and the office should show a `deploy-success` signal
- You want an IDE sidebar with a roster of agents and recent activity
- A team on a shared server with Docker, Nginx and PM2 watches pipeline status
- You want to connect Claude Code, Codex CLI and Gemini CLI to one office through hooks
Not a fit when
- You need proof the agent ran a tool: manual reports and file signals show only submitted data
- Status must be closed off from the network: the GitHub launcher listens on LAN by default and `--no-host` closes that
- You need token and cost accounting: the office shows only states
- The agent has no hooks or transcripts: there will be no status source
Example request
Start Agent Virtual Office with npx github:KbWen/agent-virtual-office --no-host and connect the Claude Code hooksLimitations
- The GitHub launcher listens on all interfaces without authentication; the `--no-host` flag limits access to this machine.
- The `OFFICE_API_TOKEN` variable protects API writes but not status reads or the SSE stream.
- Codex hooks run a local adapter: check all six entries in the Review hook dialog before approving.
- The thinking state is inferred from elapsed time. The `Stop` event moves an agent to idle and does not mean done. An npm package with the same name belongs to another repository.
How to disable. Remove Claude Code hooks from `.claude/settings.json` and Codex and Gemini hooks from the project config, and stop the office with Ctrl+C. No package install is needed because `npx` leaves nothing global.
FAQ
How do I run Agent Virtual Office without cloning?
Run `npx github:KbWen/agent-virtual-office --no-host` and open the tab the browser shows. The npm package of the same name belongs to another project, so the `github:` form is required.
How do I connect Claude Code?
Run `npx github:KbWen/agent-virtual-office setup`: it installs lifecycle hooks. Status appears once Claude Code starts sending events.
Does the office work with Codex and Gemini CLI?
Yes. In the project root run setup with `--platform codex` or `--platform gemini`. With Codex a Review hook dialog opens afterward to check six entries.
Can I connect my own tool?
Yes, the office takes plain HTTP requests: `POST /api/status` sets a state and `POST /api/event` sends a one-shot event, for example from CI.
Does it need a database or cloud?
No. There is no hosted backend, database or WebSocket; a local server holds the status.
Discussion
No questions or reviews yet.
Related
CLI toolsA pixel-art office in the browser: each Claude Code or Codex session sits at a desk, types and raises a hand when it needs you.
A tmux-based TUI that runs Claude Code, Codex and other agents in one list: status, quick prompts, worktrees and diff review
Local meeting rooms for Codex and Claude Code agents to talk to each other while a person reads and posts from a browser.
A multi-agent harness that verifies results by artifacts: stop hooks, an independent judge and an event log for Claude Code, Codex, Cursor and more
A shared board for Claude Code, Codex and other agents: a question an agent stops on rises to the top within seconds.
An open coding agent for the terminal, browser and desktop that works with models from OpenAI and Claude to Ollama
README in short
The README shows the office with its characters and scenes, then gives an `npx` quickstart, a section on connecting agents (Claude Code, Codex, Gemini CLI, Antigravity and any HTTP source) and notes on what Codex hooks do and do not show.