DeepSeek Harness 怎么安全安装插件?DSH plugin 来源信任、GitHub 源码构建脚本风险与安全安装步骤
DSH 安全安装插件,先按来源分级:目录与社区市场收录、npm 预构建包更省心;GitHub 源码安装会拉源码而非构建产物,还要你在 allowBuilds 白名单里授权构建脚本——官方定义这是「授权该包代码在你的机器上于安装时执行」。只放行信任的包,并用 pin commit 固定版本。
先判断来源:信任分级
安装前先回答「这个插件从哪来、代码是什么」,再决定怎么装。 按信任度从高到低:
- 官方文档与社区市场收录的插件:经过人工精选、来源可溯(如 DSH Plugin Hub 收录的条目),对新手最省心。
- npm 预构建包:发布时已构建好产物,
dsh plugin add 包名装完即用,不需要执行构建脚本,风险面最小(来源)。 - GitHub 源码:最灵活但要自己负责——装的是源码不是产物,且可能需要授权构建脚本,详见下文。
判断原则:你不是在信任「这条命令」,而是在信任「这个包的代码将在你的机器上运行」——源码要自己能看懂或来源足够可信。
GitHub 源码安装的构建脚本风险
dsh plugin add github:owner/repo 拉的是源码不是构建产物,两个环节要特别注意(官方教程原话,来源):
- 缺构建产物会加载失败:git 分发不跑构建脚本。TypeScript 仓库没提交
lib/输出时,装完没有入口文件,加载直接报错——这不是你装错了,是包本身没带产物。 - prepare 脚本要授权才能跑:pnpm 10 起默认拒绝执行 git 依赖的构建脚本,第一次
add会失败,并把放行所需的包名打印出来。要放行,把它写进 profile 的pnpm-workspace.yaml:然后重新运行yamlallowBuilds: dsh-hello-plugin: trueadd(pnpm 白名单文档)。
官方对 allowBuilds 的定义要读透:这是「授权该包的代码在你的机器上于安装时执行」——不在任何沙箱内,就是真实执行。所以:
- 只放行你审过源码、信得过的包;
- 拿不准就改装 npm 版(预构建,无需任何授权)。
安全安装的标准步骤
把「信任 + 固定版本 + 验证」做成流程,而不是碰运气。 按下面 5 步走:
- 选来源:优先 DSH Plugin Hub 收录或 npm 预构建包;只有需要改源码调试时才走 GitHub。
- 审代码(GitHub 源码时):
git clone到本地,浏览一遍 package.json、入口文件、prepare 脚本内容,确认没有可疑操作再安装。 - pin 提交版本:别装浮动的最新提交,固定到具体 commit,防止仓库之后 push 静默改变运行内容:
bash
dsh plugin --profile web add github:owner/repo#提交sha - 按需授权构建脚本:报 prepare 被拒时,把打印的包名精确写进 profile 的
pnpm-workspace.yaml的allowBuilds,重新add。拿不准就不授权、改装预构建版。 - 装后验证:确认插件加载正常、功能符合预期;异常立即卸载排查。官方推荐的分发方式是
pnpm publish构建好产物再发 npm、或用pnpm pack发 tarball——这两种都不需要任何构建授权(来源)。

注意事项
- GitHub 源码安装 ≠ 信任:拉的是源码,装后可能缺产物,还可能要求执行构建脚本。
allowBuilds是真实执行权限,只放行审过的包(来源)。- pin commit(
#sha)能防仓库更新后内容漂移。 - 拿不准的插件改装 npm 预构建版,无需授权、装完即用。
- 装完验证入口文件与功能,异常立即卸载。
- 想完全省心,用 DSH Plugin Hub「设置 → 插件中心」安装:人工精选、来源可溯,规避命令行源码风险。
常见问题
优先级建议:官方文档与社区市场收录的插件(人工精选、来源可溯)> npm 预构建包(装完即用、无需执行构建脚本)> GitHub 源码。GitHub 源码不是不能装,而是要先审代码、再决定是否授权构建脚本。
pnpm 10 起默认拒绝执行 git 依赖的构建脚本(prepare),必须你在 profile 的 pnpm-workspace.yaml 里显式写 allowBuilds 放行。官方明确:这是「授权该包的代码在你的机器上于安装时执行」,等于给了它运行权限,只放行你信任的包。
git 分发拉的是源码而不是构建产物:仓库没提交 lib/ 等产物时,装完没有入口文件,加载就报错。官方给出的做法是作者加 prepare 脚本在安装时构建;用户侧遇到这种插件,改装 npm 版(预构建)最省事。
安装时 pin 到具体提交:github:owner/repo#提交sha。这样之后仓库再 push 也不会静默改变你机器上运行的内容(官方原文口径);配合只信任来源,双重保障。
事前:只装信任来源、pin commit;事中:allowBuilds 只给审过的包;事后:验证插件入口文件存在、功能正常,异常立即卸载。走 DSH Plugin Hub 安装则天然来源可溯,是更省心的渠道。