DeepSeek Harness 怎么卸载?dsh 卸载完整指南:npx、npm 全局、源码三种方式与残留清理
卸载 DeepSeek Harness 按安装方式操作:npx 无残留、npm 全局用 npm uninstall -g、源码构建删仓库目录。本文给出三种卸载方式的步骤、确认无残留的验证命令、数据保留与彻底清理说明,并讲清卸载插件的正确姿势——最后附常见问题排查表。
概览:卸载分「卸本体」与「清数据」两层
卸载只删程序,数据在 $DSH_HOME(默认 ~/.dsh)独立保留。 先把这两层分清楚,卸载才不会误删(来源):
| 层面 | 对象 | 默认行为 | 对应操作 |
|---|---|---|---|
| 卸本体 | 程序与命令 | 按安装方式移除 | npx 免卸 / npm uninstall -g / 删仓库目录 |
| 清数据 | ~/.dsh 数据目录 | 默认保留 | 手动 rm -rf ~/.dsh(可选,慎做) |
方式一:npx 方式卸载(无需卸载)
npx 每次运行临时拉包、不产生本地安装,所以没有「卸载」这回事。 操作步骤:
- 确认你从未全局安装过:
which dsh提示不存在(若存在说明走的是方式二); - 可选清理 npx 临时缓存:
rm -rf ~/.npm/_npx
- 数据目录
~/.dsh保留不动,下次npx @deepseek-ai/dsh web依然能启动。
失败兜底:清理缓存后想恢复,重新执行 npx @deepseek-ai/dsh web 即可,无需重新安装任何东西。
方式二:npm 全局安装卸载
当初用 npm install -g @deepseek-ai/dsh 装的,就用 npm uninstall -g 卸。 操作步骤:
- 先停掉正在运行的 dsh web 服务(关闭对应终端窗口或 Ctrl+C);
- 执行卸载命令:
npm uninstall -g @deepseek-ai/dsh
- 等待 npm 提示已移除,输出中不应再出现错误信息。
失败兜底:提示权限错误(EACCES)时加 sudo 重试;提示包不存在说明早已卸载,直接进入下一步验证。
方式三:源码构建卸载
源码安装没有全局副作用,构建产物都在仓库目录内,删目录即卸载完成。 操作步骤:
- 确认仓库目录路径(当初 clone 的位置,如
~/deepseek-harness); - 删除整个仓库目录:
rm -rf ~/deepseek-harness
- 若仓库目录下配置过环境变量或 PATH,一并清理。
失败兜底:目录内有未提交的改动想保留,先 git stash 或复制到别处再删;删错路径无法找回,删除前用 ls 确认目录内容。
确认卸载干净
卸载后验证没有残留,三步走。 操作步骤:
which dsh:全局安装过的话,卸载后应提示不存在;npm list -g --depth=0:确认@deepseek-ai/dsh不在全局包列表;ls ~/.dsh:确认数据目录仍在(想保留数据的话),文件齐全。
数据保留与彻底清理
默认卸载保留 $DSH_HOME 全部数据;只有想彻底重来才清数据。 数据目录内容(来源):
| 文件 / 目录 | 内容 |
|---|---|
~/.dsh/settings.yaml | 用户配置 |
~/.dsh/.credentials.yaml | 模型密钥(只写不回显) |
~/.dsh/profiles/<名字>/ | 各 profile 的插件依赖 |
~/.dsh/sessions | 会话数据 |
彻底清理步骤:
- 备份要留的东西:复制
~/.dsh/sessions与配置文件到其他目录; - 确认没有正在运行的 dsh 进程;
- 执行:
rm -rf ~/.dsh
- 清理后重装即全新状态,密钥需重新填写。
卸载插件的正确姿势
想卸的是某个插件而不是整个 dsh?走插件中心(由 DSH Plugin Hub 提供)或 dsh plugin 命令,别动本体。 两种方式:
方式一:插件中心界面卸载
- 打开设置 → 插件中心 → 已安装;
- 找到目标插件,点行尾的卸载;
- 在确认弹窗核对插件与来源,点确认;
- 实时进度完成后插件从列表消失,
$DSH_HOME配置不受影响。
方式二:命令行卸载
# 先列出已装插件确认包名
dsh plugin --profile web list
# 按包名卸载
dsh plugin --profile web remove dsh-plugin
不确定包名时先 list 再 remove;插件卸载只移除依赖,想清残留缓存再手动检查 $DSH_HOME 下对应插件的目录。

常见问题与解决
卸载遇到报错或疑惑,先按下面的表定位。 常见问题清单:
| 问题 | 可能原因 | 解决办法 |
|---|---|---|
npm uninstall -g 提示 EACCES | 全局目录无写权限 | 加 sudo 重试,或改用户级 npm prefix |
which dsh 仍有输出 | 全局包未卸干净、或 npx 缓存残留 | 重跑 npm uninstall -g @deepseek-ai/dsh,清 ~/.npm/_npx |
| 端口 3080 仍被占用 | dsh 进程未退出 | 查找并结束 dsh 进程后再卸载 |
| 卸载后数据「不见了」 | 误删了 ~/.dsh | 数据不可恢复,清前务必先备份 |
| 插件卸载后设置还在 | 只移除了依赖 | 属正常现象,残留配置在 $DSH_HOME 对应目录,手动清理 |
| 想重装却启动异常 | 卸载不完整、缓存冲突 | 按方式清理缓存后重新 npx @deepseek-ai/dsh web |
总结速查
一句话:卸本体按安装方式、清数据要备份、卸插件用插件中心或 dsh plugin remove。 四个提醒:
- 卸本体不动数据:
rm -rf ~/.dsh是清数据不是卸载,先备份; - 密钥不可恢复:
.credentials.yaml里的密钥只写不回显,彻底清理后必须重新填写; - 卸载插件用插件中心:设置 → 插件中心 → 已安装 → 卸载,或
dsh plugin --profile web remove <包名>; - 重装很简单:想再回来,npx 一行命令即可重新启动,保留的数据都在。
来源:dsh CLI README、DeepSeek Harness 官方文档 - Quickstart、dshplugin/dsh-plugin-hub
常见问题
按当初的安装方式:npx 方式无本地安装无需卸载(最多 rm -rf ~/.npm/_npx 清缓存);npm 全局安装执行 npm uninstall -g @deepseek-ai/dsh;源码构建删除克隆的仓库目录(rm -rf ~/deepseek-harness)。卸载只动程序本体,不碰 ~/.dsh 数据。
不需要。npx 每次运行临时拉取、不产生本地安装;最多清理缓存 rm -rf ~/.npm/_npx,数据目录 ~/.dsh 建议保留。
执行 npm uninstall -g @deepseek-ai/dsh 移除全局命令;验证用 which dsh(应提示不存在)和 npm list -g --depth=0(列表里不应再有 @deepseek-ai/dsh)。
直接删除克隆的仓库目录,如 rm -rf ~/deepseek-harness;源码安装没有全局副作用,构建产物都在仓库目录内,删目录即卸载完成。
默认不丢:卸载只删程序,$DSH_HOME(默认 ~/.dsh)下的配置、密钥、会话全部保留;想彻底清理再手动 rm -rf ~/.dsh,清前先备份 sessions 与会话数据。
来源
- dsh CLI README· deepseek-ai
- DeepSeek Harness 官方文档 - Quickstart· deepseek-harness
- dshplugin/dsh-plugin-hub GitHub 仓库· GitHub