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。

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

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

小夜