DSH plugin 卸载后残留配置、缓存怎么彻底清理?DeepSeek Harness 数据清除指南

卸载与清理发布于 2026-08-21作者: DSH Plugin 插件中心
DSH pluginDeepSeek Harness卸载残留清理缓存~/.dsh
DSH plugin 卸载后残留主要在 profile 目录与 pnpm 缓存:profile 里可能残留依赖声明与覆盖层,pnpm store 里留着包文件。本文给出逐层清理步骤、$DSH_HOME 在各平台的默认位置,以及删除前的备份建议。

DSH plugin 卸载后,残留主要在两处:profile 目录里的依赖声明与配置覆盖层、pnpm store 里的包文件。按「查残留 → 清 profile → 清缓存」三步就能清干净。

概览

dsh plugin remove 只把插件从依赖里摘掉,不保证清掉所有痕迹。 想彻底清干净,需要知道残留在哪、怎么逐层清理,以及各平台数据目录的默认位置。动手删之前,先备份会话数据。这篇按「残留什么 → 怎么清 → 数据目录在哪」的顺序讲,每一层都给了具体命令和兜底方案,照着做不会误删其他插件的数据。先记住一个前提:pnpm 的 node_modules 是软链接结构,remove 只是把插件从依赖树里摘掉,物理包文件仍留在全局 store 里——所以「卸载了但数据还在」是设计使然,不是 bug。

DSH plugin 卸载后残留什么

卸载后残留分三类:依赖、配置覆盖层、包缓存。 具体来说:

  1. 依赖声明dsh plugin --profile web remove <包名> 转发给 pnpm 移除依赖(来源),但被其他插件依赖的包不会一起删,属于正常行为——删了反而会连带破坏还在用的插件。
  2. 配置覆盖层:profile 目录的 cordis.patch.yml、home 级的 ~/.dsh/cordis.patch.yml 里如果写过该插件的 config 行,卸载不会自动删除,下次启动可能残留旧配置。这正是「卸载了但行为没变」的常见原因:配置还在,插件框架照读。
  3. 包缓存:pnpm store 里留着下载过的包文件,pnpm 自己管理,一般不用手动清;store 里的包是全局复用的,同一个包可能同时被其他项目引用,所以 remove 不会主动删它,只有 pnpm store prune 会回收没有被任何项目引用的包。

动手前先备份,一条命令搞定:cp -r ~/.dsh ~/.dsh.bak(Windows 用 xcopy /E /I %USERPROFILE%\.dsh %USERPROFILE%\.dsh.bak)。备份对象是整个 ~/.dsh 数据目录而不是单个 profile——它同时覆盖依赖声明、配置覆盖层与会话记录,一处备份全部兜住;清理出错时把目录整体拷回即可。

DSH Plugin Hub 安装的插件卸载后残留位置相同;DSH Plugin Hub 的卸载是可视化操作、成功即生效,且每次安装/升级/卸载都会写入通知中心,方便回查。

DSH plugin 残留配置和缓存怎么清理

清残留分两步:先查再清,配置和缓存分开处理。 操作顺序:

  1. 查残留dsh plugin --profile web why <包名> 看依赖关系;dsh --dump-config 看配置树里还有没有该插件的行(来源)。
  2. 清 profile:编辑 profile 目录的 package.json 删掉残留依赖行、cordis.patch.yml 删掉对应 config 行;编辑前先备份。注意 package.json 里残留的是「依赖声明」,cordis.patch.yml 里残留的是「配置覆盖」,两处都要看,别只清一处。
  3. 清缓存:源码构建的 DSH 执行 pnpm store prune,移除未被任何项目依赖的包。
  4. 兜底方案:不想要某个 profile 了,直接删除整个目录(如 ~/.dsh/profiles/web),DSH 下次启动会自动重建内置的 webheadless profile(来源)。

清理完可以再跑一遍第 1 步确认:why 查不到该插件、--dump-config 里也没有它的行,才算真正清干净。手动编辑 package.json 前先用 pnpm list 确认包名与版本,别删错行;改完不需要重新安装依赖,profile 下次启动会按新声明加载。

删掉整个 profile 目录后,下次启动 dsh web 会重建一个全新的 web profile——之前装过的第三方插件需要重新安装,模型等运行配置回到默认值。所以「删整个目录」适合你已经决定重来的情况;只想摘掉某一个插件,还是优先走 package.jsoncordis.patch.yml 的定点清理,别让其它插件一起陪葬。

DeepSeek Harness 数据目录位置与彻底清理

DSH 的数据目录由环境变量 $DSH_HOME 决定,默认是 ~/.dsh 各平台默认位置:

  • macOS/Users/<你的用户名>/.dsh
  • Linux/home/<你的用户名>/.dsh
  • Windows%USERPROFILE%\.dsh

如果想确认当前机器实际用的路径,在终端执行 echo $DSH_HOME(Windows 用 echo %DSH_HOME%):有输出就用它,没输出就是默认值 ~/.dsh

Windows 下若 %DSH_HOME% 未设置,默认目录是 %USERPROFILE%\.dsh,不在 AppData 里——别去 %APPDATA% 里找。路径带用户名,换机器或迁移用户时目录名会随之变化,脚本里写死路径要留意。

彻底卸载 DSH 本体时,核心是清这个目录:npx 方式删掉 ~/.dsh 就算卸载完成;源码构建还要删除克隆的 deepseek-harness 仓库并执行 pnpm store prune来源)。删除前务必确认:~/.dsh 里既有 profile 配置,也有全部会话记录,先备份 ~/.dsh/sessions 再动手。目录删了就真没了,会话、历史、插件配置全在里面,没有回收站兜底。常规卸载命令看《DSH plugin 怎么卸载》,命令卸不掉时的强制清理看《DSH plugin 卸载失败怎么办》。

来源:dsh CLI README官方 Quickstart

常见问题

DSH plugin 卸载后还有残留吗?

会有。remove 只把插件从依赖里摘掉,被其他插件依赖的包不会删,profile 里写过的配置覆盖层也不动,pnpm store 里还有下载过的包文件。

卸载后 profile 里的残留配置怎么清理?

用 dsh --dump-config 看配置树里还有没有该插件的行,手动编辑 profile 目录的 cordis.patch.yml 删掉对应 config 行;想省事直接删整个 profile 目录,web、headless 下次启动会自动重建。

pnpm 缓存需要手动清理吗?

通常不用,pnpm 自己管理 store。源码构建装的 DSH 想彻底清干净,可执行 pnpm store prune 移除未被任何项目依赖的包。

DSH 的数据目录默认在哪?怎么彻底删除?

由 $DSH_HOME 决定,默认是 ~/.dsh:macOS/Linux 在 /Users/<你>/.dsh、/home/<你>/.dsh,Windows 在 %USERPROFILE%\.dsh。彻底卸载本体时删掉这个目录即可,删除前先备份里面的 sessions。

来源