🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

破甲提示词 Potato1008ypy/dsh-purge-0.2.1rc2-fix

DeepSeek 客户端
Potato1008ypy13 天前有提交已提供中文文档扫描:无法判定兼容 / 相关生态

DeepSeek Harness 破甲:让所有模型都能破甲,不同模型可换不同提示词;默认提示词面向国模「小码酱」。Jailbreak for every model — swap prompts per model.

53.9/100
综合分
44
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/23 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/Potato1008ypy/dsh-purge-0.2.1rc2-fix.git

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
生态插件
可安装,未声明 dsh 能力
装得上吗
本站已在 dsh 0.2.1-rc.2 下真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 13 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意

未发布到 npm registry,仅可从源码安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包dsh-purge(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=18 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/20 20:09:50

安全扫描自动 · 静态分析源码
v2.7.0
⚪ 扫描:无法判定尚无人工评估
展开查看扫描说明与证据 ↓

已尝试扫描但取不到可分析的源码:仓库或包不存在、已删除,或为非 JS/TS 实现、未随包发布源码。无法判定,不代表安全。

  • · 取源不可用(Error: github tarball HTTP 404 @ https:
  • · api.github.com
  • · repos
  • · Potato1008ypy
  • · dsh-purge-0.2.1rc2-fix
  • · tarball)
扫描于 2026/11/4(0 天前)

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

界面预览

5 张 · 点击查看大图

README

由 DeepSeek 最新模型翻译生成
dsh-purge · DSH Desktop 0.2.1-rc.2 适配修复版 基线:上游 1.1.71(commit 6c1d638)· 许可:MIT · 用途:本地安全研究与授权测试 概述 本仓库是 YuJunZhiXue/dsh-purge 的适配分支,锁定于上游 1.1.71(commit 6c1d638,release v1.1.71)。 上游 1.1.71 在 DSH(DeepSeek Harness)0.2.1-rc.2 上无法正常工作:宿主侧的九处结构性变更使插件在加载、组合、补丁应用或提示词装配阶段报错或静默失效,其中一处会导致 DSH 无法启动。本仓库针对这九处做兼容修复,并满足以下约束: - 不改变产品行为:不改写提示词内容、不移除功能,只让既有行为在新宿主上重新成立。 - 版本自适应:每处修复都带宿主结构探测,在 0.2.0-rc.2 等旧宿主上自动退让。 - 可回归验证:随包提供离线测试,逐条锁定修复,不依赖网络或宿主的 yaml。 除代码修复外,补丁注册表新增 retired 标记,使「未命中」与「已退役」在状态面板上可区分(预期终态 applied 66 / na 15 / pending 1,其中 #40 仅在 complete 模式下命中)。
展开完整文档(README 剩余 1 节)
dsh-purge · DSH Desktop 0.2.1-rc.2 适配修复版

基线:上游 1.1.71(commit 6c1d638)· 许可:MIT · 用途:本地安全研究与授权测试

概述

本仓库是 YuJunZhiXue/dsh-purge 的适配分支,锁定于上游 1.1.71(commit 6c1d638,release v1.1.71)。

上游 1.1.71 在 DSH(DeepSeek Harness)0.2.1-rc.2 上无法正常工作:宿主侧的九处结构性变更使插件在加载、组合、补丁应用或提示词装配阶段报错或静默失效,其中一处会导致 DSH 无法启动。本仓库针对这九处做兼容修复,并满足以下约束:

- 不改变产品行为:不改写提示词内容、不移除功能,只让既有行为在新宿主上重新成立。
- 版本自适应:每处修复都带宿主结构探测,在 0.2.0-rc.2 等旧宿主上自动退让。
- 可回归验证:随包提供离线测试,逐条锁定修复,不依赖网络或宿主的 yaml。

除代码修复外,补丁注册表新增 retired 标记,使「未命中」与「已退役」在状态面板上可区分(预期终态 applied 66 / na 15 / pending 1,其中 #40 仅在 complete 模式下命中)。

兼容性

| 宿主 | profile | 状态 |
| DSH Desktop 0.2.1-rc.2(Windows) | desktop | 实测通过,本仓库的验证基线 |
| dsh CLI 0.2.1-rc.2 | web | 适用同一套修复;本轮未逐项回归 |
| DSH 0.2.0-rc.2 | desktop / web | 修复为版本自适应;未逐项回归 |
| DSH < 0.2.0 | — | 不支持 |

注:原版 DSH 与 DSH Desktop 是同一个包 @deepseek-ai/dsh,bundles 组合逻辑相同;差异仅在 desktop profile 的管理入口(见「安装」)。运行时要求 Node.js ≥18;Windows 下避免控制台闪窗需 ≥22。

修复清单

| ID | 症状 | 根因(宿主侧证据) | 处理 |
| FIX-01 | 启用后 DSH 无法启动;配置项重复渲染;两个 dsh-purge-redteam-store 争用同一 SQLite 文件 | cordis.patch.yml 中出现两个 - insert: 块,四个插件行被插入两遍;宿主每次启动都重新解析该文件 | 合并为单块(1 个 insert 块 / 4 个插件行) |
| FIX-02 | [E] [tool-subagent] toolFilter is no longer supported,预设无法挂载 | 0.2.1-rc.2 从 @deepseek-ai/dsh-tool-subagent 的 Config 中删除 toolFilter / persona,写入即抛错 | 模板移除该键;repairDelegation() 增加行式剥离,自动迁移旧格式预设 |
| FIX-03 | unknown prompt variable "{{cwd}}",工作目录显示为空或 { {cwd}} | 0.2.1 仅注册 model / provider;严格插值遇未注册变量抛错并丢弃整批 section | 插件自行注册 cwd;persona 段优先写入字面路径 |
| FIX-04 | 补丁 #40 COMPLETE_PROMPT_KEEP_INJECT 静默失效 | 宿主 assemble() 将 contexts 收窄为 requiredContexts 过滤,旧锚点失配 | 补 0.2.1 形态 pattern;替换体抽为 completePromptInjectBody() |
| FIX-05 | desktop-shell 相关补丁全部失效 | 0.2.1 可执行名称为 DSH Desktop.exe,isOfficialHarnessExecutable 仅识别 deepseek-harness | 补入 DSH Desktop.exe / dsh-desktop.exe 并改为容错匹配 |
| FIX-06 | 任一段插值失败即丢失整个人格 | 宿主 assemble() 异常时返回 { sections: [] } | 按注册顺序重建段表,仅丢弃插值失败的段 |
| FIX-07 | 应用后无任何 .dshpurge.bak 生成,还原与卸载失效 | extract-asar.js 的 HOST_SYNC 缺少 closeSync,而 hostFs 依该表生成;backupAll() 占位句柄未释放,Windows 下 rename 报 EPERM | 新增 HOST_FD 表单独装配 fd 类方法 |
| FIX-08 | 预设声明「子代理为叶子」,实际可经 workflow / ralph 递归 | workflow-ptc 的 childRequest() 不携带 maxDepth,回落到宿主默认值 10;子会话继承父预设工具表 | tool-workflow / tool-ralph 置 disabled: true,引擎保留 |
| FIX-09 | 桌面端点「应用」后 dsh: fatal load failure | 同步函数内调用 async atomicCopyFile() 未 await,reject 经 unhandledRejection 升级为 uncaughtException | 改用同为原子写、但全程同步的 atomicWriteSync() |

FIX-01 至 FIX-06 由本仓库定位。FIX-07 至 FIX-09 在与 evilevil/dsh-purge-021rc2 逐条比对后并入;实现方式与该仓库不同,取舍见 FIXES.md。

逐条的症状、根因、改动与验证方法见 FIXES.md;「已知限制与设计取舍」另列于本文件。

安装

安装分三步:装包 → 启用 → 打补丁。前两步让宿主加载本插件,第三步才真正改写宿主文件,且不会自动执行。

| 步骤 | 操作位置 |
| 1 · 装包 | install.ps1,或「插件」页 → 添加插件 |
| 2 · 启用 | 一键脚本会顺带写好 bundles;否则同一页 → 启动,然后重启 DSH |
| 3 · 打补丁 | 会话标题旁 dsh-purge → 清洗 → 应用 |

按推荐顺序,四条装法任选一条:

| 顺序 | 方式 | 要不要关 DSH | 自动写 bundles |
| 1 | 一键脚本 install.ps1 | 要 | ✅ |
| 2 | pnpm add | 不要 | ❌(装完手动启用一次) |
| 3 | 桌面端命令行 helper | 要 | ✅ |
| 4 | GUI「插件」页 | 不要(但可能撞 EPERM) | ✅ |

1 · 一键脚本(Windows,最省事)

先完全退出 DSH powershell -NoProfile -ExecutionPolicy Bypass -File .\install.ps1

没有仓库也行,一行拉取并执行:

powershell -NoProfile -ExecutionPolicy Bypass -Command "iwr -UseB https://raw.githubusercontent.com/Potato1008ypy/dsh-purge-0.2.1rc2-fix/v1.1.71-dsh0.2.1rc2-fix.7/install.ps1 -OutFile $env:TEMP\dsh-purge-install.ps1; & $env:TEMP\dsh-purge-install.ps1"

自动探测 DSH 安装目录与运行模式,装包后写入 dsh.profile.bundles——重启即生效,不用再点启用,等于把上面第 1、2 步合成一步。DSH 未退出时脚本拒绝执行(否则会撞 ERR_PNPM_EPERM)。完整开关见 INSTALL.md 2.0。

2 · 通过 pnpm add 安装(最直接)

pnpm add "github:Potato1008ypy/dsh-purge-0.2.1rc2-fix#v1.1.71-dsh0.2.1rc2-fix.7"

pnpm add 只写 dependencies,不登记 dsh.profile.bundles。装完须到「插件」页手动启用,再重启 DSH。

不要用 Release 的 tarball 地址安装。 宿主给 pnpm 带 CI=true(冻结模式),此时 pnpm add <远端 tarball 地址> 会把依赖写进锁文件却不写 integrity。等到真正需要取包时(换机器、空缓存、--frozen-lockfile),pnpm 拒绝安装,并因校验收敛而冻结该 profile 的所有安装与卸载,报 ERR_PNPM_MISSING_TARBALL_INTEGRITY。GitHub 源与本地 file: 压缩包都不会触发。恢复步骤见 INSTALL.md 第 7.5 节。

3 · 桌面端命令行(helper)

:: dsh-plugin.bat 是 desktop-cli.js 的封装,见 INSTALL.md
dsh-plugin.bat plugin --profile desktop add "github:Potato1008ypy/dsh-purge-0.2.1rc2-fix#v1.1.71-dsh0.2.1rc2-fix.7"

dsh plugin --profile desktop 会被直接拒绝(profile "desktop" is managed exclusively by the Electron application);<DSH 安装目录>\resources\app\lib\desktop-cli.js 是唯一放行入口。这条路径会同时写入 dependencies 与 dsh.profile.bundles,需先退出 DSH。

4 · 桌面端「插件」页(GUI)

1. 打开 「插件」页 → 添加插件,粘贴 Git 地址或本地绝对路径。
2. 装完后在同一页点「启动」,然后完整退出并重新启动 DSH。
3. 会话标题旁点 dsh-purge → 清洗 → 应用;成功后 DSH 会自动再重启一次。

实测:profile 里装了带原生模块的插件(如 web-ui 那一套)时,这条路径会反复失败。 pnpm 要重命名 node_modules 里的原生模块目录,而正在运行的 DSH 占着它,报 ERR_PNPM_EPERM;GUI 安装又要求 DSH 运行,构成死锁。这类环境改用上面 1–3 任一条。

宿主在添加前会执行一次 git ls-remote 连通性检查(默认 5 秒超时),网络不可达时会明确报错。

不要在 dsh-market(插件市场)里启用

dsh-market 的启用只走热挂载一条路径(dshmarket/lib/routes.js:773),失败即保持禁用,且不写 dsh.profile.bundles。本插件的 bundle patch 含 inject 与 config,热挂载必然失败,因此它「重启后生效」的提示不会发生。启用请使用方式 1 或 3(它们会写 bundles)。

完整参考——入口能力对照、验收步骤、旧版本迁移、卸载与故障排查——见 INSTALL.md。

验证

cd <DSH_HOME>/profiles/desktop/node_modules/dsh-purge
node test/fixes.test.mjs # 等价于 npm test

预期输出末行 全部通过:22 passed, 0 failed,退出码 0。该测试覆盖 FIX-07 至 FIX-09,不需要网络,也不需要宿主的 yaml。

文档索引

| 文件 | 用途 |
| QUICKSTART.md | 一页纸安装流程,按步骤照做即可 |
| INSTALL.md · INSTALL.en.md | 完整安装参考:路径发现、profile 判定、验证清单、故障救援 |
| FIXES.md · FIXES.en.md | 九处修复的逐条说明:症状 → 根因 → 改动 → 复核命令 |
| FORK-NOTES.md | 分支定位、修复范围、向上游合并的建议 |
| CHANGELOG.md | 版本变更记录 |
| dsh-purge-repair.mjs | 自愈工具:重复 insert 块与退役键,路径自定位 |

与上游的关系、署名与许可

- 上游:YuJunZhiXue/dsh-purge(MIT),作者小杨。
- 著作权:原始代码、提示词与文档的著作权全部归上游作者。本仓库仅就适配修复部分主张修改版权(Copyright (c) 2026 Star)。
- 分支性质:社区适配分支,非上游官方发布,不提供官方背书。
- 署名要求:依上游要求,任何借用其名称、思路、代码或提示词的项目须保留署名并注明来源仓库;本仓库在 LICENSE、package.json 与本文件中均保留上游署名。
- 维护状态:上游已声明暂停更新(详见附录 A)。本仓库自行发版。

不要通过包管理器更新本插件。 本分支与上游的 version 字段同为 1.1.71(本分支带 -dsh0.2.1rc2-fix.N 后缀),插件管理器可能提示「可更新」;执行 pnpm update dsh-purge 或接受一键更新会用上游版本覆盖修复。更换版本时应先移除 bundles 中的 dsh-purge、清理 node_modules/dsh-purge,再以上述 URL 重新安装。

已知限制与设计取舍

1. FIX-07 / FIX-09 未经真机故障复现即已修复:两者均为静态可判定的缺陷(方法缺失、Promise 未 await),修复后以离线测试与前后对照验证,未在产生故障的原始场景中复现。
2. HOST_FD 与 HOST_SYNC 分表:fd 类方法的首个参数是文件描述符而非路径,若复用 route() 会把 String(fd) 当作路径探测 asar 并污染探针缓存,因此单独装配、直接落到 node:fs。
3. Ctrl+Enter 行为保持不变(有意为之):补丁 #85 / #86 将 session-controller 的 case "steer" 改为 followup,使 UI 发送一律走新 turn,以抑制「二轮立刻发送被拒」的竞态。副作用是 Ctrl+Enter 不打断当前轮次,而是排队为下一轮。上游后续版本改回了 agent.steer;本分支保留现状,因为回退会重新引入上述竞态。如需回退,改动点为 lib/core.js 中 #85 的 replace 与 #86 的首个 replace。
4. retired 标记的语义:标记为 retired 的补丁报 na 而非 skipped,表示「宿主结构已不存在、无需应用」,与「匹配失败」不同。
5. 平台覆盖:验证基线为 Windows + DSH Desktop 0.2.1-rc.2;web profile 与 0.2.0-rc.2 未做逐项回归。
6. 0.2.1-rc.2 之后的宿主变更:补丁锚点可能再次漂移。宿主升级后应重新运行 lib/audit-apply.mjs 与 lib/audit-compose.mjs 定位失配的 pattern。

许可

MIT。原始版权 Copyright (c) 2026 小杨,本仓库修改部分 Copyright (c) 2026 Star。全文见 LICENSE。

附录 A · 上游 README 原文

以下为上游 YuJunZhiXue/dsh-purge 的 README 全文,依 MIT 协议原样保留,未改动内容(仅移除了本仓库新增的目录项)。其中「适配范围」「安装」等章节针对上游 1.1.71 自身,与上文描述的本分支安装方式不同,请以上文与 INSTALL.md 为准。

暂停更新。 作者因工作安排,近期没有稳定收入,项目维护暂时搁置:不再发版、暂不收 issue / PR,也不保证跟进新版 dsh。仓库仍可自用;赞助见下方。恢复维护时会在本 README 说明。

官方 Web 和官方桌面端都支持。 官方 dsh web 用 profile web;官方桌面 EXE(DeepSeek Harness 0.2.0-rc.2)用 profile desktop。两边分开安装、分开点「应用」。当前版本只适配 dsh 0.2;更早的 dsh 用对应的老版本插件。社区桌面端不维护。

写进 profile 还不会改宿主。点会话标题旁的 dsh-purge → 清洗 → 应用。成功会自动重启;补丁没打完不重启。重启后新开一轮对话,注入才进当前会话。

Node.js ≥18。Windows 无闪窗需要 Node ≥22。插件市场一键安装和下面的命令都走 npm 包 dsh-purge。

目录

- 赞助
- 介绍
- 署名要求
- 违规商用公示
- 适配范围
- 安装
- 界面
- 使用
- 自己的服务器
- 工作原理
- 还原
- 更新

☕ 赞助

这个项目要是帮到你了,欢迎打赏。我是讨口子,施舍点~

| 资产 | 地址 |
| USDT(TRC20) | TV5ajPkRD8RH623Dx9mqvYZVNN8nPGRKid |
| Solana | 6x16GhRgLVpKFFXaU1seKNdx2rypspSJTL4dbpt6Xpwk |
| Ethereum | 0xB68BD60C0e8c519513B7DF9bB147696815423B3E |
| Bitcoin | bc1qu70yxkrtwnymt8ryluz9x8y8hqzune5340npht |

介绍

dsh-purge 是装在本机官方 DeepSeek Harness 上的网络安全红队评测插件。官方 Web(dsh web)和官方 桌面端(EXE)都支持,两边分开装、分开应用。

Harness 不只是把问题交给模型。它还会在运行时改提示词、审批门、沙箱和会话格式。只看「模型答不答」,会把宿主拦截误当成模型拒绝。这个插件在你自己的安装里把这两层分开,用来做受控评测,也用来看默认策略该不该收紧。

| 你会用到 | 它做什么 |
| dsh-purge 侧栏 | 会话标题旁的按钮打开右侧栏。里面两页:清洗、演练台 |
| 清洗 | 分组查看补丁,应用、还原、卸载;编辑提示词和多套规则 |
| 演练台 | 正式版内置。授权后查看资产、技能和本机环境。只用于你有权管理的本机、离线靶标或已书面授权的演练 |
| 宿主策略 | 调整默认文案、权限策略和工具上限。官方能力保留,不另写一套身份 |
| 启动时 | 自动再检查并应用。npm 升级盖掉 node_modules 之后不用手改文件 |

不写死盘符。按 $DSH_HOME、dsh 启动器旁边的 .dsh,再退回 ~/.dsh。不改 Harness 源码仓库,在 dsh-purge 的「清洗」里点「应用」才写入。身份来自插件里的加密提示词,也就是提示词框默认显示的那一份。不读取宿主磁盘上的提示词文件。

本插件只处理使用者本机已安装的官方 @deepseek-ai 包和本机配置。它不是公网扫描器,也不是针对第三方站点的攻击套件。仓库内不含木马、未授权渗透脚本或对外攻击载荷。

📌 非盈利公益项目,严禁任何主体用于商业售卖、付费倒卖或黑灰产牟利,仅供技术参考。

署名要求

借用本项目的名称、思路、代码或提示词,必须署名,并写明来源仓库: YuJunZhiXue/dsh-purge。

不署名、隐瞒来源、改头换面据为己有,作者将依法追究责任。

违规商用公示

抖音直播账号 「老张的ai」(直播间显示 「老张AI讲堂」)把本仓库当收费货卖:直播间问价、当场收钱,不署名,也不守上面的非盈利条款。作者人就在场,对方照收。

本项目免费、非盈利。拿它卖课、卖插件、卖 token、倒卖,许可当场作废,作者保留追究权利。

2026-10-12 直播记录:

对方微信名 「老张的ai科技」,直播间观众榜同号。被问到是不是本仓库开发者时,自称「老厉害了」;作者当场表示要投诉。

⚠️ 严正法律免责与合规使用声明

免责声明: 本项目为非营利开源项目,遵守国家法律法规及所在平台的相关规范,仅供学习与研究使用。不得将本项目用于任何违法违规用途;由此产生的后果由使用者自行承担。

【零容忍严正申明】:本项目坚决反对并严禁任何形式的违法犯罪行为!本项目开发者绝不支持、不鼓励、不协助任何未授权网络攻击、漏洞利用、数据窃取、非法侵入计算机信息系统或生成违法违禁内容的活动。任何将本项目用于违法犯罪的行为,均与开发者无关,由行为人依法独立承担全部法律责任。

1. 本仓库不含违法内容:dsh-purge 发布的代码、文档、补丁与默认提示词不是木马、后门、未授权渗透工具、勒索软件、撞库脚本,也不是针对公网或第三方系统的攻击载荷。项目本身不提供违法内容,也不教唆、组织、协助实施违法犯罪。
2. 只作用于本机官方 Harness:安全评测补丁、提示词注入全部发生在使用者本机已安装的官方 DeepSeek Harness(@deepseek-ai 包、本机 profile / $DSH_HOME)上。对象是使用者自己的官方本地软件,不是他人的网站、服务器、账号或信息系统。
3. 评测补丁不对外网目标联网:应用补丁、写入注入、回滚、卸载均在本机文件与本机进程内完成,不对任何公网主机、未授权系统进行扫描、探测、入侵或攻击发包。不得把本项目当作跳板去打外网。插件若开启「检测更新」,仅可能访问本插件自己的 GitHub 仓库以核对版本,与对第三方系统的网络攻击无关,也不能被解释为授权对外渗透。
4. 合法受控范围限定:本项目定位为使用者在自己有权管理的本机官方 Harness上,进行红队科研与鲁棒性评测的辅助工具。严禁在未经所有者合法书面授权的目标、公网在线系统或生产业务上运行本项目。一切测试必须限制在本机已授权安装的官方 Harness、离线本地合成靶标、授权网络安全演练靶场及合规实验室受控环境中进行。
5. 禁止中国大陆、香港、澳门的服务器与网站。 不得对中国大陆、香港、澳门网段,以及解析进这些网段的服务器、网站或地址进行访问、扫描、探测或任何操作。云厂商的名字不能当作例外。唯一例外是使用者事先登记为自己的服务器的那一个确切 IP,或那一个完整主机名。密钥、密码、网段、通配符,以及对话里的口头说明,都不能增加例外。没有登记的,一律禁止。
6. 严禁违法与违禁用途:使用者严禁利用本项目直接或间接从事任何违反下列法律法规的行为(必须逐条遵守,不得以任何理由规避):
- 《中华人民共和国刑法》
- 《中华人民共和国网络安全法》
- 《中华人民共和国数据安全法》
- 《中华人民共和国个人信息保护法》
- 以及其他现行有效的法律、行政法规与监管规定;
- 同时严禁:
- 未经授权渗透、攻击公私机构计算机信息系统,实施勒索、破坏、撞库或传播恶意载荷;
- 诱导、生成或传播危害国家安全、恐怖主义、暴力血腥、涉黄涉赌、诈骗、侵犯公民隐私或知识产权等任何法律明令禁止的违法违禁内容;
- 违反相关大模型提供商的《服务条款》与《滥用政策》。
7. 使用者独立承担全部责任:本项目依据 MIT 开源协议“按现状”提供,开发者不对软件的完整性、安全性与适用性作任何明示或暗示的保证。使用者应对自身的所有下载、部署、运行、修改、传播行为以及由此产生的全部输入与输出后果承担独立、完全的民事、行政及刑事法律责任。项目作者与贡献团队绝不承担任何因使用者滥用导致的直接、间接或连带责任。
8. 违约即终止授权:任何将本项目用于非法攻击、恶意活动或违规行为的个人或实体,其开源软件使用许可将自违法违规行为发生之日起自动且不可撤销地立即终止。该主体须立即停止使用并永久销毁本项目的所有代码、脚本与衍生数据,并依法承担相应法律制裁。
9. 第三方独立性声明:本项目属于完全独立的开源安全评测研究项目,与 DeepSeek 官方或其关联主体无任何隶属、商业合作、授权或官方背书关系。文中「官方」仅指评测对象为使用者本机安装的官方 DeepSeek Harness 软件包,不代表 DeepSeek 官方开发、认可或担保本插件。
10. 必须署名:借用本项目的名称、思路、代码或提示词,必须署名并标明本仓库。不署名将依法追究责任。详见 署名要求。

适配范围

最新版只支持 dsh 0.2,不要拿它去打 0.1.x。

- dsh 0.2(官方桌面 0.2.0-rc.2 / 官方 dsh web):用 1.1.40 及以上。本页命令装的就是这一档。
- dsh 0.1.7(含 rc.1 / rc.2):用 1.1.39 及更早 —— 在 Releases 里选对应标签。

对不上的补丁会显示待应用或跳过,不会乱改文件。

安装

现在只维护官方 dsh web 和官方桌面 EXE,两边都要装、分开应用。Web 的包进不了桌面端,桌面端的包也进不了 Web。

Web(官方 dsh web)

dsh plugin --profile web add dsh-purge

桌面端(官方 EXE)

dsh plugin --profile desktop add dsh-purge

当前目录已经是本仓库时,把包名换成 add .。dsh 不在 PATH 时走 手动安装。registry 上不去:同一个 --profile,把目标换成 https://github.com/YuJunZhiXue/dsh-purge/archive/refs/heads/master.tar.gz。

插件市场 一键安装会按本仓库反查 npm,命中后装 dsh-purge。目录页可能仍写 github: —— 按钮若退回 git,用上表命令。

桌面客户端也可以点按钮(dsh:// 唤起):

唤起客户端一键安装

装完都要做这三步

只把插件写进 profile 还不会改 @deepseek-ai。

1. 退出并重新打开刚装的那个宿主:Web 关掉 dsh web 再开;桌面端退出托盘再打开对应 exe。
2. 在这个宿主点会话标题旁的 dsh-purge,在 清洗 页点 「应用」。宿主的设置页里没有这个条目。
3. 「应用」成功后会自动重启一次,让补丁进入当前进程。没做完不会重启。

Web 的控件只动 Web,桌面端的只动桌面应用。不要在一个宿主里点另一个宿主的应用。

怎样算装上了

- 会话标题旁有 dsh-purge,点开后在「清洗」里能点「应用」。
- 聊天里 /purge status 能打出 DSH_HOME 和补丁列表,路径应是你正在用的那一份。
- 没装的可选包(例如梁神)显示跳过,不挡住应用完成。

交给助手安装

把下面整段发给本机助手。它只执行安装命令:不要全盘搜索、不要改其它文件、不要代点「应用」、不要重启。

给 AI 助手(只安装)

安装 DeepSeek Harness 插件 dsh-purge,Web 和官方桌面端都要装。不要全盘搜索,不要读或改其它文件,不要应用设置,也不要重启应用。

dsh 不在 PATH 就告诉用户后停止。当前目录已是本仓库时,把下面两条里的包名都换成 .。npm registry 上不去,把包名换成 https://github.com/YuJunZhiXue/dsh-purge/archive/refs/heads/master.tar.gz。某个 profile 不存在就跳过那一条,另一条照装。

Web 端(官方 dsh web)

dsh plugin --profile web add dsh-purge

桌面端(官方 EXE)

dsh plugin --profile desktop add dsh-purge

命令结束后,提醒用户:Web 完全退出并重启 dsh web;桌面端退出托盘再打开 EXE。各自点会话标题旁的 dsh-purge,在「清洗」里点「应用」。然后停止。

手动安装

命令行装不上、或 dsh 不在 PATH 时用这个。只改正在用的那个宿主对应的 profile,不要动另一个,也不要删原有 bundle。

完整手动步骤

1. 找到真正在用的 $DSH_HOME。 认目录:名字是 .dsh(官方 EXE 偶见 dsh-home),里面有 profiles,且至少有一个 profiles/<名>/package.json。按顺序找:DSH_HOME 环境变量 → 安装根旁边的 .dsh(便携包)→ %USERPROFILE%\.dsh 或 ~/.dsh → %APPDATA% / %LOCALAPPDATA%\DeepSeek Harness\dsh-home。确认:profiles/web/package.json 里 "name" 是 dsh-profile-web(桌面是 dsh-profile-desktop)。本机常有两份 .dsh,要用你实际启动的那个宿主对应的那份。

Windows PowerShell 列候选:

$cands = @()
if ($env:DSH_HOME) { $cands += $env:DSH_HOME }
$cands += "$env:USERPROFILE\.dsh"
$dsh = Get-Command dsh -ErrorAction SilentlyContinue
if ($dsh) {
$dir = Split-Path $dsh.Source
$cands += @((Join-Path $dir ".dsh"), (Join-Path (Split-Path $dir) ".dsh"), (Join-Path (Split-Path (Split-Path $dir)) ".dsh"))
}
$cands += @("$env:APPDATA\DeepSeek Harness\dsh-home", "$env:LOCALAPPDATA\DeepSeek Harness\dsh-home")
$cands | Select-Object -Unique | Where-Object { $_ -and (Test-Path (Join-Path $_ "profiles")) }

2. 把插件放到 $DSH_HOME/plugins/dsh-purge(目录名必须是 dsh-purge,其 package.json 里 "name" 也必须是 dsh-purge)。

⚠️ 下面这一整段是上游原文,它的安装命令不要照抄。
它 clone / 下载的是上游 dsh-purge,而上游 1.1.71 在 DSH Desktop 0.2.1-rc.2 上跑不起来。
请改用本 fork:

sh
git clone --branch v1.1.71-dsh0.2.1rc2-fix https://github.com/Potato1008ypy/dsh-purge-0.2.1rc2-fix.git "$DSH_HOME/plugins/dsh-purge"
(没有 git?下载 Release 压缩包解压到这里;不要把 tarball 地址喂给 pnpm,见 INSTALL.md 7.5)

这一段里的其余内容(路径、package.json 改动、应用步骤)仍然适用。
本 README 的其余部分均为上游原文,保持原样未删改,因此里面仍会指向上游仓库。
本 fork 的完整安装步骤见 INSTALL.md。

git clone https://github.com/YuJunZhiXue/dsh-purge.git "$DSH_HOME/plugins/dsh-purge"

没有 git:下载 master.tar.gz,解压后把 dsh-purge-master 改名为 dsh-purge,整夹放到 plugins 下。已有本仓库副本就复制整个目录,不要只拷几个 .js。

3. 只改对应 profile 的 package.json,先备份。 Web → $DSH_HOME/profiles/web/package.json;桌面 → $DSH_HOME/profiles/desktop/package.json。只追加两处,原有依赖和 bundle 全部留着:

1. dependencies 增加 "dsh-purge": "file:../../plugins/dsh-purge"
2. dsh.profile.bundles 末尾追加 "dsh-purge"(已有就不要再加)

{
"name": "dsh-profile-web",
"private": true,
"dependencies": {
"dsh-purge": "file:../../plugins/dsh-purge"
},
"dsh": {
"profile": {
"bundles": [
"@deepseek-ai/dsh-base",
"@deepseek-ai/dsh-web-app",
"dsh-purge"
],
"patchReload": "live"
}
}
}

JSON 要合法(新增项前面有逗号,最后一项后面没有多余逗号)。file:../../plugins/dsh-purge 不要改成绝对路径,patchReload、其它插件、版本号都不要动,"dsh-purge" 不要写两次。桌面端没有 dsh-web-app 就不要硬加。

4. 只在刚改的那个 profile 目录装依赖(cd 进 profile 目录,不要在仓库根或 $DSH_HOME 根):

cd "$DSH_HOME/profiles/web" # 或 profiles/desktop
pnpm install

成功标志:出现 profiles/<web|desktop>/node_modules/dsh-purge/package.json。找不到 pnpm 就用官方 dsh 自带的 Node / pnpm;报 Could not resolve 就检查 file: 路径;JSON 解析失败就修逗号或还原备份。

5. 完全退出该宿主,再启动,再点「应用」 —— 和上面三步一样。按钮会出现在会话标题旁,只在这个宿主点「应用」(或 /purge apply)。没出现多半是改错了另一份 .dsh,回到第 1 步核对。

卸载

会话标题旁的 dsh-purge →「清洗」→「卸载」。弹窗确认:会先还原已应用的补丁,还原回原版 Harness,再重启当前宿主。

也可以用命令行 / 聊天 dsh-purge --uninstall /purge uninstall

插件配置在 cordis.patch.yml(postPrompt 默认为空):

- insert:
- id: dsh-purge
name: 'dsh-purge'
config:
enabled: true
autoApplyOnStart: true
autoUpdateOnStart: false
autoRevertOnMissing: false
verbose: false
postPromptOrder: 5100
postPrompt: ""

界面预览

会话标题旁有 dsh-purge。点开是右侧栏,两页:清洗 和 演练台。白 / 墨可切换。补丁按组展开,进度只计真正已应用的项。规则集在上方列表启用或删除,下方编辑正文。

第一次进演练台要先读声明、等倒计时、滚到文末并勾选三项。清洗不需要这一步。演练台只用于你有权管理的本机、离线靶标,或已经书面授权的演练环境。

清洗

清洗

演练台授权

演练台授权

演练台

演练台

补丁

补丁

规则集

规则集

自己的服务器

在清洗页,提示词下面。每行一台,点保存名单。步骤见 自己的服务器。

自己的服务器

| 区域 | 说明 |
| dsh-purge | 会话标题旁的按钮,打开或收起右侧栏 |
| 清洗 | 原来的规则设定:补丁、提示词、规则集、Skill |
| 演练台 | 授权后的资产、技能与环境页。未授权时按钮标「未授权」 |
| 补丁 | 分组查看状态,应用、还原或卸载 |
| 提示词 | 编辑 prompt-inject.md,作为会话覆盖段 |
| 自己的服务器 | 每行登记一个 IP 或完整主机名,保存后写入 $DSH_HOME/net-scope-allow.txt |
| 规则集 | 多套 AGENTS.md / CLAUDE.md;启用写入 $DSH_HOME,删除从列表去掉 |
| Skill | 导入压缩包或文件夹到当前宿主官方目录 $DSH_HOME/skills/<id>/SKILL.md(Web / 桌面各用自己的主目录,不写死盘符);命中、加载、/名称 由 DSH 负责。也可自己删该文件夹 |

目录结构

bin/ 是命令行,lib/ 是补丁和演练台,presets/redteam/ 是红队预设,skills/redteam/ 是随包技能,client.js 是侧栏。

运行时文件在 $DSH_HOME:prompt-inject.md、rules/、skills/、net-scope-allow.txt、redteam/。未设 DSH_HOME 时,优先用 dsh 安装目录旁边的 .dsh,再退回 ~/.dsh。Web 和桌面端各用自己那一份主目录。Skill 不进注入段,也不顶替提示词。

使用

CLI
dsh-purge --status
dsh-purge --apply
dsh-purge --revert
dsh-purge --uninstall
dsh-purge --edit

聊天 /purge status | apply | revert | uninstall | edit | help /rules list | use <id> | create <id> | delete <id> | reset | help /skills list | import <压缩包或文件夹> | create <id> [说明] | delete <id> | help /rewind

模型工具 purge_status purge_apply purge_revert

设置页「应用」成功后会自动重启,以加载已改的包文件;也可手动点「重启」。补丁标题下有正式版和测试版。测试版跟 beta 分支。点「切换到正式版」会装回 master,并清掉钉选。正式版里选旧版本会固定在该版本,要回到最新再点「更新」。旧的测试标签不再列出。

输入框旁的「回退一次」和「回退上一轮」跟官方 DSH session.fork({ atSeq }):撤回已进行的那一轮,新会话接上之前的上下文,旧会话归档,那句回到输入框,再发送会重新注入。聊天里 /rewind 同样可用。

极简 / PTC 与标准不一致时:同一任务在标准模式能跑、在极简或 PTC 被拦,通常是 preset 里 run_code 或 plan 拦截句没洗净,或内置 minimal 缺少 agent-instructions。请升到 1.1.61+,完全退出宿主 → 清洗里应用 → 自动重启 → 新开一轮对话 再试;只换 preset 不重应用,旧进程里的补丁不会更新。

响应速度

DSH 会按顺序执行同一批中的 Bash 调用。旧版 dsh-purge 把默认前台等待从 60 秒提高到了 10 分钟,一条慢命令会让后续调用一起等待。补丁 #21 现在把带插件标记的旧值恢复为官方的 60 秒。无标记的等待时间和其他自定义值会保留;无标记的 10 分钟无法可靠地区分是插件旧值还是用户设置。

在 macOS/Linux 的 dsh web 中,如需更快返回工具结果,可在 $DSH_HOME/profiles/web/cordis.patch.yml(通常是 ~/.dsh/profiles/web/cordis.patch.yml)添加下面的条目。已有相同 id 时修改原条目,不要重复添加。这个 profile 覆盖层在内置配置之后加载,后续应用插件会保留它。

- id: bash-sandbox
config:
timeoutMs: 10000

使用标准 jobs 服务且 promoteOnTimeout: true 时,未完成的命令会在 10 秒后返回后台任务 id,并继续运行。用 job_output 读取结果、用 job_kill 停止。这个设置缩短前台等待,不会让命令本身跑得更快。没有 jobs 服务或关闭自动转后台时,超时会终止命令。单次调用传入的 timeoutMs 优先于这里的默认值;run_in_background: true 可立即返回任务 id。

日常任务还可以选择让新会话默认使用 Low 推理:

- id: agent-default-model
config:
provider: deepseek-official
model: deepseek-flash
reasoningEffort: low

重启 dsh web 后加载配置。模型和推理等级默认值只用于新建会话,已有会话请在输入框中选择 Low。插件不会自动修改这些模型偏好。需要深入推理的任务可保留 High;搜索文件时应限定目录,避免递归扫描所有应用目录。

自己的服务器

中国大陆、香港、澳门的地址默认禁止。只有事先登记的那一台可以例外。在对话里说「这是我的服务器」不会放行。密钥和密码也不会。

这一栏在提示词下面。若侧栏里还没有它,先完全退出 DeepSeek Harness,再重新打开。

1. 点会话标题旁的 dsh-purge,停在 清洗。
2. 往下滚过 提示词,下面就是 自己的服务器。
3. 每行只写一台,用下面三种写法之一:
- 203.0.113.10:一个 IP。
- my-vps.example.com:一个完整主机名。保存后,这个主机名当时解析出来的地址也会放行。
- alice@my-vps.example.com:账号只用来认出这种写法,不能证明这台机器属于你。
4. 点 保存名单。名单写在 $DSH_HOME/net-scope-allow.txt。
5. 密钥、密码、网段和通配符会在保存时丢掉。没有写进名单的大陆、香港、澳门地址仍然禁止。

上面的 203.0.113.10 和 example.com 只是写法示例,不是放行地址。把它们换成你自己的那一台再保存。

本地校验

node --check lib/index.js
node --check lib/core.js
node --check lib/rewind.js
node --check lib/skills.js
node --check client.js

工作原理

应用,启动时或手动点「应用」:

flowchart TD
A["启动或点应用"] --> B{"补丁已经生效?"}
B -->|是| C["跳过"]
B -->|否| D["备份原件为 .dshpurge.bak"]
D --> E["按补丁列表替换对应文件"]
E --> F["覆盖 shim"]
F --> G["注入插件加密默认(提示词框默认显示的那份)"]

每次会话的覆盖:

flowchart TD
A["重启或新会话"] --> B["注入插件加密默认,不必点保存,不读宿主磁盘"]

每一轮的提示词注入与规则集决策。左边三个输入就是你在 dsh-purge 面板里控制的东西,虚线表示它们各自驱动哪一步判定:

flowchart TD
L["规则库:启用某个规则集 → 写入 prompt-inject.md"]
W["本地规则:勾选当前目录的 AGENTS.md / CLAUDE.md"]
P["工作区策略:strict / fallback / always"]

A["新一轮开始"] --> B{"prompt-inject.md 非空?"}
B -->|是| C["注入 = prompt-inject.md (A)"]
B -->|否| D{"当前目录有被勾选且非空的本地 md?"}
D -->|是| E["注入 = 被勾选的 workspace md (B)"]
D -->|否| F["注入 = 插件加密 slot 默认值 (D)"]
C --> G{"Workspace baseline 策略 (C)"}
E --> G
F --> G
G -->|strict| H["去掉 DSH workspace baseline 段"]
G -->|fallback 默认| I{"上面有用户注入内容? (A 或 B)"}
G -->|always| J["保留 DSH workspace baseline 段"]
I -->|是| H
I -->|否| J
H --> K["最终系统提示词"]
J --> K

L -.-> B
W -.-> D
P -.-> G

Skill 不进注入段:

flowchart LR
A["设置页导入或 /skills import"] --> B["写到官方 skills 目录"]
B --> C["由 DSH 加载"]
C --> D["卸载插件不删用户 Skill"]

还原

- 每个目标文件在应用前备份为 <文件>.dshpurge.bak。
- 「还原」或 /purge revert 用备份覆盖回去并删除备份;没有备份时去掉 shim 里由本插件写入的行。
- prompt-inject.md 是用户文件,还原时保留。
- 「卸载」会先还原(若已应用),再删除注入文件、规则库和插件本身。
- 重复应用是幂等的。

路径探测

宿主面先判断 web / desktop(预留 gui / tui,尚未单独适配时回退 web)。

Web:

1. DSH_HOME / DSH_BASE
2. dsh 启动器旁的 .dsh
3. npm prefix -g / npm root -g
4. 嵌套 @deepseek-ai/dsh/node_modules/@deepseek-ai
5. 系统默认 ~/.dsh

官方桌面: 只改当前正在运行的官方桌面安装。点「应用」成功后会自动重启一次。社区桌面端不维护。

找不到目标时提示设置 DSH_BASE,不改文件。

更新

每一版改了什么、安装包在 Releases。发新版时把 package.json 的版本号改掉,中英文说明写进 release-notes.md,推到 master 就会自动打包。同一版本再推送不会重复发包。

说明

- 改动范围是本机 @deepseek-ai/* 包里的渲染文案、默认策略和执行逻辑,以及用户目录下的覆盖文件与规则集。
- 升级后原文对不上会显示跳过,这次应用仍算完成,不会乱改。
- 不改动非 @deepseek-ai 的第三方插件源仓库(启动时的 CMD 无感会尽力修补已装的 doctor / market / 梁神 / mnemon,属运行时补丁)。
- 安装走 npm 包名 dsh-purge:dsh plugin --profile web add dsh-purge 或 dsh plugin --profile desktop add dsh-purge。当前目录已是本仓库时 add .。registry 上不去再加 master.tar.gz。插件市场一键安装走同一个 npm 包。

感谢 LINUX DO 社区
预览分享卡片长什么样 ↓Potato1008ypy/dsh-purge-0.2.1rc2-fix
分享 · DeepSeek Harness Hub
Potato1008ypy/dsh-purge-0.2.1rc2-fix

DeepSeek Harness 破甲:让所有模型都能破甲,不同模型可换不同提示词;默认提示词面向国模「小码酱」。Jailbreak for every model — swap prompts per model.

这是你的仓库?认领条目

回到顶部