dsh-coding-agents:在 DSH 裏統一管理本機 Codex 與 Claude Code

前言

本地裝了 Codex 和 Claude Code 的話,通常要在兩套界面之間來回切換:一邊翻會話歷史、一邊改配置,兩邊跑的任務狀態也各自爲政。DSH 的思路是「一切皆插件」,能不能把這兩套工具納入同一個入口,並在 DSH 的 Agent 裏用同一套工具調用它們?

wilshi/dsh-coding-agents 就是做這件事的客戶端插件:它不重寫 agent 循環,而是通過 Codex / Claude Code 公開且穩定的本地接口,把會話、配置、運行狀態集中到一個設置頁,並額外暴露 6 個 coding_agent_* 工具給 DSH Agent。下面介紹它的功能邊界、安裝方式和典型用法,事實均來自倉庫 README(中英文)與 package.json。

這是什麼

一句話定位:DSH 的控制中心(control center),用來驅動本機已安裝的 Codex 和 Claude Code。

  • 維護者:WilShi
  • 許可證:MIT
  • 版本:0.2.3(package.json)
  • 分類:客戶端插件
  • 依賴:DSH 0.2.1-rc.5(Cordis 4.0.5),Node.js ^22.19.0 || ^24.0.0

插件只調用廠商公開的本地接口,不解析也不改寫私有數據庫。所有寫操作要麼走廠商官方配置協議,要麼採用「先備份再原子替換」。它只驅動當前用戶已安裝並登錄的 CLI,不會替用戶安裝或升級廠商工具。

核心功能

插件按引擎獨立解析可用的 CLI,順序爲 config.codexCommand / config.claudeCommand → 系統 PATH(codex / claude)→ 插件自帶包 → 都沒有時給出可操作提示。狀態頁會報告來源(config / system / bundled)以及從 <cli> --version 讀到的版本。

主要能力分四類:

  1. 會話檢索:跨 Codex 與 Claude Code 搜索本機歷史會話,分頁讀取超長記錄。
  2. 運行控制:新建、繼續或分叉原生會話,實時展示文本、工具調用與運行狀態,支持取消運行。
  3. 會話管理:重命名、打標籤、歸檔與取消歸檔、回滾、刪除。某個引擎不支持的操作會被明確拒絕,而不是靜默失敗。
  4. 配置查看與有限寫入:查看配置項的當前值、生效值與來源。HTTP 只允許寫 Codex 的 model / model_reasoning_effort 和 Claude Code 的 permissions.defaultMode,其餘鍵需要走 DSH 界面或手工編輯。

除了設置頁,同樣的能力以 6 個 coding_agent_* 工具的形式提供給 DSH Agent。

安裝與啓用

包裏附帶 cordis.patch.yml 與 dsh.bundle.patch,可以按 bundle 安裝:

dsh plugin --profile <profile> add dsh-coding-agents

也可以在 profile 的 cordis.patch.yml 中插入一條 loader entry:

- insert:
    - id: dsh-coding-agents
      name: 'dsh-coding-agents'

重啓該 profile 後,打開「設置 → 編程助手」即可看到入口。

廠商 CLI 是 optional peer,插件不綁定版本。推薦做法是自行全局安裝:

npm i -g @openai/codex

也可以裝進當前 profile:

dsh plugin --profile <name> add @openai/codex

要以某個特定構建爲準時,在 profile 的 cordis.patch.yml 裏顯式指定路徑:

- id: dsh-coding-agents
  config:
    codexCommand: /opt/homebrew/bin/codex
    claudeCommand: /Users/me/.local/bin/claude

沒裝 Claude Agent SDK 時插件照常加載,Codex 引擎繼續工作,Claude Code 一行顯示 unavailable 並附帶 SDK 安裝提示。

典型用法

設置頁主要處理檢索與管理。也可以用自然語言讓 DSH Agent 代勞,README 給的示例包括:

  • 「列出 Codex 和 Claude Code 最近的會話。」
  • 「查一下包含登錄故障的歷史記錄。」
  • 「繼續這個 Codex 會話並跑測試。」
  • 「用 Claude Code 在當前工作區新建任務,修復構建錯誤。」
  • 「讀取 Codex 當前配置。」

底層對應 coding_agent_* 系列工具,能力與設置頁一致。

安全邊界與適用場景

插件以當前 DSH 進程權限運行,因此它的防護集中在兩處。

HTTP 層面,/coding-agents-api 拒絕 TCP 對端不是本機的請求、Origin 不匹配的瀏覽器請求、Sec-Fetch-Site: cross-site 的請求、非 application/json 的 POST 以及 CORS 預檢 OPTIONS。接口權限只開放 read-only 與 workspace-write;full-access(Claude Code 的 bypassPermissions、Codex 的 danger-full-access)只能在 DSH 界面裏由用戶自己確認觸發,模型工具 coding_agent_run 會直接拒絕。

工作目錄層面,cwd 只有解析後落在 DSH 已註冊的 workspace 內才被接受,宿主沒有 workspace 註冊表時帶 cwd 的請求一律拒絕。子進程由宿主 subprocess 服務託管,環境變量經過清洗。

這決定了適用邊界:適合本機已裝好 Codex / Claude Code、希望在 DSH 裏統一調度的個人開發環境。插件只驅動廠商 CLI,不實現 agent 循環;同時它按設計只接受迴環 http://,TLS 或非迴環部署會被拒絕而非降級。

需要注意兩點。第一,插件以當前 DSH 進程權限運行,安裝前應檢查源碼與許可證(MIT © WilShi),確認它觸發的寫操作範圍符合預期。第二,隨包附帶的 CLI 體積較大,首次安裝耗時取決於網絡,直接使用全局安裝的 CLI 可以避免這部分下載。

結尾

這個插件的價值在於把 Codex 和 Claude Code 的會話與配置收斂到一個入口,並保持「不接管廠商實現、只走公開接口」的邊界,適合想少切幾個窗口的本機開發場景。

  • 目錄頁:https://www.skillhub.cn/plugins/WilShi/dsh-coding-agents
  • GitHub:https://github.com/WilShi/dsh-coding-agents
羽毛球分组比赛记分
小程序二维码

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

小夜