What's My Agent Doing (/myoffice Office Dashboard)

Turn every local Claude Code and Codex CLI session into a live little office, so you can see at a glance who is busy and who needs you.

Stars
★ 375
Last updated
1d ago
License
MIT
Primary language
JavaScript

At a glance

How it runs
Agent plugin / skillWeb appCLI
Works with
Portable with changesCodex · Claude CodeChatGPT (Unsupported)
Cost
Free, no paid service needed
Setup effort
Low · running in minutes
You'll need
Node.js 18+Node.js 22.13+ (for OpenCode and Hermes SQLite sessions)zstd or Node.js zstd support (for compressed DSH logs)Shell / CLILocal filesystem
Typical use
A developer running several Claude Code and Codex sessions at once who wants to spot a stuck agent or one awaiting approval at a glance.
Not a fit if
  • Users who only use the Google Antigravity desktop app, which is unsupported
  • Teams on Node.js older than 18
  • Anyone expecting live token-by-token streaming rather than block-level status
Source review
67/100 · Some gaps

What does this agent do, and when should you use it?

whatsmyagentdoing is a Claude Code / Codex skill: type /myoffice and it starts a Node.js server bound to 127.0.0.1, opening a browser window that renders an isometric office. It installs no hooks and needs no API keys; instead it tails the session JSONL files each CLI already writes (Claude Code's ~/.claude/projects/..., Codex's ~/.codex/sessions/YYYY/MM/DD/rollout-*.jsonl, plus Gemini CLI, Antigravity CLI, Copilot CLI, Kimi Code, DSH, Grok Build, OMP and others) and pushes status over Server-Sent Events. Every session becomes a person in the office: a thought bubble while thinking, typing while a tool runs, standing up to wave when it needs you, and wandering to the pantry, couch or ping-pong table when done. There are two renderers — Medium, a zero-dependency 2D canvas, and High, a three.js 3D view using Kenney CC0 models — plus a side panel grouped Needs you → Working → Finished showing model, folder, usage, resume command and recent conversation, and a Today panel summing the day's turns and tokens.

The server tails each client's local session store: Claude Code reads ~/.claude/projects/<project>/<session>.jsonl plus subagents/; Codex scans all date folders under ~/.codex/sessions and uses log modification times to find active chats; Gemini CLI, Antigravity CLI, Copilot CLI, Kimi Code, DSH, Grok Build and OMP each read their own session paths; OpenCode and Hermes are opened read-only through Node's built-in node:sqlite against opencode.db and %LOCALAPPDATA%\hermes\state.db. Parsed events map to Thinking / Running / Writing reply / Waiting for you / Done / Interrupted / Error / Idle and are streamed to the browser over SSE. The front end turns each (provider, session) pair into an office character with Magpie icon badges, and the side panel adds turn timers, a copy button for the resume command (claude --resume … / codex resume …), optional browser notifications, and No progress flags when a tool runs over 10 minutes or thinking goes silent for 8. Optionally, WMAD_MAGPIE_URL and WMAD_MAGPIE_KEY let it poll a local Magpie gateway's /api/sessions and /api/gateway/trace to include gateway-observed sessions.

  1. A developer running several Claude Code and Codex sessions at once who wants to spot a stuck agent or one awaiting approval at a glance.
  2. Someone sharing their screen or recording a demo, using --private so only statuses show and prompts/replies stay hidden.
  3. A team lead reviewing today's turns and tokens by agent and project, and checking how full each model's context window is via the Today panel.
  4. Users who want a browser notification and an optional chime when an agent finishes or needs input.
  5. Visual thinkers who pick the 3D view or download scene packs like Haunted Hollow or Pirate Cove to rotate the office with real-time lighting.
  6. Anyone reproducing a past session by copying claude --resume … or codex resume … from the side panel.

How do you install or deploy this agent?

You need Node.js 18 or newer; there is nothing to npm install. The easiest path is to let your agent do it — paste this into Claude Code or Codex:

Install the myoffice skill from https://github.com/Charonyuu/whatsmyagentdoing: clone it with `git clone --depth 1` into `~/.claude/skills/myoffice` (for Codex: `~/.codex/skills/myoffice`), check that `node --version` is 18 or newer, then tell me to start a new session and type /myoffice.

Or do it yourself:

# Claude Code
git clone --depth 1 https://github.com/Charonyuu/whatsmyagentdoing ~/.claude/skills/myoffice

# Codex
git clone --depth 1 https://github.com/Charonyuu/whatsmyagentdoing ~/.codex/skills/myoffice

Update later with:

git -C ~/.claude/skills/myoffice pull

If you would rather skip the skill, run the CLI from a clone:

node bin/cli.js

How do you use this agent?

In a new agent session type /myoffice (or just ask "what are my agents doing?"). The office opens in your browser on port 4545, moving to the next free port if taken. Common flags:

node bin/cli.js --port 4600 --hours 48
node bin/cli.js --demo
node bin/cli.js --private
node bin/cli.js --json
node bin/cli.js --scene pirate
node bin/cli.js --stop
node bin/cli.js --update
node bin/cli.js --install-hook

Run --install-hook once so Claude Code permission prompts surface as Waiting for you, and re-run it after switching Node versions. To include sessions observed by a local Magpie gateway, set WMAD_MAGPIE_URL and WMAD_MAGPIE_KEY in your local environment before starting the dashboard.

What are this agent's strengths and limitations?

Pros
  • No runtime dependencies, no hooks, no API keys: it tails JSONL files each CLI already writes, binds only to 127.0.0.1, and --private hides prompt/reply text for screen sharing.
  • Broad client coverage — Claude Code, Codex, Gemini CLI, Antigravity CLI, Copilot CLI, Kimi Code, DSH, Grok Build, OMP, OpenCode and Hermes — while preserving subagents and per-session resume commands.
  • Two rendering paths: Medium is a zero-dependency 2D canvas; High lazily loads three.js (~180 KB gzipped) plus ~1.3 MB of meshopt-compressed Kenney CC0 models.
  • Nine UI languages (English, Traditional and Simplified Chinese, Japanese, Korean, Spanish, French, German, Portuguese) with a default that follows the language you prompt in.
  • Includes a Today usage panel, context-window bars, No progress alerts (10 min tool, 8 min thinking) and browser notifications so hung sessions don't cost an hour.
Limitations
  • The log formats are not public APIs, so an upstream format change can degrade statuses until an issue is fixed.
  • Claude Code does not log permission prompts; Waiting for you requires the optional --install-hook, which must be re-run after a Node version change.
  • OpenCode and Hermes require Node.js 22.13+ for node:sqlite; on older Node those two agents are silently skipped (with a startup line).
  • Compressed DSH logs cannot be read without Node's zstd support or a zstd executable on PATH, and the dashboard only warns.
  • Status is block-level, not token-by-token; Gemini CLI shows only Thinking between your prompt and its first tool call or reply.

How does this agent compare with similar options?

Key facts side by side with the most closely related agents.

Agent Source review Form / cost Stars Updated Language Full support on
What's My Agent Doing (/myoffice Office Dashboard) This agent 67 · Some gaps Agent plugin / skillFree ★ 375 1d ago JavaScript Codex · Claude Code
Emulo 78 · Good Agent plugin / skillFree + model costs ★ 303 1mo ago HTML Codex · Claude Code
Agent Sessions 75 · Good Desktop appFree ★ 934 1d ago Swift Codex · Claude Code
Coven 79 · Good CLIFree ★ 76 today Rust Codex · Claude Code

How does FollowAgents rate this agent?

FollowAgents source review · FARS-2.1
Some gaps
67/ 100 5-point scale 3.4 / 5
Trust 17/29
Reliability 9/14
Adaptability 14/18
Convention 13/18
Effectiveness 10/13
Verifiability 4/8
Why each dimension lost points
Trust17 / 29 · 2.9/5

README states loopback-only binding, rejection of non-localhost requests, read-only log tailing, and zero runtime dependencies, giving good data-flow transparency (3). However --install-hook writes to Claude Code settings and marker files, --update runs git pull and restarts, and scene packs download and install into ~/.whatsmyagentdoing; these external effects lack an explicit confirmation flow, so user_confirmation and external_effects score 1. Rollback is limited to --uninstall-hook and --stop with no documented recovery for failed updates or installed scene packs (1). Sensitive data handling offers --private and keeps Magpie keys server-side, but full conversation logs are pushed to the page by default (2). Dependency security: zero runtime deps, devDependencies use ranges with no lockfile evidence (2). Source attribution covers Kenney CC0 and icon sources, but publisher identity is unverified (2).

Reliability9 / 14 · 3.2/5

README describes state machine, log formats, compression decoding, and head+tail handling in detail and consistently (2). Dependency availability: Node 18+ is clear, node:sqlite needs 22.13+ with graceful degradation, but zstd decoding depends on a system executable or Node built-in, an environment dependency (2). Failure messages: README describes credential-free warnings on failed polls and warnings when compressed logs are unreadable while continuing, but no actual message text is shown (2).

Adaptability14 / 18 · 3.9/5

Audience and scenarios are clear (multi-client monitoring, screen-share, demo mode) (2). Capability boundaries are thoroughly documented: which clients are supported, which states cannot be determined, logs are not public APIs (3). Trigger precision: /myoffice and natural-language triggers, but skill trigger mechanics are not detailed in visible files (2). Environment fit: cross-platform paths, env overrides, PiP fallback documented, though Windows paths and some client support remain limited (2).

Convention13 / 18 · 3.6/5

Information architecture is clear and install notes are thorough (3). Naming stability: package and CLI names align, but version 0.7.1 is early and interfaces may change (2). Examples and FAQ: GIF demos and option docs exist, but no standalone FAQ (2). Known limitations are extensive (3). License is full MIT (3). Versioning/changelog: version number only, no CHANGELOG (1). Maintenance responsibility: author unverified, no governance or maintenance commitment (1).

Effectiveness10 / 13 · 3.8/5

Output usability is high: multiple views, status table, notifications, JSON snapshot, resume commands (3). Marginal value: real value for monitoring parallel agents, but a visualization enhancement rather than core capability (2). Cost-benefit: zero runtime deps and lightweight, but 3D assets and scene downloads add size (2).

Verifiability4 / 8 · 2.5/5

Claim traceability: README gives file paths and mechanisms for each behavior (2). Cross-source corroboration: only README and package.json are visible; test scripts exist but their contents are not provided, so corroboration is limited (1). Fact/inference separation: README distinguishes supported vs unsupported and known limits well (2).

Risks and how to mitigate them
  • --install-hook modifies Claude Code settings and writes marker files; --update runs git pull and restarts; confirm before running.
  • Full conversation content is pushed to the local page by default; use --private when screen-sharing.
  • Scene packs download and install into ~/.whatsmyagentdoing with no documented rollback on failure.
  • Publisher identity is unverified and the update check fetches a remote package.json; consider WMAD_NO_UPDATE_CHECK=1.
  • Log formats are not public APIs; statuses may degrade after client updates.
Evidence confidence: Low Reviewed Nov 04, 2026 Reviewed revision 2775d199f8c4
See the full review method →

FAQ

Does it upload my local session logs anywhere?
No. The server binds to 127.0.0.1 only and rejects non-localhost requests, and logs are read-only. With --private, prompts, replies and titles are never sent to the page. The only optional outbound call is the update check, which WMAD_NO_UPDATE_CHECK=1 disables.
Why does my Claude Code agent stay on Running instead of Waiting for you?
Claude Code does not log permission prompts. Run node bin/cli.js --install-hook once to add an optional Notification hook that writes a marker to ~/.whatsmyagentdoing/waiting on permission or question prompts; Codex and Gemini CLI log that state natively.
Do I need to install dependencies or configure API keys?
No npm install and no model API key. Node.js 18+ is enough (22.13+ for OpenCode and Hermes); it only reads the records those CLIs already write.
Does the Google Antigravity desktop app work?
No. The Antigravity desktop app keeps conversations in an undocumented binary store and is not supported; only its agy CLI is, with ANTIGRAVITY_HOME as an override.
Is the 3D view heavy?
The default Medium view is a zero-dependency 2D canvas. High loads the three.js bundle (~180 KB gzipped) and ~1.3 MB of meshopt-compressed models only when selected; scene packs are downloaded on demand and checked against a pinned SHA-256 before installing into ~/.whatsmyagentdoing/scenes.
View on GitHub ↗ Install ↓

Compare agents like this one

The same FARS review applied across the shortlist this agent qualifies for.

Related agents