前言¶
本地裝了 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(Cordis4.0.5),Node.js^22.19.0 || ^24.0.0
插件只調用廠商公開的本地接口,不解析也不改寫私有數據庫。所有寫操作要麼走廠商官方配置協議,要麼採用「先備份再原子替換」。它只驅動當前用戶已安裝並登錄的 CLI,不會替用戶安裝或升級廠商工具。
核心功能¶
插件按引擎獨立解析可用的 CLI,順序爲 config.codexCommand / config.claudeCommand → 系統 PATH(codex / claude)→ 插件自帶包 → 都沒有時給出可操作提示。狀態頁會報告來源(config / system / bundled)以及從 <cli> --version 讀到的版本。
主要能力分四類:
- 會話檢索:跨 Codex 與 Claude Code 搜索本機歷史會話,分頁讀取超長記錄。
- 運行控制:新建、繼續或分叉原生會話,實時展示文本、工具調用與運行狀態,支持取消運行。
- 會話管理:重命名、打標籤、歸檔與取消歸檔、回滾、刪除。某個引擎不支持的操作會被明確拒絕,而不是靜默失敗。
- 配置查看與有限寫入:查看配置項的當前值、生效值與來源。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