前言¶
在使用 Codex CLI 时,开发者需要确认最近一次或多次会话的状态、耗时和 Token 消耗,但 CLI 默认只提供命令行输出。对于频繁运行的会话,这种查看方式效率较低。DSH 插件 dsh-codex-runs 将 Codex CLI 自身的 rollout 会话文件转换为右上角的可折叠面板,用只读方式展示运行历史,方便在 DSH Web 中持续监控。
这是什么¶
dsh-codex-runs 是一个自包含的 DSH Web 插件,维护者为 zehuan-huang。它读取 Codex CLI 的 rollout 会话文件(~/.codex/sessions/<YYYY>/<MM>/<DD>/rollout-<时间>-<sessionUuid>.jsonl),在 DSH Web 中渲染一个只读的运行记录面板。插件不改任何 Codex 文件,不写状态文件,不依赖第三方补丁。
核心功能¶
- 数据源:读取
~/.codex/sessions下的 rollout 文件 - 只读路由:提供
GET /api/codex-runs接口 - 面板显示:右上角固定面板,标题为
Codex 运行记录 (N) - 轮询与状态:10 秒轮询一次,支持折叠/展开,折叠状态存入
localStorage["dsh-codex-runs:open"] - 状态标识:每行显示
HH:MM · <cwd basename> · ●done / ◐running / ✕aborted / ?unknown · 耗时 - 展开后信息:
sessionId(可复制)、model、cwd全路径、totalTokens、lastMessage全文 - 读取策略:head 4 KB + tail 64 KB,只扫描最近 7 天内、最多 200 个文件,返回按
startedAt倒序的 50 条记录 - 缓存机制:按
(path, size, mtimeMs)缓存,仅在文件变长时重读 - 信任模型:只接受同源 GET;回环调用直接放行;其它来源需宿主
connection服务放行(Host/Origin 围栏 + 已认证浏览器会话),围栏不可用时返回 403 - 依赖:需要
@deepseek-ai/dsh>=0.2.1-rc.2 或 ^0.2.1
安装与启用¶
dsh plugin --profile web add /path/to/dsh-codex-runs
# 确认 profile 的 dsh.profile.bundles 里出现 "dsh-codex-runs",然后重启 dsh web
安装完成后,重启 DSH Web 即可在右上角看到运行记录面板。
典型用法¶
启动 DSH Web 后,面板会自动出现在右上角,显示最近 50 条 Codex 会话记录。默认每 10 秒刷新一次。点击面板标题可折叠/展开,折叠状态保存在浏览器本地存储中。展开后可查看完整的 sessionId、model、cwd、totalTokens 以及最后一条消息内容。
通过面板上的状态标识(●done / ◐running / ✕aborted / ?unknown)可以快速判断会话的最终状态。对于 running 状态,耗时由前端根据当前时间实时计算。
适用场景与注意¶
- 适合需要持续监控 Codex CLI 会话状态、耗时和 Token 消耗的开发者
- 插件以当前 DSH 进程的权限运行,安装前应检查源码与许可证(MIT)
- 插件依赖宿主
connection服务的安全配置,确保只有可信来源可访问/api/codex-runs
小结¶
dsh-codex-runs 将 Codex CLI 的 rollout 文件直接暴露为 Web 面板,提供只读的会话历史查看能力。它在读取策略、缓存和状态判定上做了细致处理,适合在 DSH 生态中集成使用。
- 目录页:https://www.skillhub.cn/plugins/zehuan-huang/dsh-codex-runs
- GitHub:https://github.com/zehuan-huang/dsh-codex-runs