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.
- Source repo
- Charonyuu/whatsmyagentdoing
- Stars
- ★ 375
- Last updated
- 1d ago
- License
- MIT
- Primary language
- JavaScript
- FA score
- 67/100 · Some gaps
At a glance
- How it runs
- Works with
- Portable with changesCodex · Claude CodeChatGPT (Unsupported)
- Cost
- Free, no paid service needed
- Setup effort
- Low · running in minutes
- You'll need
- 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.
- 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.
- Someone sharing their screen or recording a demo, using --private so only statuses show and prompts/replies stay hidden.
- 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.
- Users who want a browser notification and an optional chime when an agent finishes or needs input.
- 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.
- 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/myofficeUpdate later with:
git -C ~/.claude/skills/myoffice pullIf you would rather skip the skill, run the CLI from a clone:
node bin/cli.jsHow 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-hookRun --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?
- 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.
- 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?
Why each dimension lost points
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).
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).
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).
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).
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).
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).
- --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.