DeepSeek Harness 插件有三条安装来源:npm 包预构建开箱即用、GitHub 源码要 prepare 脚本加 allowBuilds 授权、本地 tarball 适合内部分发。三条命令分别是 dsh plugin --profile web add <包名>、dsh plugin --profile web add github:owner/repo、dsh plugin --profile web add ./包.tgz——本文把每条命令、授权差异与选择建议一次讲清,并推荐先用 DSH Plugin Hub 内置市场一键安装(来源)。
概览:插件三条来源,三条命令
安装一个 DSH plugin 本质是把它的组合包(bundle)加进当前 profile,来源不同,命令里的地址形态就不同。 先记结论:
- npm 包:包名直接 add,预构建、无需授权,最省心;
- GitHub 源码:
github:owner/repo形式,拉源码、要构建授权,最容易踩坑; - 本地 tarball:
.tgz文件路径,预构建、无需授权,适合内部分发。
三种方式装的都是同一个东西——profile 里多一个插件依赖与配置层,区别只在「包从哪来、要不要构建」(来源)。
来源一:npm 包安装,预构建开箱即用
npm 包是作者在 pnpm publish 时构建好 lib/ 的预构建产物,你安装的就是可直接运行的代码,不需要任何构建授权(来源)。 命令:
# 安装 npm 包(包名直接 add)
dsh plugin --profile web add <包名>
# 确认装好了(列出当前 profile 的插件)
dsh plugin --profile web list
# 想卸掉
dsh plugin --profile web remove <包名>
三个特点:
- 开箱即用:包内已含构建产物,装完即加载,不会出现「缺 lib/ 目录」这类问题;
- 无需授权:不涉及构建脚本,pnpm 不会拦你;
- 版本由 npm 管:升级、依赖解析都走 registry,生态最完整。
来源二:GitHub 源码安装,prepare 脚本与 allowBuilds 授权
GitHub 源拉的是源码而不是构建产物,作者必须提供 prepare 脚本,你必须在 profile 的 pnpm-workspace.yaml 里授权 allowBuilds,第一次 add 才会成功(来源)。 命令:
# 安装 GitHub 源码
dsh plugin --profile web add github:owner/repo
# 建议锁定 commit,避免作者后续推送悄悄改掉实际运行的内容
dsh plugin --profile web add github:owner/repo#<sha>
第一次 add 大概率会失败——pnpm ≥10 默认拒绝运行 git 依赖的构建脚本。此时 dsh 会给出修法:把 pnpm 打印的确切包键写进该 profile 的 pnpm-workspace.yaml:
allowBuilds:
<包名>: true
保存后重新执行上面的 add 即可。
这段授权请如实看待:它允许该包的代码在安装时于你的机器上执行,且不在 agent 运行的任何沙箱之内(来源)。所以:
- 只对源码可信的包授权;
- 尽量锁定 commit(
#<sha>),让后续推送无法悄悄改变实际运行的内容; - 装完若提示缺构建产物(如
entry file missing),多半是作者没配prepare脚本——改装 npm 版更稳。
来源三:本地 tarball 安装,适合内部分发
tarball 是作者用 pnpm pack 打出来的预构建压缩包,把文件路径给 dsh 即可安装,同样不需要任何构建权限(来源)。 命令:
# 安装本地 tarball(.tgz 文件)
dsh plugin --profile web add ./hello-plugin-0.1.0.tgz
适用场景:
- 内部分发:不想把包推到公开 npm,直接传 .tgz 文件;
- 离线环境:内网机器拉不到 registry,把文件带过去装;
- 发布前自测:作者
pnpm pack后先在本地 profile 验证再发布。
三种来源怎么选:先装 DSH Plugin Hub 一键安装
命令行三来源各有门槛,日常使用最推荐的是先装 DSH Plugin Hub,用内置插件市场一键安装——Hub 自动帮你走对通道。 先装 Hub 本体:
dsh plugin --profile web add dsh-plugin
装完重启 dsh web,打开设置 → 插件中心:4,600+ 个社区插件按分类浏览,点卡片直接装、实时进度、来源可溯——每个插件标明了 npm 还是 GitHub 分发,GitHub 源缺构建产物这类坑,Hub 装前会预检拦截,不会再装个「装完重启即崩」的包。

选择建议汇总:
- 日常用:内置插件市场或直接 npm 包,零授权零配置;
- 信任源码且作者配了 prepare:才用 GitHub 源,并锁定 commit;
- 内部分发/离线:本地 tarball;
- GitHub 源新手慎入:授权流程 + 构建产物两道坎,踩坑见《DSH Plugin Hub 怎么卸载插件?》里的失败兜底部分。
注意事项
一句话:来源决定你是否要构建授权,npm 和 tarball 免授权、GitHub 源要授权。 三点提醒:
- GitHub 源是安全决策:
allowBuilds: true等于让包代码在安装时于你机器上执行,只对可信源码放开; - 缺构建产物会装完即崩:git 分发的包没
lib/会加载失败,装后校验能拦住但最好装前就选 npm 版; - tarball 记得验完整性:非官方渠道来的文件先核对 sha256 再装。
DeepSeek Harness 插件从哪里下载?
三个来源:npm 仓库(包名直接 add)、GitHub 源码(github:owner/repo)、本地 tarball(作者用 pnpm pack 打出来的 .tgz 文件)。更省心的是装 DSH Plugin Hub 走内置插件市场一键安装。
npm 包和 GitHub 源码安装有什么区别?
npm 包是预构建产物(publish 时已编好 lib/),一条 add 直接可用、无需授权;GitHub 源拉的是源码不是构建产物,要作者配 prepare 脚本构建,且你要在 profile 的 pnpm-workspace.yaml 授权 allowBuilds,第一次 add 才会成功。
GitHub 源码安装为什么要授权 allowBuilds?
pnpm ≥10 默认拒绝运行 git 依赖的构建脚本,所以第一次 add 会失败,dsh 会提示把 pnpm 打印的包键写进 profile 的 pnpm-workspace.yaml,形如 allowBuilds: { <包名>: true },再重新 add。授权意味着允许该包代码在安装时于你机器上执行,只对源码可信的包授权。
本地 tarball 怎么安装?什么场景用?
把 .tgz 文件路径直接给 dsh:dsh plugin --profile web add ./hello-plugin-0.1.0.tgz。tarball 是作者用 pnpm pack 打出来的预构建包,不需要任何构建授权,适合内部分发、离线安装和发布前调试。
三种来源应该怎么选?
日常使用优先 npm 包或内置插件市场,零授权零配置;信任源码且作者提供了 prepare 脚本才用 GitHub 源,并记得锁定 commit;内部分发或离线环境用本地 tarball。GitHub 源最容易踩坑(缺构建产物、授权被拒),新手绕开它。
来源:DeepSeek Harness 官方文档 - 打包与安装插件、dsh CLI README、deepseek-ai/deepseek-harness