本地多 Agent 任务控制台,用来集中查看 Codex、OpenCode、Claude Code / Claude Desktop 等工具里的线程、项目、token 用量、运行状态和待处理事项。
它默认只监听 127.0.0.1,只读取本机状态文件,不写入 Codex / OpenCode / Claude 的工作数据,也不发送遥测。
截图由 npm run screenshot:mock 通过虚构数据生成,只展示界面形态,不包含本机线程、路径、消息、token 或 quota 细节。
- 自动刷新默认 30 秒,可切到 10 秒或 60 秒;后台页面暂停拉取,窗口失焦自动降频到 60 秒,服务端用 dashboard / 通知快照和性能指标降低持续读盘与 JSON 解析压力。
- 新增 Agent 评审工作流:可把线程输出交给本机可用的 Codex / Claude / OpenCode 进行二次评审,支持多种评审模板、自定义审查要求、评审历史和完成提醒。
- 支持安装为 Chrome / Edge PWA 独立窗口,并能从浏览器页或 macOS 菜单栏辅助工具优先切回已安装应用。
- quota 总览支持按 GPT、Claude 等模型家族分组,Claude Desktop / Cowork 可从本地 Claude usage cache 读取聚合限额信号。
- Claude Desktop Code 支持
claude://resumedeep link 恢复会话,Claude Cowork 未完成任务会作为运行中信号展示。 - 顶部 Host 工作中 / 待处理指标现在可点击跳转到对应面板,通知操作采用乐观更新,窄屏线程操作更紧凑。
完整版本记录见 CHANGELOG.md。
- 汇总 Codex 本地线程、标题、项目、归档状态、模型、token 和 quota 信息。
- 汇总 OpenCode CLI / Desktop 会话,并识别待授权工具调用和 todo。
- 汇总 Claude Code CLI、Claude Desktop Code、Claude Cowork 会话。
- 按 GPT、Claude 等模型家族展示实时和本周 quota 可用量。
- 支持按来源、状态、项目和关键词筛选。
- 支持打开 Codex / OpenCode / Claude Desktop Code deep link,或在 macOS Terminal 恢复 CLI 会话。
- 支持从线程详情发起 Agent 评审:选择输入范围、目标 Agent、评审模板或自定义审查要求,并查看评审历史、复制结果或修复 Prompt。
- 支持安装为本地 PWA 应用窗口;service worker 只缓存静态前端壳,不缓存
/api/*本机 Agent 元数据。 - 提供本地通知中心;系统桌面提醒当前隐藏,待后续接入可靠的原生通知实现。
- Node.js
>=20 - macOS 推荐;Linux / Windows 可运行看板,但部分打开应用和桌面通知能力取决于系统命令
- 可选:
sqlite3命令,用于读取 Codex 本地 SQLite 状态 - 可选:
codex、opencode、claudeCLI,用于检测版本、恢复 CLI 会话,或作为 Agent 评审目标
git clone https://github.com/forxidian/agent-mission-control.git
cd agent-mission-control
npm start打开:
http://127.0.0.1:4629
安装成网页应用:
- 在 Chrome / Edge 打开本地地址后,点击顶部的“安装应用”按钮,或使用地址栏里的安装入口。
- 安装后会像普通桌面应用一样以独立窗口打开;再次从浏览器页点击顶部按钮会优先通过本地服务打开 macOS 上的 Chrome/Edge PWA app shim。
- 如果本地 app shim 不可用,会再尝试
web+agentmissioncontrol:协议唤起;卸载可从浏览器应用菜单完成。 - 独立 PWA 窗口内提供“收起”按钮,可把窗口最小化到 Dock;macOS 红色关闭按钮仍由 Chrome app shim 管理,网页不能把它改成最小化。
- PWA 只缓存前端壳子和图标,不缓存
/api/*返回的本机 Agent 元数据。
可选环境变量:
PORT=4629 HOST=127.0.0.1 npm start不要把 HOST 绑定到公网或不可信局域网地址,除非你已经评估过本机 Agent 元数据暴露风险。
Codex:
~/.codex/state_5.sqlite~/.codex/session_index.jsonl~/.codex/sessions/**/rollout-*.jsonl
OpenCode:
opencode session list --max-count 120 --format json~/Library/Application Support/ai.opencode.desktop/opencode.global.dat- OpenCode Desktop workspace state/cache 文件
Claude:
~/.claude/projects/**/*.jsonl~/Library/Application Support/Claude/claude-code-sessions/**/*.json~/Library/Application Support/Claude/local-agent-mode-sessions/**/*.json- 同目录下的
audit.jsonl和spaces.json
本项目自己的通知状态:
~/.agent-mission-control/notifications.json~/.agent-mission-control/reviews.jsonl
Agent 评审:
- 评审输入默认来自面板已经知道的线程字段,或 Codex 线程的本地 rollout JSONL。
- 评审任务会调用本机已安装且可用的目标 CLI,并把生成的评审记录写入
~/.agent-mission-control/reviews.jsonl。 - 评审 runner 默认以只读或禁用写入工具的方式运行,避免目标 Agent 在评审过程中改写项目文件。
- 评审 Prompt 会要求目标 Agent 非必要不读取文件,并避免读取
.env、密钥、cookie、token、私有配置或本地 Agent 状态文件。 - 评审面板会展示目标 Agent 的 repo 读取/写入保护能力,并支持按 Fix Loop 状态筛选评审记录。
这个项目用于本地查看你的 Agent 工作状态。它可能在浏览器里展示线程标题、项目路径、最近消息信号、token、quota 信息和评审结果。详见 docs/PRIVACY.md。
请不要提交本机状态文件、日志、数据库、.env、截图里的私密文本、cookie、token 或 API key。
npm test项目刻意保持轻依赖:当前没有外部 npm 依赖,主要使用 Node.js 内置 test runner、浏览器原生 API 和系统命令。
版本变化见 CHANGELOG.md。
生成 README 演示图:
npm run screenshot:mock这个命令会启动真实前端和 mock API,并用 Chrome headless 截图。
如果 Chrome 不在默认 macOS 路径,可以通过 CHROME_PATH 指定浏览器可执行文件;如果端口被占用,可以通过 PORT 指定临时端口。
这份仓库已按开源发布做过基础脱敏整理。发布前复核清单见 docs/OPEN_SOURCE_PLAN.md。
