dsh-modpack:把 DSH 插件打成可分享的整合包

前言

DeepSeek Harness(DSH)把能力拆成大量可安裝插件,換機器、協作或備份時,常見做法是逐條記下包名和版本,再在新環境裏手工重裝。插件一多,漏裝、版本不一致、本地 link: 路徑無法復現都會拖慢進度。社區維護者 KERBALMans 的 dsh-modpack(GitHub:KERBALMans/dsh-modpack,SkillHub 分類爲工作流)借鑑《我的世界》整合包思路:從當前 profile 裏勾選插件,導出單個 .dshmodpack.json,接收方導入即可按清單還原環境。下面介紹它做什麼、怎麼裝、怎麼用。

這是什麼

dsh-modpack 是 DSH 的插件整合包管理器(Plugin Modpack Builder)。它讀取當前 profile 的 package.json 與 cordis.patch.yml,列出已裝插件,支持篩選、分類、勾選後導出 .dshmodpack.json;對方可用同一插件的導入流程預覽並安裝,也可把文件交給 Harness 自帶的 pluginManager / 智能體工具處理。當前 package 版本爲 0.9.1,許可證 MIT。插件未發佈到 npm;npm 上的 dsh-modpack 屬於其他項目,安裝時應使用本倉庫 Release 中的 tgz,勿在插件管理器裏只填包名 dsh-modpack。

核心功能

清單、篩選與打包

自動彙總已安裝插件的名稱、版本、來源、啓用狀態與類型。支持按名稱、模塊名、描述搜索,並按「已啓用 / 已禁用 / 本地鏈接 / 官方 / 可移除」等條件篩選。勾選後可全選、反選、僅選已啓用或僅選可分享,導出爲 .dshmodpack.json;可填寫整合包名稱、作者、版本、描述等元信息。導出時可選擇是否攜帶各插件的啓用狀態及 cordis.patch.yml 中的配置片段;導出只讀 profile 元數據,不會打包插件源碼或憑據。

分類樹與自動分類

設置裏「插件整合包」分區左側是可嵌套的分類樹,與右側勾選列表同屏,便於按類整批勾選打包。分類可隨整合包導出爲說明性路徑(如 語言模型 / 國內),導入安裝時會忽略分類,僅幫助閱讀。可選 自動分類:按 31 條有序規則(如 mcp、session、model 等)提案歸類,先預覽再應用;默認不覆蓋你已手工歸類的插件。可選 聯網查詢未知插件(默認關閉)向 npm / GitHub 查公開元數據;可選 AI 綜合判斷(默認關閉,會消耗模型 token)。界面跟隨客戶端語言中英切換。

導入、版本策略與智能體工具

導入流程:選擇 .dshmodpack.json → 預覽計劃 → 確認後通過 pluginManager 官方接口安裝,不會自行改寫 package.json 或 node_modules。默認按整合包記錄的版本範圍安裝(更耐版本下架);勾選 鎖定版本安裝 則裝精確版本(更可復現,但版本下架可能失敗)。link: 等本機路徑不會被鎖定。

提供 modpack_list、modpack_export、modpack_apply 三個智能體工具;modpack_apply 默認僅預演,需顯式傳 dryRun: false 纔會真正安裝。導出後界面會給出分享說明,文件內也含 howToUse 字段。

界面位置

插件註冊在 設置 左側導航的「插件整合包」分區(settings.section,位於「插件」之下)。接收方若要用「導入 → 預覽 → 一鍵安裝」體驗,需先安裝本插件;否則也可將 .dshmodpack.json 交給任意 Harness 智能體,用內置 plugin_manager 按 plugins[] 安裝。

安裝與啓用

官方推薦從 GitHub Releases 下載 dsh-modpack-<版本>.tgz,在命令行執行(示例版本號與 README 一致):

dsh plugin --profile desktop add ./dsh-modpack-0.9.1.tgz

也可在 設置 → 插件 → 安裝 中填入本機 tgz 的完整路徑。開發自用可在 profile 目錄用 pnpm add link:/path/to/dsh-modpack 並在 cordis.patch.yml 中插入插件 id,重啓客戶端。通過 SkillHub 安裝時,可按目錄頁提示讓智能體安裝 KERBALMans/dsh-modpack,並先讀取倉庫說明再執行,避免誤裝 npm 同名包。

典型用法

製作並分享整合包

  1. 打開 設置 → 插件整合包,必要時用分類樹或篩選縮小列表。
  2. 勾選要分享的插件,填寫整合包元信息,按需決定是否攜帶配置片段。
  3. 導出 .dshmodpack.json,按界面或文件內 howToUse 發給對方。

在新環境還原

  1. 安裝 dsh-modpack(若要用圖形化導入)。
  2. 在「導入」中選擇對方的 .dshmodpack.json,查看預覽(將安裝哪些包、哪些開關狀態)。
  3. 按需選擇默認範圍安裝或「鎖定版本安裝」,確認後開始安裝。

智能體側(摘自 README 行爲說明)

  • 列出與導出:調用 modpack_list / modpack_export。
  • 應用整合包:先 modpack_apply 預演,確認後再 modpack_apply 且 dryRun: false。

整合包 JSON 中每條插件通常包含安裝用 name、spec、精確 version、範圍 range 等字段;具體結構以倉庫 README 中的示例爲準。

適用場景與注意

適合需要固定一套 DSH 插件組合的場景:團隊統一環境、換機遷移、把「我這套插件」做成可分發清單。插件大量本地 link: 時,整合包可以記錄 spec,但對方機器上路徑必須自行解決,無法像 registry 包一樣一鍵復現。

安全與權限方面務必知曉:

  • 整合包本質是安裝指令清單,只應導入可信來源;它會指導 DSH 安裝所列 npm 包。
  • 本插件以當前 DSH 進程權限運行;安裝前建議閱讀 源碼與 LICENSE。
  • Host 側 API 限本機迴環;聯網與 AI 分類爲可選能力,默認關閉。啓用聯網時會向 registry / GitHub 發送插件包名等公開查詢,不會發送本地路徑或會話內容(詳見 README「權限與安全」)。

對舊版 DSH,插件通過探測 pluginManager 方法做兼容:缺少某項 API 時僅對應功能不可用,其餘仍可使用。

結尾

dsh-modpack 把「裝了很多插件的 profile」收成一份可攜帶的 .dshmodpack.json,降低遷移與協作時的手工對照成本。更多信息見 SkillHub 目錄頁 KERBALMans/dsh-modpack 與 GitHub 倉庫 KERBALMans/dsh-modpack(含完整功能表、分類規則與 CHANGELOG)。

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

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

小夜