前言¶
在 DSH(DeepSeek Harness)里,能力往往以独立 npm 插件的形式存在:每个包自带 dsh.bundle.patch,挂进 profile 后才真正进 loader。当你想同时用上产物路径联动、侧栏浏览器、Todo 悬浮球、模型面板等一整套增强时,逐个查包名、写 dependencies、再维护十几条 bundles 列表,工作流会变得零碎且容易漏配。
下面介绍维护者 loyalchiiina 发布的 dsh-loyalchiiina-plugin-pack:一个插件聚合 bundle,用一条依赖安装把 14 个已发布子包一起挂上;形态上参考官方 @deepseek-ai/dsh-experimental-agent-team-profile(bundle = patch + dependencies,入口 lib/index.js 仅 export {})。本包在 SkillHub 目录归类为工作流;适配 DSH 内核 0.2.2-rc.1。npm 上聚合包版本以 package.json 为准(资料中为 0.1.1),许可证 MIT。
这是什么¶
dsh-loyalchiiina-plugin-pack 自身不含任何运行时行为:lib/index.js 只有 export {},不注册服务、工具、路由或 UI。全部能力来自 cordis.patch.yml(在 package.json 里声明为 dsh.bundle.patch)中 insert: 的 14 条 entry,每条指向一个独立 npm 子包。
因此它的价值不是「又一个功能插件」,而是把 14 个可选插件收成一份可复制的 profile 依赖方案;你也可以完全跳过聚合包,只单独安装其中任一子包。
包含的 14 个组件¶
版本口径以本包 package.json 的 dependencies 为准(caret 范围,均为 npm 已发布版本,无 link: / file:)。聚合层 entry id 统一为 suite-<短名>,与子包自身的 entry id(包名)不冲突。
| # | 包名 | 作用(简述) | 聚合 entry id |
|---|---|---|---|
| 1 | dsh-artifact-linker |
产物路径联动:常驻「产物路径铁律」+ 正文文件名渲染为可点芯片 | suite-artifact-linker |
| 2 | dsh-browser-hub |
侧栏浏览器:搜索引擎、书签、多级文件夹、360/Chrome 书签导入 | suite-browser-hub |
| 3 | dsh-chat-image-lightbox |
对话图片灯箱:缩放/平移/下载/翻页、TIFF·HEIC 转码等 | suite-chat-image-lightbox |
| 4 | dsh-console-sentinel |
控制台哨兵(Windows):预览后清理任务栏控制台窗口,白名单与求解器硬保护 | suite-console-sentinel |
| 5 | dsh-deepseek-web-free |
非官方 DeepSeek 网页端提供方 + 内嵌网页面板 | suite-deepseek-web-free |
| 6 | dsh-font-enhancer |
分区字体/颜色/字号/行高 DIY,方案与皮肤 | suite-font-enhancer |
| 7 | dsh-lit-fetch |
文献检索与 PDF 获取:Crossref/OpenAlex、Sci-Hub 镜像与 Unpaywall 兜底 | suite-lit-fetch |
| 8 | dsh-skill-browser |
技能库浏览、检索、治理与 MCP 相关能力 | suite-skill-browser |
| 9 | dsh-agent-team-auto-orchestrator |
智能体团队自动编排:铁律注入 + 工具层硬门 | suite-agent-team-auto-orchestrator |
| 10 | dsh-todo-float-ball |
当前会话 Todo 进度环与清单悬浮球 | suite-todo-float-ball |
| 11 | dsh-voice-alert |
回合结束语音提醒,内置音效,可克隆音色 | suite-voice-alert |
| 12 | dsh-archive-favorites-forge |
会话收藏与归档:路径复制、守卫删除、批量归档与导出 | suite-archive-favorites-forge |
| 13 | dsh-model-fold |
三级级联模型面板:来源/模型/强度、识图与思考开关 | suite-model-fold |
| 14 | dsh-schedule-calendar |
侧栏日程、天气、节假日与待办提醒 | suite-schedule-calendar |
本包不写任何 config: 覆盖,14 个组件默认跑各自子包配置。需要改参数时,在 profile 层按 entry id 追加 config:,字段名见各子包 README 或 cordis.patch.yml。
安装与启用¶
方式 A:装整包(14 个一起)¶
先用 pnpm 把聚合包装进 profile 工程(只做依赖安装,尚不会自动合并 patch):
pnpm add dsh-loyalchiiina-plugin-pack
要让 DSH 合并本包的 dsh.bundle.patch,还需把包名列入 profile 的 dsh.profile.bundles:
// ~/.dsh/profiles/<profile>/package.json
"dsh": {
"profile": {
"bundles": ["dsh-loyalchiiina-plugin-pack"]
}
}
桌面端 desktop profile 由 Electron 独占管理:CLI 会拒绝 dsh plugin --profile desktop,需手改 profiles/desktop/package.json 后再用 pnpm 安装。
方式 B:只装其中一个¶
聚合包不是必经中间层。例如只要 Todo 悬浮球:
pnpm add dsh-todo-float-ball
把子包自己的包名(不是 suite-* id)写进 dsh.profile.bundles;每个子包自带 dsh.bundle.patch,可独立启用。
不要重复挂载¶
同一 profile 里不要同时把 dsh-loyalchiiina-plugin-pack 与其已包含的某个子包都列进 bundles。那样同一插件会被两个 bundle 各挂一次,造成重复注册(即便 entry id 加了 suite- 前缀不会报 duplicate loader entry id,行为仍然错误)。
改完后如何生效¶
| 改动位置 | 生效方式 |
|---|---|
package.json / cordis.patch.yml / profile 的 bundles 与 node_modules |
完全退出 DSH 客户端再启动(无热重载) |
子包 lib/client.js(客户端 bundle) |
安装后 Ctrl+Shift+R 硬刷新 |
关掉单个组件(可选)¶
补丁层顺序为 bundle:* → user-patch → home-patch,后层按 id last-wins。推荐在 profile 的 cordis.patch.yml 里按 entry id 关闭(可逆、不进包):
- id: suite-voice-alert
disabled: true
也可在本包 cordis.patch.yml 对应条目加 disabled: true,等价于默认关闭该组件。
适用场景与注意¶
适合希望一次性对齐 loyalchiiina 这套 14 插件组合、又不想手工维护长 bundles 列表的 DSH 用户;也适合先装整包试用,再按需改为只保留部分子包单独安装。
安装前请注意:
- 插件在当前 DSH 进程权限下运行,涉及浏览器、文件、控制台、文献抓取等能力的子包会触达本机资源,安装前应阅读各子包源码与 MIT 许可(聚合包亦为 MIT)。
- 要求 Node
^22.19.0 || >=24.0.0(见package.jsonengines),与内核 0.2.2-rc.1 对齐后再装。 - SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系;星标等目录元数据以站点展示为准(当前线索为 0 star)。
- 子包版本由 caret 范围管理,修 bug 可对 profile 执行
pnpm update,不必等聚合包发版;子包 breaking change 时聚合包会升 minor 并在 CHANGELOG 说明(见 README 版本策略)。
结尾¶
dsh-loyalchiiina-plugin-pack 把 14 个独立 DSH 插件收成一份 bundle patch + dependencies:装依赖、写 bundles、重启客户端即可整套启用,也可随时拆成单包或按 entry id 关闭单项。