卸载 DeepSeek Harness 插件

五步图文实测:移除单个插件、卸载 dsh 本体、彻底清理 ~/.dsh 数据目录,不留任何残留。

最近更新: 2026-10-25

DeepSeek Harness 万物皆插件,卸载也遵循同一套逻辑:profile 里记录着依赖条目,CLI 负责删除,重启之后正在运行的会话才真正放手。按顺序做完这三步,就不会留下残留。

下面的图文覆盖三个层级——卸载单个插件、卸载 dsh 本体、删除 ~/.dsh 数据目录——截图全部来自公开录屏,并在页面底部署名出处。

五步卸载 DeepSeek Harness 插件

  1. 1

    先确认到底装了什么

    在控制台打开 Settings → Plugins,搜索插件名——列表会显示当前部署里已安装的每个插件和 Enabled 状态。再执行 list 命令:它会打印 profile 的依赖条目,以及 ~/.dsh 下该 profile 的私有目录。记下准确的包名,下一步要用。

    $dsh plugin --profile web list
    在 DeepSeek Harness 的 Settings Plugins 里搜 hell,会同时返回内置的 shell-env 和带 Enabled 标记的 hello-plugin/index.js。
    动手之前,先在 Settings → Plugins 里确认插件确实处于启用状态。看视频第 6:26
    在 VS Code 终端里运行 dsh plugin --profile web list,会打印出 dsh-hello-plugin 依赖和标记 PRIVATE 的路径 /home/web/.dsh/profiles/web。
    list 命令还会打印 profile 在 ~/.dsh 下的私有目录——依赖条目就记录在那里。看视频第 5:46
  2. 2

    一条命令把插件移出 profile

    卸载单个插件只需一条命令:dsh plugin --profile web remove <包名>,它会把依赖条目从 web profile 里删掉。终端会打印带减号的 diff,一秒内确认完成。如果插件装在别的 profile,就对同一个 profile 执行 remove。

    $dsh plugin --profile web remove <package>
    DeepSeek Harness 命令速查表高亮了 pnpm dsh plugin --profile web remove <name>,下方终端的 diff 正把 dsh-hello-plugin 移出 profile。
    一条命令把插件移出 profile——带减号的那行就是被删掉的依赖。看视频第 7:32
  3. 3

    重启,然后验证它真的没了

    正在运行的会话沿用的是启动时的插件组合,所以删完先退出 harness 再启动,再确认结果。重新执行 list 命令——条目已经消失——再到网页端搜同一个关键词:之前命中你插件的查询,现在只剩内置插件。

    $dsh plugin --profile web list
    hello 插件删掉之后,用同样的 hell 关键词在 DeepSeek Harness 网页端搜索,只剩 shell-env 一条内置结果。
    同样的关键词、同样的列表:现在只剩内置的 shell-env。如果还能看到,先重启再查。看视频第 7:46
  4. 4

    卸载 dsh 本体

    要彻底离开?先在终端里用 Ctrl+C 停掉控制台。如果是用 npm install -g @deepseek-ai/dsh 全局安装的,镜像命令 npm uninstall -g 即可卸载;只用 npx 的用户不再运行缓存的包即可。这一步只删程序本身——你的数据在下一步。

    $npm uninstall -g @deepseek-ai/dsh
    正在运行的 DeepSeek Harness 控制台上,能看到 deepseek-workspace 会话历史和 openrouter deepseek 模型选择器。
    卸载任何东西之前,先在终端里用 Ctrl+C 把它关掉。看视频第 1:00
    Windows PowerShell 刚跑完 npm install -g @deepseek-ai/dsh,装了 284 个包,dsh web 正服务在 127.0.0.1:3080。
    用 npm 全局安装的?那 npm uninstall -g 就是这一步的镜像操作。看视频第 2:22
  5. 5

    删除数据目录,干净重启

    harness 把 profile、会话、配置和密钥都放在 ~/.dsh(Windows 是 %USERPROFILE%\.dsh)——删掉它就是完全重置。手动添加的插件只是项目里的普通文件夹,顺手一起删。之后重新运行 dsh web,你会看到一个带着空白工作区的全新控制台。

    $rm -rf ~/.dsh
    $Remove-Item -Recurse -Force "$env:USERPROFILE\.dsh"
    $dsh web
    VS Code 列出了 DeepSeek Harness 项目里手动添加的 my-dsh-plugin 文件夹,旁边的终端把 harness 跑在 3000 端口。
    手动添加的插件只是普通文件夹——remove 命令不会碰这些文件。看视频第 4:00

Windows 警告:移除 link: 插件可能删除源代码文件

讨论区 #9835(Critical,截至 2026-10-17 官方未修复)记录了一起真实事故:在 Windows 上卸载以本地目录(pnpm link:)方式安装的插件时,profile 里的 node_modules/<pkg> 其实是一个 junction,删除逻辑把它当普通目录一路递归进去——删掉的却是开发者的源码仓库本体。事故仓库丢失了 .deepseek-harness/(agent 长期记忆)与 .git 的头部文件,直接报 fatal: not a git repository。

在 Windows 上移除插件前,先检查 profile 的 package.json 或 pnpm-lock.yaml 是否记录了 link:<路径>。将源代码目录完整复制到其他位置,包含隐藏目录和未提交文件,并确认备份可用。仅推送 Git 无法备份未提交内容。执行 Remove 或 dsh plugin --profile <name> remove 前,请先阅读本警示。

触发面有两处:Desktop 插件页的 Remove 与 CLI 命令。macOS/Linux 上 pnpm 用符号链接、删除逻辑能正确识别,推测不受影响(报告作者也在等官方确认)。截至 0.2.1-alpha.5 尚无修复版本。

停用、移除、卸载:三个动词各管一段

三个动词对应三种投入程度:停用只关开关,磁盘上一切照旧;移除把单个插件从 profile 摘除;卸载是连本体带数据的全部清空。选能解决问题的最小动词。

停用(Disable)——暂停,不是删除

Settings → Plugins 里的 Enabled 开关只负责关闭插件:依赖条目、插件文件和你的配置全部原地保留,重新启用即恢复原样。排障、腾出快捷键、对比插件效果,都先用停用。

一个版本注记:0.2.1-alpha.5 之前,已打开会话的 / 菜单在停用后不会刷新技能列表,重启会话才对齐;alpha.5 已修复该刷新问题,菜单与面板所见即所得。

移除(Remove)——把单个插件摘出 profile

dsh plugin --profile web remove <package> 会从指定 profile 移除包依赖,重启该 profile 后插件停止加载。之后可用 add 重新安装,但重新安装不能保证恢复插件数据。Windows 的本地 link: 安装请先阅读备份警示。

卸载(Uninstall)——本体与数据一起清

下方第 4-5 步是完整退场:npm uninstall -g @deepseek-ai/dsh 卸载程序本体,再删除 ~/.dsh 一次清空所有 profile、会话与密钥。对数据而言,删掉这个目录才是「卸载干净」的唯一定义。

一条生命周期,四个页面:本页管哪段?

插件管理的动词很容易混,先划清边界。本页只管「卸载/停用」——把单个插件拿走;下面三页各管生命周期的其余段落,链接直达对应命令参考。

DeepSeek Harness 插件卸载常见问题

执行 remove 命令之前,用户最关心的问题。

如何卸载 DeepSeek Harness 插件?会留下残留吗?

按本页流程操作不会。卸载插件用 remove 命令会删除 profile 里的依赖条目和能力层,重启后生效;唯一不受它影响的是你手动放进项目的插件文件夹和 ~/.dsh 数据目录——前者手动删除,后者只在你打算彻底重置时才动。

卸载插件会删掉我的会话和设置吗?

不会。卸载插件只改写 profile——~/.dsh 下的会话、工作区文件和配置原封不动。反过来也一样:卸载插件不会撤销它已经改动过的文件或外部状态,这部分要单独检查。

为什么 remove 之后插件还在运行?

因为会话在启动时就加载了插件组合。harness 只在会话启动时读取 profile,所以顺序永远是:删除、重启、验证。如果重启后列表里还有它,说明 remove 跑在了另一个 profile 上。

怎么彻底卸载 DeepSeek Harness?

三步:停掉服务器;如果是全局安装的,执行 npm uninstall -g @deepseek-ai/dsh;再删除 ~/.dsh 数据目录(Windows 是 %USERPROFILE%\.dsh)。程序和它存过的 profile、会话、密钥就都清干净了。

DeepSeek Harness 的数据存在哪里?

在家目录的 ~/.dsh 下。每个 profile 有独立的子目录——list 命令会打印成 dsh-profile-web ~/.dsh/profiles/web (PRIVATE) 这样的路径。会话、配置、密钥都在里面,所以删掉这个目录才是彻底卸载。

卸载之后还能装回来吗?

可以,卸载完全可逆。dsh plugin --profile web add <包名> 即可恢复,GitHub 上的社区插件也是同样装法(dsh plugin --profile web add "github:user/repo")。安装教程里有这两条命令的完整截图演示。

link:(本地目录)安装的插件在 Windows 上怎么安全卸载?

先检查 profile 的 package.json 或 pnpm-lock.yaml 是否包含 link:<路径>。讨论 #9835 记录了移除操作沿 Windows junction 进入源代码仓库并删文件的事故。尝试移除前,应完整复制源代码目录,包含隐藏目录和未提交文件,并核对备份;仅推送 Git 不能备份未提交内容。报告推测 macOS/Linux 可能不受影响,但截至核验日期尚未得到确认。

停用了插件,/ 菜单里还在显示它的技能,是移除失败了吗?

这是一个已知 bug,不是移除失败:插件页停用后,已打开会话的 / 菜单不会刷新技能列表,显示的还是旧条目。0.2.1-alpha.5 修复了它——启用或停用后菜单即时更新。旧版本上重启会话即可对齐。如果重启后插件仍在,多半是 remove 跑在了另一个 profile 上,回看上面的移除三步。

卸载把插件的源码仓库删坏了,还能恢复吗?

先保留受损目录,再查找备份。从远端重新 clone 只能恢复已推送的提交;本地提交和未提交文件需要独立备份或文件系统恢复,也可能无法找回。不要直接在唯一一份受损目录上运行修复命令,如需检查 Git 数据,先复制一份再操作。

停用、移除、卸载,到底该用哪个?

暂时不用插件时选停用,保留安装;需要从某个 profile 去掉包依赖时选移除,之后可以重装,但不保证恢复插件数据。不再使用 harness 时可卸载 dsh 程序。删除 ~/.dsh 是另一步不可恢复的数据清理,操作前需要备份。

相关教程

插件生命周期的其余环节,从首次安装到日常更新。

来源与署名

截图来自以下公开录屏;插件生命周期的事实与官方文档交叉核对过。每张图都可深链回源视频的对应时间点。

DSH Plugins 是独立的 DeepSeek Harness 插件目录,与 DeepSeek 官方无关,也不代表官方背书。第三方插件未经安全审计,安装前请审查源码。

每周获取最新的 DeepSeek Harness 插件,绝不滥发。