Introduction¶
The plugin model of DeepSeek Harness is “everything is a plugin”: the host is responsible for forwarding models and executing tools, while plugins can modify prompts, approval gates, and sandbox policies at runtime. People conducting red team evaluations often encounter a problem—by only looking at “whether the model answers,” they mistakenly attribute host-layer interception to model refusal. To separate these two layers on your own machine for controlled evaluation, you need a tool capable of applying patches and restoring the state.
The upstream YuJunZhiXue/Xsdsh-purge is a mature implementation on this path, but it is pinned to the official dsh 0.2.1-rc.5 (the web profile for dsh web, and the desktop profile for the desktop EXE). The newly released DSH NEXT follows a different line: the core is 0.2.1-rc.4, and the shell is DSH NEXT 2.0.21-next. The patch list and host directory structure are different, so the upstream engines.dsh exact copy targeting rc.5 cannot be used.
The Xsdsh-purge-next introduced below is designed to fill this gap: a core simplified version with the package name Xsdsh-purge-next, an independent state directory, and specifically designed to run on DSH NEXT / rc.4.
What is it¶
Xsdsh-purge-next is a DSH client plugin maintained by wodaimnd, with repository https://github.com/wodaimnd/Xsdsh-purge-next, package version 4.6.11-next.2, and protocol MIT. The author field in the repository’s package.json is listed as Kewei Chen <wodaimnd@users.noreply.github.com>. The repository was created on 2026-11-04 and currently has only one commit (chore: publish Xsdsh-purge-next v4.6.11-next.2).
Its positioning is defined by its own description:
Xsdsh-purge-next core simplified version (DSH NEXT / rc.4 specific; independent package name, module ID, and state directory)
The three words correspond to specific fields in package.json: the package name Xsdsh-purge-next (different from the original Xsdsh-purge), the patch file inside dsh.bundle.bundle is this repository’s own cordis.patch.yml, and the state directory dshNextCompat.dataDir is Xsdsh-purge-core. The purpose of doing this is to allow this copy to coexist with the original version without overwriting each other.
It is classified as the “client” category in the community directory, with 1 GitHub star and 1 fork. The directory page is https://www.skillhub.cn/plugins/wodaimnd/Xsdsh-purge-next. It is a community site with no official affiliation to DeepSeek.
Which host it changes for¶
This section must be clearly stated, otherwise it is easy to install incorrectly. The dshNextCompat in package.json specifies the target environment very precisely:
"engines": ">=0.2.1-rc.0 <0.3.0",
"verifiedRuntime": "0.2.1-rc.4",
"verifiedShell": "DSH NEXT.exe (desktopVersion 2.0.21-next)",
"dshTarget": "0.2.1-rc.4",
"flavor": "core",
"coreBuildFrom": "4.6.11-next.1",
"dataDir": "Xsdsh-purge-core",
"profileScope": "next",
"appTarget": "DSH NEXT 2.0.21-next (core 0.2.1-rc.4)"
engines.node requires >=18, and peerDependencies is @deepseek-ai/cordis: ^4.0.1.
The coexistence relationship is defined by two fields:
coexistence: The original version runs thedesktopprofile (rc.5), while this copy runs thenextprofile (rc.4); the state directoriesXsdsh-purge-coreandXsdsh-purgeare physically isolated.hostScope:applyonly writes to the installation root where the current process resides, avoiding modification of another DSH installation simultaneously;selfInstallHandoffensures that within Electron, the handoff is fixed to take the current process’sresources/app.asar.
Host gaps that have been identified are also noted in the fields: in shellPatches, entries 45/46/82 have no corresponding implementation in rc.4, and the semantics of 83/84 in rc.4 have already been natively covered by the stopping judgment of fail(). Therefore, these entries are downgraded to optional/knownGap.
What capabilities are built-in¶
keptForCore lists the retained pages: Cleaning, Workbench, Mode Prompts, Appearance, Red Team, Reverse Engineering, and Glass Switch. removedFeatures includes wallpapers, background-music, and desktop-pet; the corresponding paths such as lib/wallpapers.js, lib/cat.js, lib/pet.js, and lib/ui/pet/90-pet.js have been removed. Moved from upstream and following the core path, only evaluation-related items are kept.
Module entry points can be found in exports, with independent entry points for Red Team and Reverse Engineering:
"./redteam": "./lib/redteam/index.js",
"./redteam/store": "./lib/redteam/store.js",
"./redteam/ui": "./lib/redteam/ui.js",
"./redteam/tools": "./lib/redteam/tools.js",
"./reverse": "./lib/reverse/index.js",
"./reverse/store": "./lib/reverse/store.js",
"./reverse/ui": "./lib/reverse/ui.js",
"./reverse/tools": "./lib/reverse/tools.js"
files includes agents, presets, skills, bin, cordis.patch.yml, and screenshots.json. There are three binaries:
"bin": {
"Xsdsh-purge-next": "bin/Xsdsh-purge.js",
"dsh-locate-harness": "tools/deepseek-harness-locator.mjs",
"dsh-locate-harness-cmd": "tools/find-deepseek-harness.cmd"
}
The client injection targets are four packages: @deepseek-ai/dsh-client-connection, dsh-client-locale, dsh-client-ui-slots, and dsh-client-ui-settings, with the platform field set to web. The source tree includes test cases such as asar-swap-restart, reverse-preset, and redteam-auth under test/, and scripts like yarn gate/gate:fast are used to run linting, type checking, UI boundary checks, and packaging verification.
Installation and Enabling¶
First, a clarification: this fork does not rewrite the README. The README.md / README.zh-CN.md in the repository remains the full text of the upstream YuJunZhiXue/Xsdsh-purge (including sponsorship, notice on commercial violation, and legal disclaimers). Therefore, the code snippet below is the command for Xsdsh-purge provided by the upstream README, targeting the official dsh, not the deployment method for this copy. Please pay attention when referencing this.
dsh plugin --profile web add Xsdsh-purge
dsh plugin --profile desktop add Xsdsh-purge
However, the installation source declared by this copy itself is in the dsh.install field of package.json:
"install": {
"preferred": "tarball",
"tarball": "https://github.com/YuJunZhiXue/Xsdsh-purge/archive/refs/heads/master.tar.gz",
"zip": "https://github.com/YuJunZhiXue/Xsdsh-purge/archive/refs/heads/master.zip",
"git": "https://github.com/YuJunZhiXue/Xsdsh-purge.git"
}
This means the declared value points to the upstream repository, not the wodaimnd/Xsdsh-purge-next fork. Before installing, you need to compare the details: if following preferred: tarball, you get the upstream master package; to install this simplified copy, you must replace the package with the artifact from this repository yourself (for example, using local tar packaging or add . methods; the specific commands are not written in the repository). The author did not leave reproducible installation documentation here, which is currently the biggest information gap.
Typical Usage¶
The repository itself does not contain a usage section exclusive to this fork. The verifiable framework consists of the following points:
- The
applyaction follows the patch listcordis.patch.yml, and the write location is determined byhostScope: current-install, modifying only the installation root where the current process resides. - After the patch is applied, the host needs to restart; restore and uninstall also use the same mechanism, with
residueAutoClear: trueused to clean up residues. - The Red Team and Reverse modules are loaded via
./redteam/*and./reverse/*inexports; the “Cleaning / Workbench / Mode Prompts / Appearance / Red Team / Reverse / Glass Switch” listed inkeptForCoreare the visible entry points. - Host location uses
dsh-locate-harnessordsh-locate-harness-cmd, which are two executable entries undertools/.
These four points are derived from the fields and file lists, not from manual testing results.
Applicable Scenarios and Notes¶
Suitable for: Users who want to reuse Xsdsh-purge’s red team and reverse capabilities on DSH NEXT (core 0.2.1-rc.4 / desktop 2.0.21-next) without disturbing the official rc.5 installation on the machine. It is also suitable for those who want to use cordis.patch.yml as a reference for a patch list and perform their own host adaptation.
Things that must be noted:
- Permissions: The plugin runs with the permissions of the current dsh process.
dirModeisresources/app dir patched in place for dsh-desktop-next, andapplydirectly modifies the current installation directory and will restart the host. Before installing, go through the source code andcordis.patch.ymlone by one; do not install if you do not intend to use it. - Source Verification: It has 1 star, only one commit, and inherits documentation from the upstream; it is an early copy.
dsh.installdefaults to pointing to the upstream master, so you must confirm which repository is actually obtained before actual installation. - Attribution and Licensing: The upstream README clearly requires that borrowing names, ideas, code, or prompts must be credited and the source repository specified; commercial use, resale, or selling courses means “the license is void on the spot”. This fork follows these terms.
- Compliance Boundaries: The README states that this project only acts on the official Harness installed by the user on their own machine, prohibiting scanning, probing, or attacking public network targets and unauthorized systems, and also prohibiting running on China mainland, Hong Kong, and Macao IP segments. Read the ten disclaimers yourself before using.
- This is a community-maintained third-party copy; the README already states that there is no affiliation, no commercial cooperation, and no official endorsement with DeepSeek.
Summary¶
Xsdsh-purge-next does a very focused thing: it trims Xsdsh-purge down to a core simplified version, changes the package name, module ID, and state directory to be independent, allows it to run on DSH NEXT / rc.4, while coexisting with the original rc.5 on the machine. To use it for evaluation, first spend time verifying the installation source and every change in cordis.patch.yml.
- Directory page: https://www.skillhub.cn/plugins/wodaimnd/Xsdsh-purge-next
- Repository: https://github.com/wodaimnd/Xsdsh-purge-next
- Upstream project: https://github.com/YuJunZhiXue/Xsdsh-purge