你是不是也在 GitHub 上翻插件翻到放弃
DeepSeek Harness(下称 DSH)的设计思路很干脆:内核只留最小的一块,能力全靠插件往上叠。模型、工具、技能、界面、会话、存储,几乎每一块都可以用插件替换或增强。
问题也跟着来了。官方负责内核和 Cordis 运行时,并没有提供一个集中的插件登记处。社区约定用 dsh-plugin 这个话题标签,插件就散落在 GitHub 的各个仓库里。
于是「想装个插件」这件事,变成了这样一串动作:
- 先按话题标签翻仓库,逐个项目读 项目说明;
- 挑中之后,把安装命令抄下来,在终端里跑
dsh plugin --profile web add <包名>; - 装完还得自己记住来源仓库、版本号,更新和卸载继续回终端。
对熟悉命令行的人来说这不算难,但**「找一个插件」本身的开销,已经超过了「用这个插件」**。

DSH Plugin Hub 想解决的正是这个环节。它本身就是一个 DSH 插件,装进应用之后,会在设置页里多出一个「插件市场」板块——目录、搜索、安装、卸载、更新、日志,都在里面完成。
需要先说清楚定位:这是社区项目,不是官方产品。官网 dsh-plugin.org 的页脚明确写着「本站由社区维护,与 DeepSeek AI 无隶属关系」。它收录的对象,是官方 DSH 的社区插件。
先说清楚它是谁、现在什么版本
插件包名为 dsh-plugin,代码采用 MIT 许可证,要求 Node.js 22.6 及以上。以下安装入口对应 2.0.6,界面示例为 2.0.0。

装它只要一条命令,重启一次
安装走 DSH 自己的插件命令,指定 web 这个 profile:
dsh plugin --profile web add dsh-plugin
也可以直接从仓库源码安装:
dsh plugin --profile web add git+https://github.com/dshplugin/dsh-plugin-hub.git
装完重启 dsh web,然后进入 设置 → 插件市场。这就是它全部的外观。
想更新,用同一条命令换动词:
dsh plugin --profile web update dsh-plugin
这里有个细节值得留意。因为 add 对已经装上的实例不会覆盖版本,如果 update 受旧版缺陷影响拉不到新版本,官方 项目说明 给出的做法是先卸载再安装,这样必然拿到最新版:
dsh plugin --profile web remove dsh-plugin
dsh plugin --profile web add dsh-plugin
桌面端没有 dsh web 这个命令,所以上面这套命令行的说法只适用于 Web / CLI 用法。桌面版请在应用的插件管理器里按仓库地址添加,装完重启 DeepSeek Harness(不是重启 dsh web)——这一点插件作者在代码里也专门处理过:桌面端宿主由应用壳管理,插件点「立即重启」时会改成提示你手动退出重开。
装好之后你会看到,安装是一个有确认、有进度、有留痕的动作,而不是敲完命令等结果:

安装前会显示来源与执行信息,确认可信后再继续。
点确认之后,任务进入后台队列,进度条实时走动,装完再回到「已安装」列表行尾管理:

装完之后,它给了你哪些入口
打开设置页的插件市场,左侧导航把活分成了几块:

插件市场是主界面。分类按能力划分:界面与体验、会话与消息、记忆与上下文、工具与能力、技能与智能体、工作流与自动化、集成与连接、模型与推理、开发与运维、数据与知识、娱乐。搜索框支持按名称、描述、标签检索,排序可以切换 Star、Fork、最近更新、最新收录。每个插件卡片链回它的 GitHub 仓库,展示 Star、Fork 与最近更新时间——来源可查,是它区别于「某个网盘链接合集」的地方。
已安装管的是当前环境里真实的依赖:版本号、来源仓库、安装路径,行尾给更新和卸载按钮。自定义装进来的包会被单独标注为「手动安装」,不和目录收录的混在一起。
自定义安装用于目录之外的插件。优先填写 npm 包名,并在确认页检查实际执行的安装目标;源码安装可以按项目提供的终端命令操作。

设置集中了网络通道与安全开关:

其中三个开关值得记一下:
- 启动时检查更新:默认开启,打开市场时检查已装插件是否有新版,发现有更新会提示,但不会自动安装;
- npm 镜像源:默认跟随你本机的 npm 配置,官方源慢的时候可以在这里换;
- 安全信任:控制命令行安装 NPM 包的通道,默认开启,关掉之后输入包名会被直接拦下。
系统日志与系统诊断是排障用的:安装、卸载、更新、设置变更和诊断结果都会写进本地 JSONL 日志,可以按类型和级别筛选,也可以导出全文;诊断会逐条检测 npm 源、GitHub、目录站点的连通状态。提 Issue 时还能一键复制宿主版本与系统信息。
还有一个通知中心。安装、卸载任务和更新提醒都会记录在这里,即使你错过了弹窗也能回头查看:

在同类插件里,「失败之后怎么办」往往是最含糊的一环,这块后面单独讲。
点一下「安装」,后台到底发生了什么
安装会依次经过确认、排队、执行、校验和重启提醒:

一句话概括:它没有换掉 DSH 的插件机制,只是把同一条命令包了一层可见的任务队列。
- 服务端真正执行的是
dsh plugin --profile <profile> add <目标>子进程,更新走add <目标>@latest原位覆盖; - 同一时刻只跑一个变更任务,FIFO 串行排队,避免几个安装互相打架;
- 任务状态通过本地接口轮询,所以你刷新页面之后,进度条和待重启提醒能恢复回来;
- 装完还要做一次装后校验:核对包声明的分发文件是否真实存在,缺文件直接判失败——这样能避免重启时加载残缺包把宿主带崩。
进度条的算法也值得一提。它不是「假设 20 秒装完」的动画,而是读 CLI 的输出算比例:Progress: resolved N, reused X, downloaded Y 阶段压在 8~30 的区间,Packages: 到 85,构建脚本到 60,Done in … 到 96,[exit 0] 到 100。抓到没有区分度的阶段就刻意压低速,把中段留给真正耗时的构建。CLI 长时间不说话时,还有按输出行数加定时兜底推进,避免进度条卡死。
失败处理的思路也清楚:先分清「是谁的问题」。缺 npm / pnpm / git / 编译工具链、npm 版本过低、pnpm 供应链策略拦截,这些归到本机环境类;作者包里缺文件、构建脚本失败、声明依赖在官方源上不存在,归到插件分发类;插件声明的兼容清单里没有你正在跑的 DSH 版本,归到宿主兼容类。分类的意义在于错误提示指向真正的原因,不把本机问题说成插件作者的问题——识别不出来的那一条,才提供一键反馈入口。
若遇到 ERR_PNPM_MINIMUM_RELEASE_AGE_VIOLATION,先检查当前 profile 的 minimumReleaseAge 设置;等待限制期结束后再装,不必为一次安装关闭整个环境的供应链保护。
它明说和没明说的几条安全边界
插件安装需要宿主权限,下面几项设置尤其值得留意:

结构上它是两半:服务端跑在 Harness 进程里,负责所有副作用(目录代理、安装、卸载、日志、诊断);浏览器端只是设置页里的一个板块,通过同源本地 HTTP 与服务端通信。目录数据统一经服务端代理转发,浏览器不直连官网——这样代理设置才能对 npm、git、目录数据三条通道真正生效。
所有变更接口都带来源校验:Host 头必须是回环地址(localhost / 127.0.0.1 / [::1],顺带挡住 DNS rebinding),再比对归一化后的「主机名:端口」是否同源;缺 Origin 头按桌面原生客户端放行,dsh-app: 协议显式放行。请求体上限 4KB,profile 名走白名单正则。
这里的措辞需要精确:这条防线保护的是「谁能指挥 Hub」,不是「插件能干什么」。它不是权限沙箱,装进来的插件能碰到什么,仍然由宿主机制和插件自己决定。
「人工验证」这四个字也要按字面理解。官网和 项目说明 说的是逐项核对安装命令、兼容状态(verified / unconfirmed)与 DSH 目标版本、标注能力分类——它验证的是收录信息,不等于代码审计,也不等于给作者背书。
所以装之前那几件事,还是得自己做:
- 看源码:带 Shell 执行、浏览器控制、OAuth 登录、密钥读写、网络请求的插件,权限明显高于纯界面插件;
- 看许可证:想商用或二次开发,先确认授权范围;
- 看依赖:一个 UI 插件如果拉进一大堆依赖,值得多问一句为什么;
- 固定版本或 commit:不盲目跟最新,尤其是刚发布不满 24 小时的版本。
另外提醒一句:同类插件不止一个。社区里还有 dsh-market、DSH-Plugins-Marketplace 等多个插件市场,收录范围、数据源和安装通道各不相同。它们不是同一个项目,装之前值得对比一下。这里介绍的包名是 dsh-plugin。
它适合谁,不适合谁
适合你,如果:你是普通 DSH 用户,不想每次都去 GitHub 翻仓库、判断包名、抄命令;你想要安装有进度、失败有分类、装完有清单可管。
可能不需要它,如果:你更习惯纯命令行,插件来源就固定那两三个;或者你只在桌面版里用 DSH,且已经习惯用应用自带的插件管理器。
它不解决的问题:插件质量参差这件事,任何市场都解决不了。人工验证能告诉你「这条收录信息核对过」,但它替不了你读一眼源码。
相关地址
-
官网(目录数据同源):https://dsh-plugin.org
-
DeepSeek Harness 官方文档站:https://deepseek-harness.github.io/deepseek-harness/reference/
