Myrlin Workbook
把机器上所有 Claude Code 与 ChatGPT Codex 会话汇集到一个浏览器侧边栏,统一发现、回放、计费与编排。
证据显示:对 Claude/Codex 会话目录为只读、Codex SQLite 经内存字节映像读取不开写句柄、默认绑定 127.0.0.1、无遥测无云端、CWM_PASSWORD 首次生成并可覆盖,权限面总体克制(least_privilege 2)。扣分项:无威胁模型或安全设计文档,LAN/隧道模式下的会话转录暴露风险仅靠一句话提示。依赖安全仅见 lodash/xml2js overrides,无审计流程或 lockfile 证据(1)。外部副作用(PTY 生成、gh 开 PR、Cloudflare 隧道、worktree 删除)均在文档中声明,未发现隐瞒(2)。回滚仅靠 ~/.myrlin 下 JSON 状态,无备份/恢复机制(1)。作者署名清晰、第三方商标声明规范,但发布者未经核实(2)。
README 与 package. 相互印证(1.3.0-alpha.31 对应 v1.3 alpha 通道、Node 20+ engines 一致、CI 覆盖 20/22)(2)。node-pty 缺构建工具时明确降级仍可启动,未知字段显示 unknown 而非猜测,失败路径处理得体(2)。扣分:v0.9 稳定版声明与 npm 双通道在本次证据中无法交叉验证;测试主要覆盖 HTTP 客户端与 UI 源码扫描,核心解析/定价逻辑未见直接测试(扣至 2 而非 3)。
受众与场景描述极为具体:同时运行 Claude Code 与 Codex 的开发者、手机端、TUI、demo 模式,环境适配覆盖 Windows ConPTY/macOS/Linux(双 3)。边界声明清楚:'不是托管服务、不是 agent',Codex 不显示美元价格的理由坦率(2)。扣分:触发条件(会话发现规则)与第三方 CLI 数据格式变更的容错仅在文档断言,未见代码级证据。
文档架构出色:SETUP/FEATURES/PROVIDER-INTERFACE/WORKFLOWS/OPERATIONS/CHANGELOG/设计规范分层清晰(3);安装说明含 Node 版本、构建工具依赖、密码、CWM_HOST(3);LICENSE 为完整 AGPL-3.0 全文并有义务说明(3)。扣分项:CHANGELOG 内容未在证据中出现(2);维护责任为单一作者 'Arthur',无治理、发布或安全响应渠道(1);alpha/stable 双通道多 bin 名(myrlin/myrlin-tui/cwm)存在命名漂移风险(2)。
输出可用性(可滚动终端、成本表、看板、搜索)在文档层面描述充分(2)。边际价值论据具体(解决两 CLI 会话碎片化、滚动缓冲缺失的真实痛点),但属静态断言未经验证(2)。成本收益:本地免费开源、无订阅,开销主要为本地资源(2)。扣分:所有功效声明(成本解析正确性、终端行为)均无执行证据。
README 各项声明可追至具体文档、契约文档与守卫测试(如 provider 名称硬编码检查、调色板一致性测试)(2)。跨来源一致性良好:README、package.、CI 注释、测试注释相互印证(2)。事实与推断分离做得好:测试注释记录历史事故(2026-05-11 生产目录被测试清空)并说明修复;'unknown 就显示 unknown'、'没有公布价格就不编造' 的立场明确(2)。扣分:关键声明(Codex SQLite 读取、成本计算)未附可直接复核的代码路径于本次证据内。
- 发布者身份未经核实;AGPL-3.0 与良好文档不构成供应链信任,安装前应审查 scripts/postinstall.js 等安装期脚本。
- 通过 CWM_HOST 暴露到局域网或 Cloudflare 隧道后,AI 会话转录(可能含密钥与代码机密)可通过浏览器访问;务必先设置强密码并评估网络暴露面。
- 应用可生成 PTY 终端、通过 gh 创建 PR、删除 worktree 并管理进程(stop/kill);这些操作影响本地系统状态,建议在隔离环境先行试用(--demo 模式可用)。
- 无备份/回滚机制,状态存于 ~/.myrlin;历史上曾发生过测试清空生产数据的故障,升级前应手动备份该目录。
- 单一维护者、alpha 通道与多 bin 命名意味着 API 与行为可能快速变化,不适合直接作为关键工作流依赖。
这个 Agent 能做什么,适合哪些场景?
Myrlin Workbook 是一个开源的本地工作区管理器,用于统一管理 Claude Code 与 ChatGPT Codex 两种 CLI 编码代理的会话。它以只读方式从 ~/.claude/projects 和 ~/.codex(含 state_5.sqlite)发现磁盘上的所有会话,按项目文件夹分组,并在浏览器中通过 xterm.js 与 node-pty 打开真实终端。架构为 Express 服务器加原生 HTML/CSS/JavaScript 单页应用,无 React、无打包、无构建步骤;前端按源码原样提供,实时状态经 SSE 推送,终端数据走 WebSocket 二进制帧。成本直接从 Claude 转录中的用量字段按模型、会话和项目计算;还内置看板、文档面板、git worktree 管理与手机端布局。它不是托管服务、不是代理本身,无注册、无云端、无遥测,所有数据留在本地磁盘,以 AGPL-3.0 许可发布。
启动时扫描 ~/.claude/projects 与 ~/.codex(优先通过内存字节映像读取 state_5.sqlite,保留 rollout JSONL 文件系统遍历作为后备),只读解析会话并按运行目录分组,提供 Recent 与 Discovered 列表及 All / Claude Code / ChatGPT Codex 过滤器。点击任一会话即在浏览器标签中以 xterm.js over node-pty 打开真实 PTY 终端(Windows 用 ConPTY,无需 WSL),可滚轮回看完整对话历史、拖选复制。Codex 详情条显示模型、推理力度、审批策略与沙箱;Claude 成本从转录中的 input/output/cache write/cache read token 按 per-model 定价计算,解析在 worker 线程运行。看板含 Backlog、Planning、Running、Review、Done 五列,卡片可绑定 git 分支、worktree 与实时会话,并通过 gh CLI 创建和跟踪 PR。手机端通过 CWM_HOST 绑定局域网或应用内启动的 Cloudflare 隧道访问,另有 TUI 模式(npm start,基于 blessed)。
- 同时使用 Claude Code 和 Codex 的开发者,想在一个侧边栏找到并重启散落在多项目文件夹中的几百个会话
- 需要在终端面板中回滚查看一小时前的代理输出并复制内容的工程师,而不是受限于无回滚缓冲的屏幕重绘
- 想按日/周/月追踪 Claude 编码成本(按模型、会话、项目)的团队负责人
- 在通勤路上用手机通过局域网或 Cloudflare 隧道查看会话状态、响应 Attention 徽标中等待自己的事项的人
- 用看板卡片绑定分支、worktree 与实时会话,并一键通过 gh 打开 PR 的代理任务编排者
- 想避免两个运行中的代理编辑同一文件冲突的开发者,借助按文件级冲突检测提示
这个 Agent 有哪些优点和局限?
- 唯一同时原生发现并只读读取 Claude Code(~/.claude/projects)与 Codex(state_5.sqlite 与 rollout JSONL)会话存储的本地工作区管理器,数据与 ChatGPT 桌面应用一致
- 真实 PTY 终端(xterm.js + node-pty,Windows 走 ConPTY 无需 WSL),滚轮回看可无缝延伸到记录的完整对话历史,无缓冲截断
- 零构建步骤的 vanilla 前端 + Express 后端,provider 以模块化接口(src/providers/)抽象并有测试守护,新 CLI 可按 PROVIDER-INTERFACE.md 契约接入
- 成本从转录用量字段直接按模型定价计算,解析在 worker 线程避免阻塞终端 I/O;Codex 无公开定价时如实显示 token 而不编造金额
- 完整手机端体验(visualViewport 驱动布局、原生长按选择、Ctrl+C 长按调出全部控制键)与内建 Cloudflare 隧道管理
- 核心依赖已安装的 Claude Code 与 Codex CLI——它不调用模型,本身不是代理,没有这两个 CLI 就没有会话可管理
- node-pty 需要 C++ 构建工具链,缺失时终端面板功能不可用(应用可启动但降级)
- AGPL-3.0 许可要求:若将修改版作为他人可访问的服务运行,必须公开修改
- 手机/远程访问需自行配置 CWM_HOST 与真实密码,默认仅绑定 127.0.0.1,安全配置由用户负责
- v1.3 仍为 alpha 版本(npx myrlin-workbook@alpha),稳定版 v0.9 仅支持 Claude
如何安装或部署这个 Agent?
需要 Node.js 20 或更新版本。直接用 npx 运行:
npx myrlin-workbook@alpha # v1.3 alpha:支持 Claude Code 与 ChatGPT Codex
npx myrlin-workbook # v0.9 stable:仅 Claude
npx myrlin-workbook --demo # 示例数据演示
node-pty 需要 C++ 构建工具;缺失时应用仍可启动,只是没有终端面板。首次启动自动生成随机密码并保存到 ~/.myrlin/config.,可用 CWM_PASSWORD 覆盖。服务器默认绑定 127.0.0.1;设置 CWM_HOST 为局域网 IP 以便手机访问(需先设置真实密码)。
如何使用这个 Agent?
安装后运行 npx 命令启动本地服务器,在浏览器打开该标签页。侧边栏按文件夹分组显示所有发现的会话,Ctrl+K 模糊搜索会话、项目和命令;点击会话在终端面板打开,可滚轮回看、拖选复制(Ctrl+C 复制,Ctrl+Shift+A 全选,Shift+PageUp 翻页)。从 Settings、Interface、Terminal theme 选择十三种终端配色之一。Costs 视图提供 Day/Week/Month/All 选择器、时间线图表和可排序表格。看板卡片右键可同时创建分支、worktree 和会话。手机访问:设置 CWM_HOST 为局域网 IP 或使用应用内 Cloudflare 隧道,扫码配对后登录一次即可。更多键盘快捷键、环境变量与排错见 docs/SETUP.md。
这个 Agent 与同类方案有什么区别?
它定位为 Claude Code 与 ChatGPT Codex 两个互不感知的 CLI 之上的统一工作区管理层——在此之前用户只能在各自 CLI 的会话列表里按 UUID 挑选,或在多个终端窗口间切换;Myrlin 把两者按项目文件夹聚合并加入可回滚终端、成本核算与看板。