dsh-modpack: Packaging DSH plugins into shareable modpacks

前言

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)。

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

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

Xiaoye