DSH 插件 dsh-codex-runs:查看 Codex CLI 会话运行记录

前言

在使用 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
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜