dsh purge 到底清什么?DeepSeek Harness 清数据与卸载 DSH plugin 的分界
dsh purge 不是 DeepSeek Harness 官方命令——官方 CLI 的入口里根本没有 purge 子命令;dsh-purge 是一个社区 DSH plugin,「清数据」意义上的 purge 指的则是删除 $DSH_HOME 下的数据目录(来源)。 搜这个词的人,十有八九把三样东西混成了一个:一条并不存在的命令、一个名字撞车的插件、一种「把数据清空」的直觉。这篇不重复卸载步骤(那些看《卸载 DeepSeek Harness 的完整命令》),只做一件事——把「purge 这类清数据操作」和「卸载 DSH plugin」的分界划清楚,再告诉你什么时候该清、文件层怎么清、清错了会怎样。想先弄懂 purge 这个概念,可对照《dsh purge 是什么》;要看插件本身,去 DSH Plugin Hub 按名字查。
三个同名物:dsh purge、dsh-purge(一个 DSH plugin)与「清数据」
dsh purge、dsh-purge 与「清数据」是三样不同的东西:dsh purge 是不存在的官方子命令,dsh-purge 是一个社区 DSH plugin(中文也常叫「DSH插件」「DeepSeek插件」),而「purge 一下数据」指的是删除 $DSH_HOME 这个动作。 三者的来历、官方 CLI 到底有哪些入口、dsh-purge 这个插件究竟做什么,都在《dsh purge 是什么》里逐条讲清了,本篇不重复。这里只记住一句:purge 不是官方命令——认准这点,后面的分界与实操才不会从错的前提开始。
purge 与卸载 DSH plugin 的分界线:清数据 ≠ 拆插件
清数据(purge)动的是数据目录里的内容,卸载 DSH plugin 动的是依赖清单与加载清单——两件事互不替代,谁也不能顶替谁。 把两者并排看,边界一目了然:
| 维度 | 清数据 / purge | 卸载 DSH plugin |
|---|---|---|
| 动作对象 | $DSH_HOME 下的内容 | 依赖清单 + 加载清单 |
| 用什么做 | 文件层删除(无官方命令) | dsh plugin --profile web remove <包名> |
| 影响范围 | 会话、配置、密钥、插件依赖一起走 | 只摘掉这一个插件 |
| 可逆性 | 不可逆,删前必须备份 | 可重装恢复 |
| 遗留 | — | 覆盖层、pnpm 缓存 |
两条最容易踩的坑,恰好互为镜像:
- 想摘一个插件,却去清数据:结果把会话、密钥、别的插件一起删了,代价远大于收益。摘插件只该走 remove;
- 想回到全新状态,却只卸插件:remove 只摘掉那一个包,settings.yaml、会话日志、别的插件全都还在,根本「清不干净」,还会残留 cordis.patch.yml 里的覆盖行。
这也是为什么「卸载 ≠ 删除会话 ≠ 清数据」是三件独立的事。分界的关键判断只有一句:你要删的是「某个插件的登记」,还是「整个数据目录的内容」? 前者走 remove,后者才是文件层删除。残留到底有哪些、怎么逐层清,见《卸载残留怎么清理》,那篇不在本篇展开。
什么时候该 purge、怎么做、误清会怎样
只有当你确定要「回到全新状态」时才该动数据目录;日常想摘掉某个插件,永远只走 remove。 清数据没有官方命令,只能在文件层操作,所以每一步都要先想清楚。按顺序来:
- 先定档:你要的只是「摘掉某个插件」「只清聊天记录」,还是「整机重置」?预期:三个答案对应三种操作,想清楚再动手,避免误删还想留的东西。
- 动手前先整体备份(唯一能兜底的一步):
cp -r "$DSH_HOME" "$DSH_HOME.bak"
预期:得到一份含配置、密钥、会话与插件的完整副本,出问题可随时拷回。 3. 只想让某个 profile 回到默认:直接删它的目录,下次启动会自动重建。
rm -rf "$DSH_HOME/profiles/web"
预期:dsh web 下次启动重建一个全新的 web profile,装过的第三方插件需要重装——这是「有控制地清一部分」。 4. 想整机重置:删掉整个数据目录。
rm -rf "$DSH_HOME"
预期:目录消失,重装后是全新状态,模型密钥需要重新填。 5. 只清聊天记录、保留配置与插件:先停掉 dsh,再只删会话目录。
cp -r "$DSH_HOME/sessions" "$DSH_HOME/sessions.bak" && rm -rf "$DSH_HOME/sessions"
预期:会话清空,配置、密钥与已装插件都不受影响。 6. 校验:echo $DSH_HOME 确认路径,ls "$DSH_HOME" 看目录还在不在。预期:结果与你第 1 步定的档一致。
误清的后果按「删错一层,丢一层」来记:删 sessions 丢聊天记录;删 profiles/<名字> 丢该 profile 的全部第三方插件与本地配置;删整个 $DSH_HOME 则密钥、会话、插件一锅端,而且没有回收站。唯一能救的就是第 2 步的备份——所以「先备份再删」不是客套话,是这类操作的硬前提。
说不清该清哪一层时,先别急着删——打开 DSH Plugin Hub 的「已安装」列表,把装了哪些插件、各自什么来源和版本看清,再决定是摘某个插件、还是清整个数据目录。

来源:dsh CLI README、deepseek-ai/deepseek-harness、社区插件仓库 - dsh-purge、dsh-purge 插件条目。
常见问题
没有——DeepSeek Harness 官方 CLI 里没有 purge 子命令,dsh purge 只是一条被误传的命令。官方入口只有 dsh <名字> / dsh --profile <名字>、dsh web、dsh plugin --profile <名字> <pnpm 参数> 这几类,没有 purge、也没有 clean。所以「清什么」的答案不是某条命令,而是你手动指定要删的文件:会话在 $DSH_HOME/sessions,插件依赖在 $DSH_HOME/profiles/<名字>/node_modules,残留配置是 settings.yaml 与 cordis.patch.yml。
不会——dsh-purge 不是清理工具,而是一款社区 DSH plugin,定位为破甲(jailbreak)提示词管理,改的是默认副本、权限策略与工具限制。它虽然自带 dsh-purge 命令与 /purge、/rules 斜杠命令,但那些只是插件内部的应用 / 还原补丁指令,既不碰 pnpm 缓存,也不删任何用户数据。把它当「一键清干净」来装,方向从一开始就错了。
不能——清数据动的是整个 $DSH_HOME 里的内容,卸载 DSH plugin 动的是依赖清单与加载清单,两者互不替代。摘插件走 dsh plugin --profile web remove <包名>,只摘掉这一个包;会话日志、settings.yaml、密钥与别的插件全都原样保留,还会留下 cordis.patch.yml 里的覆盖行。想彻底重置,必须在卸插件之外另行删除数据目录。
只有你确定要回到全新状态时才该动数据目录,误删后不能恢复——它没有回收站。删之前唯一能兜底的一步是整体备份:先执行 cp -r "$DSH_HOME" "$DSH_HOME.bak",出问题把副本拷回即可。日常只想摘掉某个插件,永远只走 remove,别碰整个数据目录。
走官方支持的 remove,而不是文件层硬删——dsh plugin --profile web remove <包名> 会同时把包从依赖和 dsh.profile.bundles 摘掉。真要文件层兜底,只能删它所在的 profile 目录 dsh 会重建:rm -rf "$DSH_HOME/profiles/web",下次 dsh web 自动重建全新 profile,但装过的第三方插件都要重装。手删 node_modules 而不动清单,启动时仍会去找那个包并报找不到。
相关术语
- dsh purge
- dsh purge 不是 DeepSeek Harness 官方 CLI 的子命令,官方入口只有 dsh <名字> / dsh --profile <名字>、dsh web 与 dsh plugin --profile <名字> <pnpm 参数> 这几类,没有 purge、也没有 clean。搜索里出现的 dsh purge,要么指社区插件 dsh-purge,要么是「清数据」这个动作的口头说法。— dsh CLI README(入口模式、profile 与 dsh plugin 转发)
- dsh-purge
- dsh-purge 是一款社区 DSH plugin,定位为破甲(jailbreak)提示词管理插件,修改默认副本、权限策略与工具限制,并用 Rules 卡片给补丁分组。它自带 dsh-purge 命令与 /purge、/rules 斜杠命令,但那是插件内部指令,既不是宿主 CLI 子命令,也不做磁盘清理。— dsh-purge 插件条目
- $DSH_HOME
- $DSH_HOME 是 DeepSeek Harness 的用户数据目录,未设置时默认为 ~/.dsh,保存 settings.yaml、.credentials.yaml、sessions 会话日志与 profiles 下各 profile 的插件依赖。它是「清数据」操作的唯一目标,删除不可逆。— dsh CLI README(入口模式、profile 与 dsh plugin 转发)
- dsh plugin remove
- dsh plugin remove 是 DeepSeek Harness 卸载插件的命令,完整形态为 dsh plugin --profile <名字> remove <包名>,在移除 pnpm 依赖的同时把该包从 profile 的 dsh.profile.bundles 加载清单里摘掉。它与清数据的本质区别是只动一个插件的登记,不碰数据目录里的会话与配置。— dsh CLI README(入口模式、profile 与 dsh plugin 转发)
来源
- dsh CLI README(入口模式、profile 与 dsh plugin 转发)· deepseek-ai
- deepseek-ai/deepseek-harness· GitHub
- 社区插件仓库 - dsh-purge· yujunzhixue
- dsh-purge 插件条目· DSH Plugin Hub