前言¶
在 DeepSeek Harness(DSH)里做本地智能体开发时,常见需求包括:调整系统提示、切换规则集、导入 Skill,以及在不改上游仓库的前提下对桌面/Web 宿主做有限补丁。官方能力有边界,社区里也有人维护「破甲/清理」类工具,但版本要跟 DSH 的 0.2.1-rc 线对齐,且补丁是否真正生效还要区分「写进目录」和「运行时是否读到」。
下面介绍维护者 dongliuwuzhong-arch 在 GitHub 上的兼容分支 DSH-purge(插件包名 dsh-purge,当前版本 1.2.3,MIT)。它基于上游 YuJunZhiXue/dsh-purge,面向官方桌面与 Web 的 0.2.1-rc.2 / rc.3 / rc.5,在会话侧提供 Clean 侧栏,统一管理补丁、注入提示、规则集、Skill 与网络白名单;不会在安装插件时自动改宿主,只有显式 Apply 才会写入补丁。
这是什么¶
dsh-purge 是 DSH 的提示词与宿主补丁插件:在会话标题旁增加 dsh-purge 入口,打开右侧 Clean 页面。运行时状态落在 $DSH_HOME(如 prompt-inject.md、rules/、skills/、net-scope-allow.txt、dsh-purge/ 等)。插件源码位于 $DSH_HOME/plugins/dsh-purge;profile 下的 node_modules/dsh-purge 是安装时拷贝,改源码后需 dsh-purge --sync 或重装同步。
社区目录 SkillHub 条目 将其归类为 admin-security;该目录为独立社区站点,与 DeepSeek / 幻方无官方从属关系。DSH 生态理念是「一切皆插件」,本文仅描述该仓库 README 与 package 中可核对的能力。
核心功能¶
Clean 侧栏¶
| 区域 | 作用 |
|---|---|
| Patches | 分组展示补丁状态,支持 Apply、Restore、Uninstall |
| Prompt | 编辑 prompt-inject.md 作为会话级覆盖 |
| Rule sets | 管理 AGENTS.md / CLAUDE.md 规则集;启用后写入当前 $DSH_HOME |
| Skills | 从 zip 或目录导入到宿主官方 skills/<id>/SKILL.md |
| Own servers | 在 net-scope-allow.txt 中按行登记 IP 或精确主机名 |
| Rewind | 通过官方 session.fork({ atSeq }) 或 /rewind 回退一轮 |
默认注入文案在构建时嵌入插件,不会读取磁盘上宿主自带的 prompt 文件;prompt-inject.md 为用户文件,Revert/Uninstall 默认保留。规则集可切换,写入 $DSH_HOME/rules/;工作区策略支持 strict / fallback / always,控制是否保留 DSH 工作区基线段。Skill 不参与 inject 段,卸载插件不会删除用户已导入的 Skill。
补丁系统¶
补丁表当前定义 85 条(与桌面侧栏统计、CLI --status 默认 Web 面统计可能不一致,README 说明这是预期现象)。首次 Apply 前对每个目标备份为 <file>.dshpurge.bak,重复 Apply 幂等。Restore 从备份还原并删除备份;备份缺失时至少剥离插件 shim 行。Uninstall 先还原已应用补丁,再移除注入文件、规则库与插件本身。若目标文件已有补丁标记,插件拒绝伪造「相同」备份并在状态中点名文件。
桌面官方包若仍存在 resources\app.asar,Electron 解析顺序为 app.asar → app → default_app.asar,补丁只写到解压目录 不会被加载;可靠判据是状态面板是否仍显示 ✗ app.asar: still present。自 1.2.1 起升级后 asar 自愈见仓库 docs/SEALED-ASAR.md。
CLI、会话命令与模型工具¶
命令行:
dsh-purge --status
dsh-purge --apply
dsh-purge --revert
dsh-purge --uninstall
dsh-purge --edit
dsh-purge --sync
会话内:
/purge status | apply | revert | uninstall | edit | help
/rules list | use <id> | create <id> | delete <id> | reset | help
/skills list | import <zip-or-folder> | create <id> [description] | delete <id> | help
/rewind
模型侧工具:purge_status、purge_apply、purge_revert。
安装与启用¶
该包 不在 npm 上,add dsh-purge 会 404。需从仓库归档、本地目录或离线脚本安装。
官方 Web¶
dsh plugin --profile web add <本仓库 archive 或 main.tar.gz URL>
官方桌面¶
普通 dsh CLI 不接受 --profile desktop,需使用安装目录内自带的 desktop CLI:
NODE="<DSH install>/resources/runtime/primary-runtime/dependencies/node/bin/node.exe"
CLI="<DSH install>/resources/app/dsh/node_modules/@deepseek-ai/dsh-desktop-host/lib/cli.js"
"$NODE" "$CLI" plugin --profile desktop add <本仓库 archive 或 main.tar.gz URL>
若安装仍带 resources/app.asar,将路径中的 resources/app/ 改为 resources/app.asar/。
离线安装(README 推荐)¶
脚本不跑 pnpm、不联网、不自动 Apply 补丁:
node scripts/install-offline.mjs --profile desktop --dsh-home "$HOME/.dsh" --dry-run
node scripts/install-offline.mjs --profile desktop --dsh-home "$HOME/.dsh"
node scripts/install-offline.mjs --verify --profile desktop --dsh-home "$HOME/.dsh"
或指定 zip:
node scripts/install-offline.mjs --zip dsh-purge-1.2.3.zip --profile desktop --dsh-home "$HOME/.dsh"
安装器校验包、复制到 $DSH_HOME/plugins/dsh-purge、更新 profile 的 package.json、链接 node_modules/dsh-purge 并写入 desktop-install.txt。
兼容与环境¶
- 官方桌面:DSH 0.2.1-rc.2 / rc.3 / rc.5;官方 Web:
dsh web的 0.2 线 - Node.js >= 18;Windows 建议 >= 22 以减少控制台闪屏
- Web 与桌面分别安装、分别 Apply,各有 profile 与
$DSH_HOME - 0.1.x 不支持;Community Desktop 未维护
典型用法¶
建议顺序(来自 README):
- 安装并完全退出后重启宿主。
- 打开 dsh-purge → Clean,查看补丁分组与状态。
- 如需先改 Prompt 或规则集,在 Apply 前完成编辑。
- 点击 Apply;成功后会重启宿主一次,补丁进入运行进程。
- 新开会话;已有会话不会自动加载旧 prompt。
安装后应出现侧栏按钮;/purge status 应打印当前 DSH_HOME 与补丁状态。仅把插件加入 profile 不会改宿主,默认配置不会替你点 Apply。
手动安装概要:确认运行中宿主使用的 $DSH_HOME(含 profiles/ 与对应 dsh-profile-web / dsh-profile-desktop);将插件置于 $DSH_HOME/plugins/dsh-purge;在 profile 的 package.json 增加 "dsh-purge": "file:../../plugins/dsh-purge" 与 bundle 项;Windows 下建立 Junction 链到 node_modules/dsh-purge;重启后在 Clean 中 Apply。细节见仓库 README「Manual install」。
适用场景与注意¶
适合需要在 DSH 0.2.1-rc.2 / rc.3 / rc.5 上集中管理注入、规则、Skill、补丁还原,并愿意自行承担宿主修改风险的本地开发者。插件以 当前 dsh 进程权限 运行,Apply 会改宿主文件;安装前应阅读源码、LICENSE 与 docs/SEALED-ASAR.md,确认与自身合规要求一致。
Web 与桌面补丁面不同,勿混用同一套「已 Apply」假设。编辑 $DSH_HOME/plugins/dsh-purge 源码后记得 dsh-purge --sync。
结尾¶
dsh-purge 1.2.3 把上游补丁体系延续到 DSH 0.2.1 系列,用 Clean 侧栏和显式 Apply/Restore 把提示、规则、Skill 与宿主补丁收在一处,并强调桌面 asar 密封与备份回滚。进一步了解可查看社区目录页与仓库 README(含中文版 README.zh-CN.md)。
- 目录页:https://www.skillhub.cn/plugins/dongliuwuzhong-arch/DSH-purge
- GitHub:https://github.com/dongliuwuzhong-arch/DSH-purge