在 DeepSeek Harness (DSH) 的插件化架構中,Agent 的運行依賴於本地安裝的 Harness 工具鏈。當 Claude Code 或 Codex CLI 發佈新版本時,開發者需要手動確認本地安裝渠道,並執行相應的升級命令,這個過程容易因渠道識別錯誤而中斷。dsh-harness-updater 插件旨在自動化這一流程。
插件簡介¶
這是一個由 leonardoxr 維護的客戶端插件,核心功能是自動檢測本地安裝的 Claude Code 和 Codex CLI 版本,並將其與最新發布的版本進行對比。插件在 DSH 的 Web UI 中提示更新信息,並在用戶確認後,執行對應安裝渠道的一鍵升級命令。
核心功能¶
- 版本檢測與對比:掃描 PATH 環境變量中的工具,探測其
--version信息,並與 npm registry 進行比對。 - 多渠道識別與升級:自動識別本地工具的安裝渠道(原生安裝、npm/pnpm/bun 全局安裝、Homebrew 等),並執行對應的升級命令。
- 交互式更新:在 DSH 設置的插件列表中顯示更新卡片,展示當前版本與最新版本的差異,並提供 Update 按鈕。
- 安全機制:
- 更新操作限制爲 POST 請求,並受到同源策略(Same-Origin)和 Loopback(迴環)保護。
- 按安裝渠道串行加鎖,防止併發更新導致衝突。
- 設置硬超時機制,超時後終止相關進程樹。
- 強制要求用戶點擊觸發,無任何後臺定時任務自動運行。
安裝與啓用¶
該插件通過 pnpm 引入到 DSH 的 profile 中。
- 在 DSH 的 profile 目錄下執行安裝命令:
pnpm install
- 在 DSH 的 Web UI 中進入 Settings → Plugins → Harness updater 進行配置。
典型用法¶
安裝完成後,插件會在 DSH 設置界面生成一個 Updates 卡片。該卡片會列出所有檢測到的 Harness 工具,顯示 當前版本 → 最新版本 的對比。點擊 Update 按鈕後,插件會根據識別出的安裝渠道執行升級命令(例如 claude update 或 brew upgrade ...)。升級過程結束後,插件會重新探測以驗證結果,並報告成功、未變更或失敗的狀態。
適用場景與注意¶
- 環境要求:需要 Node.js 版本 >= 20,且 profile 需滿足特定的 peer dependencies(如
@deepseek-ai/cordis、@deepseek-ai/dsh-client-runtime等)。 - 權限與安全:插件以當前 DSH 進程的權限運行。更新操作僅支持 POST 請求,且必須由用戶明確點擊觸發,不會在後臺靜默執行。
- 安裝來源:插件基於 MIT 許可證開源,安裝前建議檢查源碼與許可證。
結語¶
dsh-harness-updater 通過自動識別安裝渠道和強制用戶確認,解決了多渠道 CLI 工具鏈維護的繁瑣問題。對於需要頻繁更新 Claude Code 或 Codex CLI 的開發者,該插件能顯著提升維護效率。