What's My Agent Doing(/myoffice 办公室仪表盘)

把本机所有 Claude Code、Codex 等 CLI 代理的活动变成一间实时小办公室,一眼看清谁在忙、谁在等你。

Star 数
★ 375
最近更新
1 天前
License
MIT
主语言
JavaScript

30 秒速览

运行形态
Agent 插件 / 技能网页应用命令行工具
可在哪里用
兼容但需适配Codex · Claude CodeChatGPT(不支持)
费用
免费,无需付费服务
上手难度
低 · 几分钟可跑通
开始前需要
Node.js 18+Node.js 22.13+(用于 OpenCode 与 Hermes 的 SQLite 会话)zstd 可执行文件或 Node.js 的 zstd 支持(用于压缩的 DSH 日志)Shell / 命令行本地文件系统
典型场景
同时开着多个 Claude Code 和 Codex 会话的开发者,想一眼看出哪个代理卡住、哪个在等批准。
不适合
  • 只用 Google Antigravity 桌面版、没有 CLI 会话记录的用户
  • 要求界面只显示英文或不需要追踪多个 CLI 代理的团队
  • Node.js 版本低于 18 的旧环境

这个 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,把网关观察到的会话也纳入办公室。

  1. 同时开着多个 Claude Code 和 Codex 会话的开发者,想一眼看出哪个代理卡住、哪个在等批准。
  2. 在共享屏幕或录屏演示时,用 --private 打开办公室,只显示状态不暴露 prompt 和回复内容。
  3. 团队负责人想按项目和代理查看今天的轮次与 token 消耗,用 Today 面板和上下文占用条判断谁快到上下文上限。
  4. 需要在代理完成任务时收到提醒的用户,开启浏览器通知和 Settings → Sound 的提示音。
  5. 喜欢可视化的人,用 3D 视图或下载 Haunted Hollow、Pirate Cove 等场景包,把工作状态变成可旋转的小办公室。
  6. 想复现某次会话的人,从侧栏复制 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?

FollowAgents 源码审查 · FARS-2.1
存在缺口
67/ 100 五分制 3.4 / 5
信任安全 17/29
可靠稳定 9/14
适用触发 14/18
规范维护 13/18
有效结果 10/13
证据核验 4/8
查看各维度的扣分理由
信任安全17 / 29 · 2.9/5

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。

可靠稳定9 / 14 · 3.2/5

README 对状态机、日志格式、压缩解码、大文件 head+tail 等行为描述细致且内部一致(2)。依赖可用性:Node 18+ 声明清楚,node:sqlite 需 22.13+ 且缺失时优雅降级,但 zstd 解码依赖系统可执行文件或 Node 内置,存在环境依赖(2)。失败信息:README 描述失败轮询打印无凭据警告、压缩日志不可读时告警并继续,但未展示实际错误文案,给 2。

适用触发14 / 18 · 3.9/5

受众与场景清晰(多客户端监控、屏幕共享、演示模式),给 2。能力边界写得非常充分:明确哪些客户端支持、哪些状态无法判定、日志非公开 API(3)。触发精度:/myoffice 与自然语言触发,但 skill 触发机制细节未在可见文件中展开,给 2。环境适配:跨平台路径、环境变量覆盖、PiP 回退均有说明,但 Windows 路径与部分客户端支持仍有限,给 2。

规范维护13 / 18 · 3.6/5

信息架构清晰,安装说明详尽(3)。命名稳定性:包名与 CLI 名一致,但版本 0.7.1 属早期,接口可能变动,给 2。示例与 FAQ:有 GIF 演示与选项说明,但无独立 FAQ,给 2。已知限制非常充分(3)。许可证 MIT 完整(3)。版本与变更日志:仅有版本号,无 CHANGELOG,给 1。维护责任:作者未验证,无治理或维护承诺说明,给 1。

有效结果10 / 13 · 3.8/5

输出可用性高:多视图、状态表、通知、JSON 快照、resume 命令(3)。边际价值:对多 agent 并行监控有实际价值,但属可视化增强而非核心能力,给 2。成本效益:零运行时依赖、轻量,但 3D 资源与场景下载增加体积,给 2。

证据核验4 / 8 · 2.5/5

声明可追溯: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,客户端更新后状态可能退化。
证据充分度:低 评估于 2026年11月4日 审查版本 2775d199f8c4
查看完整评分方法 →

常见问题

它会把我本地会话日志上传到哪吗?
不会。服务只绑定 127.0.0.1 并拒绝非 localhost 请求,日志以只读方式 tail;--private 会连 prompt、回复和标题都不发送到页面。唯一的可选外部通信是更新检查,可用 WMAD_NO_UPDATE_CHECK=1 关闭。
为什么我的代理一直显示 Running 而不是 Waiting for you?
Claude Code 不记录权限提示,这是已知限制;运行 node bin/cli.js --install-hook 安装可选 Notification hook 后,权限或提问会写标记到 ~/.whatsmyagentdoing/waiting,该会话就会显示 Waiting for you。Codex 和 Gemini CLI 原生记录该状态。
需要安装依赖或配置 API key 吗?
不需要 npm install,也不需要模型 API key。只要有 Node.js 18+(OpenCode/Hermes 需要 22.13+)即可运行;它读取的是各 CLI 自己写出的会话记录。
Google Antigravity 桌面版能用吗?
不能。Antigravity 桌面版把对话存在未公开的二进制存储里,目前不支持;只有它的 agy CLI 被支持,可用 ANTIGRAVITY_HOME 覆盖路径。
3D 视图会很重吗?
默认是 Medium 2D canvas,零依赖;只有选择 High 时才加载约 180 KB gzip 的 three.js 包和约 1.3 MB 的 meshopt 压缩模型,场景包按需下载并用固定 SHA-256 校验后安装到 ~/.whatsmyagentdoing/scenes。
在 GitHub 查看 ↗ 安装 ↓

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents