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
CLI

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
All reasons and checks

kbwen/agent-virtual-office

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add cli/agent-virtual-office

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

Extended 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 hooks

Limitations

  • 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.

CLI tools

A 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.

PluginExtended access60Repository stars

A tmux-based TUI that runs Claude Code, Codex and other agents in one list: status, quick prompts, worktrees and diff review

CLIBroad access691Repository stars

Local meeting rooms for Codex and Claude Code agents to talk to each other while a person reads and posts from a browser.

SkillExtended access113Repository stars

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

CLIBroad access1.4KRepository stars

A shared board for Claude Code, Codex and other agents: a question an agent stops on rises to the top within seconds.

PluginExtended access58Repository stars

An open coding agent for the terminal, browser and desktop that works with models from OpenAI and Claude to Ollama

CLIBroad access364Repository stars

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.

README badge

Report a problem