dsh怎么安装插件?DeepSeek Harness 安装 DSH plugin 的三种入口
装 DSH plugin 有三条入口:在 DSH Plugin Hub 的插件市场点着装、用命令行 dsh plugin --profile web add 装、以及从本地目录或离线包装——按「有没有界面、要不要联网」三选一即可。
DSH plugin 安装概览
本文用一张「三入口速选卡」回答 dsh 怎么安装插件:要省事就从市场点着装,要灵活就用命令行,要抗网就从本地/离线装。 DeepSeek Harness 是「一切皆插件」的架构,所谓「装插件」,本质是把某个插件作为依赖装进当前 profile 目录(默认 ~/.dsh/profiles/web),下次启动再由插件树加载它(来源)。还没跑通本体的先看《DeepSeek Harness 怎么安装》。三条入口的差别先看这张速选卡:
| 入口 | 适合谁 | 前置条件 | 装完怎么生效 |
|---|---|---|---|
| 市场安装(DSH Plugin Hub) | 想少记命令、要可视化 | 已装 Hub、能联网 | 重启 dsh web |
命令行安装(dsh plugin add) | 已知包名 / Git 地址、要写脚本 | 终端 + pnpm | 重启 dsh web |
| 本地 / 离线安装 | 内网、无外网、自改源码 | 本地目录或离线包 | 重启 dsh web |
一句话总结:能上网又怕麻烦,用市场;能上网且要精确控制,用命令行;不能上网,用本地/离线。 三条路最后都落到同一个动作——把依赖写进某个 profile 的目录,然后重启让它挂载。
入口一:从 DSH Plugin Hub 插件市场点着装
从 DSH Plugin Hub 装插件全程不敲命令,四条操作走完:打开市场 → 搜索或筛分类 → 点「安装」→ 确认弹窗点「直接安装」。 它的目录与 dsh-plugin.org 同源,当前收录 10000+ 社区插件(来源)。按顺序来:
- 打开「插件市场」 — 在界面侧边栏进入 DSH Plugin Hub,它默认停在「插件市场」。预期:插件卡片列表加载完成,顶部有搜索框与收录数量。
- 搜索或按分类收窄 — 搜索覆盖插件名、描述、标签三类字段,输入插件名或仓库名最准。预期:列表实时收窄,结果条数显示在列表上方。
- 点目标卡片的「安装」 — 此刻还没开始装,只是弹确认。预期:弹出「确认安装」弹窗;之前装过的会显示「已安装」,走更新语义。
- 在确认弹窗核对三项再点「直接安装」 — 核对插件名、来源仓库、将执行的安装命令,读完再点。预期:弹窗切到实时进度并逐行打印输出;点「取消」就不会发出任何安装请求。
- 按提示重启宿主 — 结果弹窗给「立即重启 / 稍后重启」两个选择。预期:重启后插件能力出现,状态点转为运行中。
挑 DeepSeek插件 时先看卡片上的兼容状态(verified / unconfirmed)与最近更新时间,再决定装不装。Hub 还顺带把「装完之后」管起来:通知中心记录每次安装、更新的成功与失败,失败可一键提交 Issue;已安装列表集中管理当前 profile 的全部插件,支持搜索、来源筛选、更新与卸载。这条路每一步的点击路径与确认弹窗逐项说明,见《DeepSeek Harness 插件怎么安装?最短路径》。
入口二:命令行 dsh plugin add 安装(profile 归属)
命令行的统一写法是 dsh plugin --profile <name> add <包名或 Git 地址>,它把 --profile 之后的参数原样转发给该 profile 目录里的 pnpm 来安装(来源)。 关键在「profile 归属」:web 是 Web UI 正在用的那个 profile,headless 是无界面模式,装进哪个就只影响哪个,互不干扰。按顺序操作:
- 先启动一次,让 profile 初始化 — 执行
npx @deepseek-ai/dsh web。预期:首次启动会自动从内置模板生成webprofile(目录~/.dsh/profiles/web)。 - 装 npm 包 — 执行
dsh plugin --profile web add dsh-plugin。预期:终端出现 pnpm 的added输出,依赖写入 profile 的package.json。 - 装 GitHub 仓库 — 执行
dsh plugin --profile web add github:<owner>/<repo>。预期:从 git 源拉取并安装,输出与上一步同类。 - 验证依赖真的进来了 — 执行
dsh plugin --profile web why <包名>。预期:打印该包的依赖链,确认它不是被别的东西间接带入的。 - 重启
dsh web— 命令行装进去的 DSH插件 同样要重启宿主才挂载。预期:插件提供的工具或界面入口出现。
# 装 npm 包
dsh plugin --profile web add dsh-plugin
# 装 GitHub 仓库
dsh plugin --profile web add github:<owner>/<repo>
# 确认某个依赖为什么被装进来
dsh plugin --profile web why dsh-plugin
为什么要有 --profile?因为 DeepSeek Harness 把「配置 + 插件」按 profile 隔离:一个 profile = 一套 bundle 补丁层 + 自己的 node_modules,你在哪个目录启动 dsh,它就以那个目录为默认工作区根。所以同一个插件想在 Web 与无界面模式都用,就要分别装上。命令的语法细节、动作词位置与真实插件示例,见《DSH plugin 怎么安装?dsh plugin add 命令》。
入口三:本地目录与离线安装(无外网也能装)
当插件是你自己 checkout 的源码,或机器连不上 npm / GitHub 时,走本地目录与离线包:相对路径(.、../plugin 及 file:/link: 形式)会先锚定到执行命令的目录,add . 装的就是你手里这份,而不是同名的线上包(来源)。 按顺序:
- 进入插件源码目录 — 执行
cd ~/code/my-plugin。预期:pwd指向该目录。 - 装当前目录这份 — 执行
dsh plugin --profile web add .。预期:pnpm 以本地路径安装,装的是你正在改的这份源码,而不是线上同名包。 - 用
file:/link:引用同级目录 — 执行dsh plugin --profile web add file:../my-plugin。预期:按文件或软链引用,本地改动能直接反映到 profile。 - 切到离线方式 — 无外网时改用离线包或内网 npm 源,避免任何公网请求。预期:安装过程不访问公网,安装照常成功。
为什么单独留一条路?因为内网开发、插件自改、以及 CI 复现都需要绕开公网:本地目录让你边改边试,离线包让封闭网络也能批量装机。两个细讲见《本地目录安装》与《离线安装》。
使用 DSH plugin 的注意事项与局限
- 装进哪个 profile 就只属于哪个 profile — 在
web里装的插件不会带到headless,换 profile 要重装一次。 - 大多要重启才生效 — 文件已经写进 profile,但插件树要下次启动才加载它;重启不会丢文件,只是让它被加载。
- git 源码插件首次 add 可能失败 — pnpm ≥10 默认不放行 git 依赖的构建脚本,按提示把
allowBuildskey 复制到 profile 的pnpm-workspace.yaml再重跑。 - 安装等于执行第三方代码 — 插件装进来就在你的机器上执行,装前读一遍来源仓库,来源不明的别装。
- 三条入口不要混着重装 — 同一个插件别既从市场装又从命令行装,容易造成版本漂移;以已安装列表里的版本为准。
- 版本会变 — DeepSeek Harness 处于开发者预览阶段,官方明确未来会有破坏兼容性的变更(来源),界面文案与命令都以当前版本为准。
与其每次翻文档、对着包名手敲 dsh plugin add 再自己逐项核对来源,不如用 DSH Plugin Hub 的插件市场:搜索、一键安装、确认弹窗与已安装管理都收在一个界面里。

来源:dsh CLI README、dsh CLI behavior reference、dshplugin/dsh-plugin-hub
常见问题
dsh 安装插件的两条路分别是图形化插件市场和命令行:市场在 DSH Plugin Hub 里点「安装」并在确认弹窗确认,命令行则执行 dsh plugin --profile web add <包名>。功能上等价,区别是市场不用记命令、还能可视化管已装插件,命令行更适合已知包名或要写脚本自动化的场景。
dsh plugin --profile web add 后面跟插件包名或 GitHub 地址,命令会把参数转发给 profile 目录里的 pnpm,装进 ~/.dsh/profiles/web。装到哪个 profile 就只影响哪个环境,web 与 headless 各自独立,profile 归属完全由 --profile 决定。
没有外网时走本地目录或离线包:把插件源码放到机器上,在源码目录里执行 dsh plugin --profile web add . ,相对路径会锚定到当前目录、装的就是本地这份。离线包同理改用 file: 引用或内网 npm 源,全程不访问公网。
dsh 安装插件后大多要重启宿主才会挂载,因为插件要等下次启动才被插件树加载。装完重启 dsh web,界面类插件会改 UI、工具类插件会出现在工具列表;如果没变化,先确认插件标注的兼容版本,再用 dsh plugin --profile web why <包名> 看依赖是否真的进了 profile。
这是 pnpm ≥10 默认不放行 git 依赖构建脚本导致的:git 源码插件安装时要跑 prepare,pnpm 会提示把 allowBuilds key 复制到 profile 目录的 pnpm-workspace.yaml,复制后再重跑 dsh plugin --profile web add 即可,或者改装该插件对应的 npm 包版本。
相关术语
- DSH plugin
- DSH plugin 是安装进 DeepSeek Harness 某个 profile、为其扩展能力的最小单元,以 npm 包或 GitHub 仓库形式分发,通过 dsh plugin add 装入 profile 目录。— dsh CLI README
- profile
- profile 是 DeepSeek Harness 插件 bundle 补丁层的有序堆叠,存放在 $DSH_HOME/profiles/<name>;装插件时 --profile 决定装进哪个 profile,web 与 headless 各自独立。— dsh CLI README
- dsh plugin add
- dsh plugin add 是 DeepSeek Harness 安装插件的子命令,写法为 dsh plugin --profile <name> add <包名或 Git 地址>,它把参数转发给 profile 目录里的 pnpm 完成安装。— dsh CLI behavior reference
- $DSH_HOME
- $DSH_HOME 是 DeepSeek Harness 的用户数据根目录,默认 ~/.dsh,profile 及其已装插件都放在 $DSH_HOME/profiles/<name> 下。— dsh CLI README
来源
- dsh CLI README· deepseek-ai
- dsh CLI behavior reference· deepseek-ai
- dshplugin/dsh-plugin-hub· dshplugin