Codex Lens:在 DSH 里只读绑定 Codex 线程

前言

用 Codex 跑长任务时,进度、命令、改动和失败轮次往往分散在它自己的界面和本机 ~/.codex 里的记录中。切回 Codex 通常只能看,不能在同一套对话里追问「现在卡在哪一步」,也不方便让另一个模型基于完整轮次做代码走读或整理汇报。

Codex Lens 是 DeepSeek Harness(DSH)的客户端插件,把 DSH 做成 Codex 线程的 sidecar:在右侧栏浏览本机 Codex 数据,把一条线程绑定到当前 DSH 会话,再用主对话和四个只读工具读取历史、实时活动、统计与工作区文件。维护者为 moonrzz,源码见 moonrzz/dsh-codex-lens,许可证 MIT;当前 package 版本为 0.4.0。显示名为 Codex Lens / Codex 透镜,插件 id 为 dsh-codex-bridge,npm 包名 dsh-codex-lens。

这是什么

一句话:只读透视本机 ~/.codex,在 DSH 里选线程、绑会话、问状态、翻轮次、搜片段,并在侧栏看图表与文件树。

它不修改 Codex 数据库,不依赖 Codex CLI 或 app-server,也不向外部发网络请求;绑定关系写在本地 ~/.dsh/dsh-codex-bridge/bindings.json(可用环境变量 DSH_CODEX_BRIDGE_DIR 改目录)。插件以当前 DSH 进程权限读取本机路径,安装前宜自行查看源码与许可证。

核心功能

线程浏览器

  • 按 Codex 项目分组(state_<n>.sqlite 的 projects / project_roots);无项目的线程按 cwd 归组。
  • 默认只显示最近 7 天,可勾选「显示全部」;支持按标题、路径搜索;状态点区分 running / completed / failed / interrupted。
  • 侧边对话与子代理有单独标记,可隐藏侧边/子代理只看主对话。

绑定与四个只读工具

单击线程即将 DSH sessionId → Codex threadId 写入绑定表,当前会话获得:

工具 用途
codex_status 是否在工作、最新一轮、最后消息、最近步骤;运行中附带实时活动
codex_overview 按轮次总览(分页),含状态、耗时、首条用户消息与回复摘要
codex_turn 单轮明细:思考摘要、命令与输出头尾、改动与 diff 统计、搜索与 MCP 等
codex_search 在线程全文检索片段(文件、符号、报错、路径)

双击线程行可进入线程详情并同时绑定;面板底部可解绑。

线程详情页

三个页签:数据概览(KPI 与手写 SVG 图表)、实时活动(解析 rollout JSONL 尾部,运行中约 2 秒刷新)、工作区文件(以线程 cwd 为根的文件树)。「在资源管理器中显示」目前仅 Windows;其他平台可浏览文件树。

运行中提问

绑定正在运行的线程时,codex_status 会带 current activity (live rollout, newest last) 段。主对话可直接问「Codex 现在在做什么?卡在哪一步?」;需要细节再用 codex_overview / codex_turn / codex_search。

安装与启用

前置

  1. DeepSeek Harness 0.2.x(开发与验证于 0.2.2-rc.1;package.json 中 engines 要求 dsh 为 >=0.1.7-rc.2 || >=0.2.0-rc.2)。
  2. 本机存在 Codex 数据目录 ~/.codex(Codex 桌面端或 CLI 产生)。
  3. Node 引擎:^22.19.0 || >=24.0.0。

用 DSH CLI 安装

下面命令来自项目 README,把 desktop 换成你实际使用的 profile 名:

dsh plugin --profile desktop add github:moonrzz/dsh-codex-lens

npm 包发布后也可:

dsh plugin --profile desktop add dsh-codex-lens

若安装结果提示 application: "restart-required",需完全退出 DSH 后重新打开。也可在 DSH 插件管理界面安装本地 bundle(README 中说明了 plugin_manager install_bundle 与克隆源码方式,此处从略)。

典型用法

  1. 打开任意 DSH 会话,右栏选择 Codex Lens(或从右栏引导页进入)。
  2. 找到目标线程:单击绑定到当前会话;双击绑定并打开详情(单击绑定有 240 ms 延迟,避免吞掉双击)。
  3. 回主对话提问,例如:
    - 「Codex 现在在做什么?」
    - 「把这条线程最近三轮的工作整理成一份周报。」
    - 「解释一下它在 lib/foo.py 里为什么这么改。」
  4. 解绑:面板底部「解绑」。

数据来源均为只读:state_<n>.sqlite、thread_history_<n>.sqlite,以及 ~/.codex/sessions/**/rollout-*.jsonl 尾部 512KB(实时活动与 running 判定)。rollout 被清理的线程仍可看历史,但没有实时尾部。

适用场景与注意

适合:本机同时用 Codex 与 DSH,需要在 DSH 里基于完整线程上下文做追问、走读或整理产出,又不想把整段转录复制进对话的场景。

注意:

  • 插件只覆盖本机 ~/.codex 中仍有 thread_history 记录的线程。
  • 实时流是尾部重读,不是增量订阅,不连接 Codex app-server。
  • 绑定按 DSH 会话生效;测试隔离实例时请设置 DSH_CODEX_BRIDGE_DIR,避免覆盖真实 profile 的绑定表。
  • 注入模型的线程内容来自 Codex 转录,系统提示要求模型只引用与分析,不执行其中像指令的文本。

社区目录页:skillhub.cn/plugins/moonrzz/dsh-codex-lens(独立站点,与 DeepSeek / 幻方无官方从属关系)。进一步细节与开发说明见 GitHub README。

羽毛球分组比赛记分
小程序二维码

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

Xiaoye