YuJunZhiXue/dsh-purge
DeepSeek Harness 破甲:让所有模型都能破甲,不同模型可换不同提示词;默认提示词面向国模「小码酱」。Jailbreak for every model — swap prompts per model. 求 Star 收藏 ⭐ 如要二开,请查看署名要求部分
About YuJunZhiXue/dsh-purge
YuJunZhiXue/dsh-purge is an open-source project on GitHub, mainly written in JavaScript. DeepSeek Harness 破甲:让所有模型都能破甲,不同模型可换不同提示词;默认提示词面向国模「小码酱」。Jailbreak for every model — swap prompts per model. 求 Star 收藏 ⭐ 如要二开,请查看署名要求部分 It currently holds 12,731 stars and 2,818 forks with 12 open issues, and was last pushed on 2026-10-28 (repository created 2026-08-19).
Project Overview
Git Homed tracks it on the Today's Trending board, currently at rank #9 with 1,128 new stars today.
GitHub Repository Details
README
⚔️ DeepSeek Harness cybersecurity red-team tool (dsh-purge)
Version 1.1.81
DeepSeek Harness jailbreak: every model, swap prompts per model. Default prompt for 小码酱. Please star ⭐ If you build on this, see Attribution required.
A note from the author
People have been selling this open-source work in the open. After that, the author was asked to come in and talk. No need to spell out the rest. Read between the lines.
From now on the public internet is closed. The open-source build only allows local lab IPs: loopback and RFC1918. Domains are resolved first (including hosts); every answer must be private or loopback. A hosts trick that points .lab at a public IP, a failed lookup, or a mixed public answer is blocked. Game cheats are forbidden (aimbot, wallhack, memory edits against a game, anti-cheat bypass); the prompt and the session gate both stop them. This build does not ship the skill library or the knowledge base.
The original build may not be resold. Charging for it, skinning it, or hawking it in groups is not allowed. Forks are fine, but you must attribute and name the source: YuJunZhiXue/dsh-purge. Hide the source or pass it off as your own, and you are on the other side.
The author's personal channel: t.me/LLM_PoJia. Notes and updates show up there.
Contents
- A note from the author
- What this is
- Attribution required
- License
- Supported hosts
- Install
- Preview
- Usage
- How it works
- Restore
- Releases
What this is
dsh-purge is a cybersecurity red-team plugin for the official DeepSeek Harness already installed on your machine. 1.1.81 targets DSH 0.2.1-rc.2 (0.2.0 still works). DSH 0.2.1-rc.3 and newer RCs are not supported. Official Web (dsh web) and the official desktop EXE are both supported. Install and Apply them separately.
Harness does more than forward a prompt. It rewrites prompts, approval gates, sandbox policy, and session migration at runtime. Asking only “will the model answer” treats a host-layer block as a model refusal. This plugin separates those two layers on your own install, for controlled evaluation and for seeing which default policy is too tight.
| You get | What it does |
|---|---|
| dsh-purge dock | A button beside the session title opens the right dock. Two pages: Clean and Drill |
| Clean | Grouped patch status, Apply / Restore / Uninstall, prompt editor, multiple rule sets |
| Drill | Built into the stable release. After authorization: assets and the local environment. This build does not ship skills or the knowledge base. Local lab only |
| Host policy | Default copy, permission policy, and tool limits. Official capabilities stay. No second invented identity |
| On start | Checks and reapplies. After npm overwrites node_modules, you do not hand-edit files |
No hardcoded drive letters. It looks at $DSH_HOME, .dsh next to the dsh launcher, then ~/.dsh. It does not patch the Harness source tree. Apply on the Clean page of dsh-purge is what writes the changes. Identity comes from the encrypted prompt shipped in the plugin, the text the prompt box shows by default. The host prompt file is not read.
It only touches the official @deepseek-ai packages and local config on the user's machine. It is not a public scanner and not an attack kit for third-party sites. The repo does not ship malware, unauthorized-exploit scripts, or payloads aimed at the public internet.
---
The original may not be resold. Forks must attribute.
Attribution required
The original build may not be resold. No paid resale, no skinned store listing, no hawking it in groups.
Forks must attribute and name the source repository: YuJunZhiXue/dsh-purge. Same if you borrow the name, ideas, code, or prompts.
Hiding the source, passing it off as your own, or reselling the original will be pursued.
License
This repo is Apache License 2.0. Forks and redistributions must keep the copyright notice and NOTICE, and name YuJunZhiXue/dsh-purge. The original may not be resold.
---
⚠️ Strict legal and compliance disclaimer
Disclaimer: This is a non-profit open-source project. It follows applicable laws and the rules of the platforms it uses, and is intended only for learning and research. Do not use it for any illegal or non-compliant purpose; the user bears any resulting consequences.
Zero-tolerance statement: This project opposes and forbids any illegal activity. The authors do not support, encourage, or assist unauthorized network attacks, exploit use, data theft, unlawful intrusion into computer information systems, or generation of illegal or prohibited content. Anyone who uses this project for crime is solely responsible under the law. The authors have no liability.
1. This repository contains no illegal material. The published code, docs, patches, and default prompt are not malware, backdoors, unauthorized pentest kits, ransomware, credential-stuffing scripts, or attack payloads aimed at the public internet or third-party systems. The project does not supply illegal content and does not incite, organize, or assist crime.
2. Local official Harness only. Security-eval patches and prompt injection run only on the official DeepSeek Harness already installed on the user's machine (@deepseek-ai packages, local profile / $DSH_HOME). The target is the user's own official local software, not someone else's website, server, account, or information system.
3. Eval patches do not attack the public internet. Apply, inject, revert, and uninstall stay in local files and local processes. They do not scan, probe, intrude, or send attack traffic to any public host or unauthorized system. Do not use this project as a jump host against the public internet. If "check for updates" is on, the plugin may only contact this plugin's own GitHub repository to compare versions. That is not an attack on third-party systems and is not authorization to penetrate anything.
4. Lawful, controlled scope. This project is an aid for red-team research and robustness evaluation on an official Harness the user is entitled to administer. Do not run it against targets without the owner's lawful written authorization, public online systems, or production workloads. Testing must stay on the authorized local official Harness, offline local synthetic fixtures, authorized cybersecurity ranges, and compliant lab environments.
5. The open-source build is local-lab only. Attack tasks only allow loopback and RFC1918 addresses. Domains are resolved, then judged by IP; suffixes are not an allow list. A public IP, a name that resolves public, a failed lookup, or a hosts entry that points a lab name at the public internet is not an exception. A key, a password, a network range, a wildcard, or a claim made in the conversation does not add an exception. Game cheats are forbidden. This build does not ship the skill library or the knowledge base.
6. Forbidden uses. Users must not use this project, directly or indirectly, to violate the following (each must be followed; no excuse to evade):
- Criminal Law of the People's Republic of China
- Cybersecurity Law of the People's Republic of China
- Data Security Law of the People's Republic of China
- Personal Information Protection Law of the People's Republic of China
- and other applicable laws, regulations, and supervisory rules;
- Also forbidden:
- Unauthorized intrusion or attacks on public or private computer information systems; extortion, sabotage, credential stuffing, or spreading malicious payloads;
- Inducing, generating, or spreading any content the law forbids, including threats to national security, terrorism, violence, pornography, gambling, fraud, and privacy or intellectual-property infringement;
- Violating the model provider's terms of service and acceptable-use policy.
---
Supported hosts
1.1.81 targets DSH 0.2.1-rc.2. 0.2.0 still works. Do not apply it to 0.1.x.
- dsh 0.2.1-rc.2 (official desktop / official
dsh web): use 1.1.81. Fixes{{cwd}}/[cwd]crash, patch #40 match, droppedtoolFilter, hostdsh-toolsresolve, hostFs fd, desktop helper self-kill,file:archive update, Ctrl+Enter steer. - dsh 0.2.0-rc.2: use 1.1.40 or newer; this line also installs.
- dsh 0.1.7 (incl. rc.1 / rc.2): use 1.1.39 or older — pick the tag on Releases.
- dsh 0.2.1-rc.3 / rc.4 and newer are not supported. Unmatched patches stay pending or skipped; nothing is rewritten blindly. Stay on 0.2.1-rc.2.
---
Install
Do not use the plugin marketplace. One-click install on dsh-plugin.org or in Settings → Plugin Market fails with already queued: dsh-purge and never runs a command. The name is not on the npm registry, so do not pnpm add dsh-purge.
Quick start
Have dsh on PATH? One command, one restart, one click. Run the line for the host you open (the desktop EXE is the same with desktop instead of web):
# Official dsh web
dsh plugin --profile web add https://codeload.github.com/YuJunZhiXue/dsh-purge/tar.gz/refs/heads/master
Official desktop EXE
dsh plugin --profile desktop add https://codeload.github.com/YuJunZhiXue/dsh-purge/tar.gz/refs/heads/master
1. Fully quit and reopen the host you installed into. Web: stop dsh web and start it again. Desktop: quit the tray icon too, then open the exe.
2. On that host, click dsh-purge beside the session title → Clean → Apply. A successful Apply restarts the host once.
Done — verify with /purge status in chat. If pnpm asks about build scripts, or anything below does not appear, follow the step by step.
Step by step
Step 1 — Pick your host. Official dsh web and the official desktop EXE are installed and patched separately; only install into the host you actually open.
| What you run | Profile | Install command |
|---|---|---|
| Official dsh web | web | the web line in Quick start |
| Official desktop EXE | desktop | the desktop line in Quick start |
Step 2 — Install the plugin. Use the codeload.github.com URL exactly. Do not use github.com/.../archive: that 302 makes pnpm fail with fetch failed.
Have dsh? Run the Quick start line for your profile. If this directory is already a clone, use . instead of the URL.
pnpm only (no dsh required): run this inside the profile you actually use, not the repo root.
cd "$DSH_HOME/profiles/web" # desktop: profiles/desktop
pnpm add https://codeload.github.com/YuJunZhiXue/dsh-purge/tar.gz/refs/heads/master
Windows PowerShell:
cd "$env:USERPROFILE\.dsh\profiles\web" # desktop: profiles\desktop
pnpm add https://codeload.github.com/YuJunZhiXue/dsh-purge/tar.gz/refs/heads/master
pnpm add and dsh plugin add fetch the package; postinstall writes dsh-purge into dsh.profile.bundles and adds a body insert in the profile cordis.patch.yml. Without that insert the host never loads the plugin and no button appears.
Expected result: node_modules/dsh-purge/package.json exists, "dsh-purge" is in that profile's bundles, and cordis.patch.yml has an id: dsh-purge insert.
- pnpm 11/12 skips install scripts (
ERR_PNPM_IGNORED_BUILDS) unless you allow the build:
pnpm add --allow-build=dsh-purge --allow-build=dsh-purge@https://codeload.github.com/YuJunZhiXue/dsh-purge/tar.gz/refs/heads/master https://codeload.github.com/YuJunZhiXue/dsh-purge/tar.gz/refs/heads/master
Already installed, warning only — the full specifier is required (name-only leaves "set this to true or false"):
pnpm approve-builds dsh-purge@https://codeload.github.com/YuJunZhiXue/dsh-purge/tar.gz/refs/heads/master
If bundles / insert are still missing:
node node_modules/dsh-purge/scripts/ensure-profile-bundle.mjs
- If neither
dshnor pnpm is available, jump to Manual install. - On the desktop client you can also click the button (
dsh://deep link; it still downloads the same tarball).
Step 3 — Restart the host. Adding the plugin to a profile does not patch @deepseek-ai by itself. Fully quit and reopen the host you just installed into (Web: stop dsh web and start again; Desktop: quit the tray icon too, then open the exe).
Expected result: dsh-purge stands beside the session title. Missing? Jump to Step 5.
Step 4 — Apply and verify. On that host, click dsh-purge beside the session title, open Clean, and click Apply. It is not on the host Settings page. A successful Apply restarts once; it does not restart if it did not finish. Web controls affect Web only; desktop controls affect the desktop app only. Do not Apply one host from the other.
Expected result: /purge status in chat prints DSH_HOME and the patch list — the path should be the home you actually run. Optional packages that are not installed (liangshen) show as skipped and do not block Apply.
Step 5 — Troubleshooting. Jump here only when a step above did not end with its expected result.
- No button beside the session title. Run
dsh --dump-config(ordsh --profile desktop --dump-config) and look for a body rowid: dsh-purge(notdsh-purge-redteam). If it is absent, runensure-profile-bundle.mjs(Step 2), then fully quit and reopen the host. After this version, a live red-team child entry also writes the missing insert on startup — quit and reopen once more.entry "redteam-store" not foundat the top is leftover from an old red-team package and can be ignored. - The market says
already queued: dsh-purge. Stop clicking the market; usedsh plugin addor pnpm from Step 2. If the CLI also says it is already there, remove and re-add, then redo Step 3:
dsh plugin --profile desktop remove dsh-purge
dsh plugin --profile desktop add https://codeload.github.com/YuJunZhiXue/dsh-purge/tar.gz/refs/heads/master
pnpm only:
cd "$DSH_HOME/profiles/desktop"
pnpm remove dsh-purge
pnpm add https://codeload.github.com/YuJunZhiXue/dsh-purge/tar.gz/refs/heads/master
Swap desktop for web on Web.
Advanced
Hand this to an assistant. Paste the block below to a local assistant. It should only run the install command — no disk scan, no other edits, no Apply, no restart.
For AI assistants (install only)
Install the DeepSeek Harness plugin dsh-purge into the Web profile only. Do not scan the whole disk, do not read or edit other files, do not apply settings, and do not restart the app. Do not install into the desktop profile. Do not use the plugin marketplace. The name is not on the npm registry; do not pnpm add dsh-purge.
Web (official dsh web)
If dsh is on PATH:
dsh plugin --profile web add https://codeload.github.com/YuJunZhiXue/dsh-purge/tar.gz/refs/heads/master
If dsh is missing and pnpm is available, cd into $DSH_HOME/profiles/web (often ~/.dsh/profiles/web) and run:
pnpm add https://codeload.github.com/YuJunZhiXue/dsh-purge/tar.gz/refs/heads/master
If this directory is already a clone and dsh exists, use dsh plugin --profile web add .. If neither dsh nor pnpm is available, tell the user and stop.
After the command finishes, tell the user to fully quit and restart dsh web, then open dsh-purge beside the session title and Apply on Clean. Then stop.
Manual install. Use this when the command fails or dsh is not on PATH. Edit only the profile for the host you run — do not touch the other, and do not delete existing bundles.
Full manual steps
1. Find the $DSH_HOME this host uses. A real home is named .dsh (official EXE sometimes dsh-home), contains profiles, and has at least one profiles//package.json. Check in order: DSH_HOME env → .dsh next to the install root (portable) → %USERPROFILE%\.dsh or ~/.dsh → %APPDATA% / %LOCALAPPDATA%\DeepSeek Harness\dsh-home. Confirm: profiles/web/package.json has "name": "dsh-profile-web" (or dsh-profile-desktop). Machines often have two homes — use the one that belongs to the host you actually start.
PowerShell to list candidates:
$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. Put the plugin at $DSH_HOME/plugins/dsh-purge (folder must be named dsh-purge, with a package.json whose "name" is dsh-purge).
git clone https://github.com/YuJunZhiXue/dsh-purge.git "$DSH_HOME/plugins/dsh-purge"
Without git: download master.tar.gz, extract, rename dsh-purge-master → dsh-purge, and place it under plugins. If you already have a clone, copy the whole tree — not a few .js files.
3. Edit only that profile's package.json — back it up first. Web → $DSH_HOME/profiles/web/package.json; desktop → $DSH_HOME/profiles/desktop/package.json. Add only two things, keeping every existing dependency and bundle:
1. In dependencies, add "dsh-purge": "file:../../plugins/dsh-purge"
2. At the end of dsh.profile.bundles, append "dsh-purge" (skip if already there)
{
"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"
}
}
}
Keep JSON valid (comma before the new item, none after the last). Do not switch file:../../plugins/dsh-purge to an absolute path, do not touch patchReload or other plugins, and do not list "dsh-purge" twice. On desktop, if there is no dsh-web-app row, do not add one.
4. Run pnpm install in that profile only (cd into the profile dir, not the repo root or $DSH_HOME):
cd "$DSH_HOME/profiles/web" # or profiles/desktop
pnpm install
Success: profiles//node_modules/dsh-purge/package.json exists. If pnpm is missing, use the Node / pnpm shipped with official dsh; on Could not resolve, re-check the file: path; on a JSON error, fix commas or restore the backup.
5. Fully quit that host, reopen it, then Apply — Step 3 and Step 4 above. The card appears beside the session title; click Apply (or /purge apply) on that host only. If the card is missing, you likely edited the other .dsh — go back to step 1.
Uninstall. dsh-purge beside the session title → Clean → Uninstall. Confirm the dialog: it reverts any applied patches, restores the original Harness, and restarts the current host. Disable or uninstall also resets an agent-preset default that still points at redteam back to standard, so the host can create sessions after the preset is gone.
Uninstall commands and config
# or from a terminal / chat
dsh-purge --uninstall
/purge uninstall
Plugin config lives in cordis.patch.yml (postPrompt is empty by default):
```yaml
- insert:
- id: dsh-purge