What's My Agent Doing(/myoffice 办公室仪表盘)
把本机所有 Claude Code、Codex 等 CLI 代理的活动变成一间实时小办公室,一眼看清谁在忙、谁在等你。
- Star 数
- ★ 375
- 最近更新
- 1 天前
- License
- MIT
- 主语言
- JavaScript
- FA 评分
- 67/100 · 存在缺口
30 秒速览
- 运行形态
- 可在哪里用
- 兼容但需适配Codex · Claude CodeChatGPT(不支持)
- 费用
- 免费,无需付费服务
- 上手难度
- 低 · 几分钟可跑通
- 开始前需要
- 典型场景
- 同时开着多个 Claude Code 和 Codex 会话的开发者,想一眼看出哪个代理卡住、哪个在等批准。
- 不适合
- 只用 Google Antigravity 桌面版、没有 CLI 会话记录的用户
- 要求界面只显示英文或不需要追踪多个 CLI 代理的团队
- Node.js 版本低于 18 的旧环境
- 源码审查
- 67/100 · 存在缺口
这个 Agent 能做什么,适合哪些场景?
whatsmyagentdoing 是一个 Claude Code / Codex 技能,输入 /myoffice 后会在本机启动一个只监听 127.0.0.1 的 Node.js 服务,把浏览器打开成一间等距视角的办公室。它不装 hook、不配 API key,而是只读地 tail 各家 CLI 已经写在磁盘上的会话 JSONL(Claude Code 的 ~/.claude/projects/...、Codex 的 ~/.codex/sessions/YYYY/MM/DD/rollout-*.jsonl,以及 Gemini CLI、Antigravity CLI、Copilot CLI、Kimi Code、DSH、Grok Build、OMP 等),通过 Server-Sent Events 把最新事件推成状态。每个会话对应办公室里一个人:思考时冒气泡,跑工具时敲键盘,需要你时站起来挥手,完成后去 pantry、沙发或乒乓球桌闲逛。界面提供 Medium(零依赖 2D canvas)和 High(three.js 渲染的 3D,含 Kenney CC0 模型)两种视图,侧栏按 Needs you → Working → Finished 分组,可查看模型、目录、用量、resume 命令和最近的对话,并附带 Today 面板统计当天轮次与 token。
服务端 tail 各客户端的本地会话存储:Claude Code 读 ~/.claude/projects/<project>/<session>.jsonl 及 subagents/;Codex 扫描 ~/.codex/sessions 下所有日期目录,用日志修改时间定位活跃会话;Gemini CLI、Antigravity CLI、Copilot CLI、Kimi Code、DSH、Grok Build、OMP 各自按其 session 路径读取;OpenCode 与 Hermes 通过 Node 内置 node:sqlite 只读打开 opencode.db 与 %LOCALAPPDATA%\hermes\state.db。解析出的最新事件被映射成 Thinking / Running / Writing reply / Waiting for you / Done / Interrupted / Error / Idle 等状态,经 SSE 推送到浏览器;前端把每个 (provider, session) 变成办公室里的人物,用 Magpie 图标作徽章,并在侧栏显示计时器、resume 命令复制按钮、浏览器通知和 10 分钟无进展告警。可选地可通过 WMAD_MAGPIE_URL / WMAD_MAGPIE_KEY 轮询本地 Magpie 网关的 /api/sessions 与 /api/gateway/trace,把网关观察到的会话也纳入办公室。
- 同时开着多个 Claude Code 和 Codex 会话的开发者,想一眼看出哪个代理卡住、哪个在等批准。
- 在共享屏幕或录屏演示时,用 --private 打开办公室,只显示状态不暴露 prompt 和回复内容。
- 团队负责人想按项目和代理查看今天的轮次与 token 消耗,用 Today 面板和上下文占用条判断谁快到上下文上限。
- 需要在代理完成任务时收到提醒的用户,开启浏览器通知和 Settings → Sound 的提示音。
- 喜欢可视化的人,用 3D 视图或下载 Haunted Hollow、Pirate Cove 等场景包,把工作状态变成可旋转的小办公室。
- 想复现某次会话的人,从侧栏复制 claude --resume … / codex resume … 命令直接回到那个对话。
如何安装或部署这个 Agent?
需要 Node.js 18 或更新版本,无需 npm install。最省事的方式是让代理自己装:把下面这段话粘贴给 Claude Code 或 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.也可以手动执行:
# 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后续更新:
git -C ~/.claude/skills/myoffice pull如果不想用技能,克隆后直接运行 CLI 也可以:
node bin/cli.js如何使用这个 Agent?
新开一个代理会话后输入 /myoffice(或直接问“我的代理们在干什么?”),办公室会在浏览器中打开,默认端口 4545,被占用时自动顺延。常用参数:
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要让 Claude Code 的权限提示显示为 Waiting for you,运行一次 --install-hook,并注意切换 Node 版本后需要重新运行。若要在本地 Magpie 网关下也显示其观察到的会话,在本地环境变量里设置 WMAD_MAGPIE_URL 和 WMAD_MAGPIE_KEY 后再启动仪表盘。
这个 Agent 有哪些优点和局限?
- 零运行时依赖、无 hook、无 API key:直接 tail 各 CLI 已经落盘的 JSONL,隐私边界清楚(只绑定 127.0.0.1,--private 可隐藏内容)。
- 覆盖广:Claude Code、Codex、Gemini CLI、Antigravity CLI、Copilot CLI、Kimi Code、DSH、Grok Build、OMP、OpenCode、Hermes 均可读,并保留子代理与 resume 命令。
- 两种渲染路径可选:Medium 是零依赖 2D canvas,High 才按需加载 three.js 与 Kenney CC0 模型,3D 包约 180 KB gzip。
- 多语言界面(英、繁中、简中、日、韩、西、法、德、葡),并默认跟随你写 prompt 的语言。
- 附带 Today 用量统计、上下文占用条、No progress 告警(工具 10 分钟 / 思考 8 分钟)和浏览器通知,便于发现卡死的会话。
- 日志格式不是公开 API,上游更新格式后状态可能退化,只能开 issue 等待修复。
- Claude Code 不记录权限提示,需要额外运行 --install-hook 才能显示 Waiting for you,且换 Node 版本后要重装。
- OpenCode 和 Hermes 依赖 Node.js 22.13+ 的 node:sqlite,旧版本会直接跳过这两个代理。
- DSH 压缩日志需要 Node 的 zstd 解码器或 PATH 上的 zstd 可执行文件,缺失时无法读取并会给出警告。
- 状态是块级而非逐 token;Gemini CLI 在你提问到首个工具调用之间只显示 Thinking。
这个 Agent 与同类方案有什么区别?
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| What's My Agent Doing(/myoffice 办公室仪表盘) 当前 | 67 · 存在缺口 | Agent 插件 / 技能免费 | ★ 375 | 1 天前 | JavaScript | Codex · Claude Code |
| Emulo | 78 · 表现良好 | Agent 插件 / 技能免费 + 模型费 | ★ 303 | 1 个月前 | HTML | Codex · Claude Code |
| Agent Sessions | 75 · 表现良好 | 桌面应用免费 | ★ 934 | 1 天前 | Swift | Codex · Claude Code |
| Coven | 79 · 表现良好 | 命令行工具免费 | ★ 76 | 今天 | Rust | Codex · Claude Code |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
README 明确声明仅绑定 127.0.0.1、拒绝非 localhost 请求、日志只读、无运行时依赖,数据流透明度较好(3)。但 --install-hook 会写入 Claude Code 设置与标记文件、--update 会执行 git pull 并重启、场景包会下载并安装到 ~/.whatsmyagentdoing,这些外部副作用缺少显式确认流程,故 user_confirmation 与 external_effects 仅给 1。回滚方面只有 --uninstall-hook 与 --stop,缺少对已安装场景包或更新失败的回退说明,rollback 给 1。敏感数据处理有 --private 与 Magpie 密钥仅留服务端的说明,但会话日志含完整对话,默认仍推送到页面,故给 2。依赖安全:运行时零依赖,devDependencies 有版本范围但未提供锁文件证据,给 2。来源归属:Kenney CC0 与图标来源有说明,但作者身份未经验证,给 2。
README 对状态机、日志格式、压缩解码、大文件 head+tail 等行为描述细致且内部一致(2)。依赖可用性:Node 18+ 声明清楚,node:sqlite 需 22.13+ 且缺失时优雅降级,但 zstd 解码依赖系统可执行文件或 Node 内置,存在环境依赖(2)。失败信息:README 描述失败轮询打印无凭据警告、压缩日志不可读时告警并继续,但未展示实际错误文案,给 2。
受众与场景清晰(多客户端监控、屏幕共享、演示模式),给 2。能力边界写得非常充分:明确哪些客户端支持、哪些状态无法判定、日志非公开 API(3)。触发精度:/myoffice 与自然语言触发,但 skill 触发机制细节未在可见文件中展开,给 2。环境适配:跨平台路径、环境变量覆盖、PiP 回退均有说明,但 Windows 路径与部分客户端支持仍有限,给 2。
信息架构清晰,安装说明详尽(3)。命名稳定性:包名与 CLI 名一致,但版本 0.7.1 属早期,接口可能变动,给 2。示例与 FAQ:有 GIF 演示与选项说明,但无独立 FAQ,给 2。已知限制非常充分(3)。许可证 MIT 完整(3)。版本与变更日志:仅有版本号,无 CHANGELOG,给 1。维护责任:作者未验证,无治理或维护承诺说明,给 1。
输出可用性高:多视图、状态表、通知、JSON 快照、resume 命令(3)。边际价值:对多 agent 并行监控有实际价值,但属可视化增强而非核心能力,给 2。成本效益:零运行时依赖、轻量,但 3D 资源与场景下载增加体积,给 2。
声明可追溯:README 对每条行为给出文件路径与机制说明(2)。交叉佐证:仅 README 与 package.json 可见,测试脚本存在但未提供测试内容,跨源佐证有限(1)。事实与推断分离:README 区分了已支持与未支持、已知限制,较好(2)。
- --install-hook 会修改 Claude Code 设置并写入标记文件,--update 会执行 git pull 并重启,建议在执行前明确确认。
- 默认会将完整对话内容推送到本地页面,屏幕共享时务必使用 --private。
- 场景包会下载并安装到 ~/.whatsmyagentdoing,缺少失败回滚说明。
- 发布者身份未经验证,更新检查会访问远端 package.json,可考虑设置 WMAD_NO_UPDATE_CHECK=1。
- 日志格式非公开 API,客户端更新后状态可能退化。