Back to home@YuJunZhiXue

dsh-purge

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

Stars
250
Language
JavaScript
Created
Aug 19, 2026
Updated
Sep 1, 2026
GitHub repo

Introduction

dsh-purge

dsh-purge

Version 1.3.0

DeepSeek Harness jailbreak (破甲): every model can jailbreak; swap prompts per model. Default prompt for Chinese models — 小码酱. Please star ⭐

GitHub stars MIT license awesome · DSH plugin DSH
Node.js JavaScript

English | 中文

Aligned with dsh 0.1.1-rc.2. On other versions, unmatched originals stay pending or skipped. Nothing is rewritten blindly.


What this is

dsh-purge is a settings plugin for DeepSeek Harness:

  • Updates default copy, permission policy, and tool limits in the installed @deepseek-ai/* packages
  • Adds a Rules card: grouped patches, Apply / Restore, session override editor, multiple rule sets
  • Re-applies on start after an npm upgrade overwrites node_modules
  • No hardcoded drive letters: $DSH_HOME, .dsh next to the dsh launcher, then ~/.dsh

It does not patch the Harness source tree. Use Apply on the settings page.


Preview

The Rules card appears on the dsh web settings page. Switch Light / Ink. Patches are grouped; the count only includes items that actually applied. Rule sets sit in a list above the editor, with Enable and Delete on each row.

Patches

Patches

Rule sets

Rule sets

AreaWhat it shows
Light / Inkcard appearance
Patchesgrouped status, Apply or Restore
Promptedit prompt-inject.md as the session override
Rule setsmultiple AGENTS.md / CLAUDE.md; Enable writes under $DSH_HOME, Delete removes the row

Layout

dsh-purge/
├── lib/
│   ├── core.js               # path detect, patches, backup/restore, shim, override file
│   ├── identity.js           # operator prompt wins over harness persona
│   ├── index.js              # plugin: commands, tools, systemPrompt, HTTP
│   ├── rules.js
│   ├── restart-web.js
│   └── default-prompt-inject.md
├── client.js                 # settings UI
├── bin/dsh-purge.js
├── docs/
│   ├── banner.svg
│   ├── banner-dark.svg
│   ├── appreciate.png
│   └── preview/
│       ├── settings.png
│       └── rules.png
├── cordis.patch.yml
├── package.json
├── README.md
├── README.zh-CN.md
└── LICENSE

Runtime user files: $DSH_HOME/prompt-inject.md, $DSH_HOME/rules/. If DSH_HOME is unset, the launcher-adjacent .dsh wins over ~/.dsh.


Install

Web and desktop install the same plugin into their profile. Restart afterwards; the Rules card shows up on the settings page.

Official CLI

git clone https://github.com/YuJunZhiXue/dsh-purge.git
cd dsh-purge

# Web
dsh plugin --profile web add .

# Desktop
dsh plugin --profile default add .

GitHub zip:

dsh plugin --profile web add https://github.com/YuJunZhiXue/dsh-purge/archive/refs/heads/master.zip
dsh plugin --profile default add https://github.com/YuJunZhiXue/dsh-purge/archive/refs/heads/master.zip

Third-party / plugin market

Install dsh-purge from the Web or desktop plugin settings, or open the repo from awesome-dsh-plugin and run dsh plugin add as above.

Uninstall

Click Restore on the settings page if you need patches undone, then:

dsh plugin --profile web remove dsh-purge
dsh plugin --profile default remove dsh-purge

Plugin config lives in cordis.patch.yml:

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

postPrompt is empty by default.


Verify

  • After restart, the Rules card is on the settings page. Hard-refresh (Ctrl+F5) if the client bundle is cached.
  • Click Apply, then Restart when prompted.
  • /purge status prints DSH_HOME and the patch list.
  • Skipped items are expected when a target file is absent (for example #20 / #21 without dsh-web-fetch-http).

Usage

dsh-purge --status
dsh-purge --apply
dsh-purge --revert
dsh-purge --edit

/purge status | apply | revert | edit | help
/rules list | use <id> | create <id> | delete <id> | reset | help

purge_status   purge_apply   purge_revert

Patched packages load only after a restart. Apply does not restart by itself.


Local checks

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

How it works

Apply (on start or by hand):

patch not applied? ──no──> skip
    │yes
    ├─> backup <file>.dshpurge.bak
    ├─> apply matching replacements
    ├─> override shim (dsh.cmd / dsh.ps1 / unix dsh)
    └─> ensure prompt-inject.md exists (write the default if empty)

Override (each session):

prompt-inject.md has content? ──yes──> write it as a systemPrompt section
           │no
           └─> no override section

Restore

  • Each target is copied to <file>.dshpurge.bak before the first apply.
  • Restore or /purge revert copies backups back and deletes them. With no backup, shim lines written by this plugin are stripped.
  • prompt-inject.md is a user file and is kept.
  • Apply is idempotent.

Path detection

  1. DSH_HOME / DSH_BASE
  2. .dsh next to the dsh launcher (portable install, any drive)
  3. DSH Desktop app.asar.unpacked/node_modules/@deepseek-ai
  4. npm prefix -g / npm root -g
  5. Nested @deepseek-ai/dsh/node_modules/@deepseek-ai
  6. ~/.dsh

If nothing is found, set DSH_BASE. No files are changed.


Notes

  • Scope is rendered copy, defaults, and runtime logic inside local @deepseek-ai/* packages, plus override files and rule sets under the harness home.
  • After an upgrade, unmatched originals surface as pattern_not_found or pending.
  • Third-party plugins outside @deepseek-ai are left alone.
  • The npm package name is not published yet. Install from GitHub or dsh plugin add ..

☕ 赞赏支持 / Sponsor

WeChat appreciate

Built by 小杨 · for DeepSeek Harness


Thanks to the LINUX DO community