WoYun520/dsh-purge
Security & PrivacyA DSH plugin that rewrites DeepSeek Harness files to swap in alternative system prompts per model.
A plugin for people who already run DeepSeek Harness and want a different default prompt without editing host files by hand. It is a patch-and-restore tool, not a standalone agent, and the README's own legal framing means you should treat it as an experiment on software you control.
The problem
You open DeepSeek Harness, start a session, and get the host's own default prompt behavior. If you want a different prompt to apply across sessions — a custom ruleset, a project-specific injection, a per-model swap — the normal route is to find the prompt files, edit them, and remember what you changed. That is fiddly, and it collides with host updates. dsh-purge changes that step: a button or --apply backs up the matched files, replaces them and injects an encrypted default prompt, then the host restarts so patched packages load. Reverting puts the backups back.
What's different
The mechanism is file-level patching tied to host versions, not a prompt-overlay API. The README is explicit that version 1.1.71 supports dsh 0.2 only, with 1.1.39 and older for dsh 0.1.7, and that unmatched patches stay pending or skipped rather than being rewritten blindly. Apply is idempotent, each target gets a .dshpurge.bak copy, and uninstall restores before deleting the plugin. There is also a prompt-injection decision per turn: an activated rule library writes prompt-inject.md, local AGENTS.md/CLAUDE.md files in the current directory can be picked up, and a workspace policy (strict / fallback / always) decides the order.
The trade-off is coupling. This is a plugin that edits another application's files, so every DSH release can move the targets. The README already splits compatibility across two dsh lines and asks you to install Web and desktop separately — a Web install does not reach the desktop app. Backups and idempotent apply make the operation reversible under the documented steps, but they are not a guarantee that a future host update leaves your patched state intact; that is upkeep you own.
Who should try it
Good fit: someone already using dsh 0.2 who wants a consistent default prompt across sessions, maintains local rule files per project, and is comfortable following the manual $DSH_HOME steps when the plugin command fails or dsh is not on PATH. The manual path matters because the README notes machines often have two homes and warns you to edit only the profile for the host you actually run.
Poor fit: anyone on dsh 0.1.7 who expects the current line to work — they need an older tag — or anyone who wants a prompt tool that does not touch host files, or who runs both Web and desktop and is not prepared to apply each separately. If you are not already invested in DeepSeek Harness, this project has nothing to offer you.
Requirements and limitations
Node.js 18 or newer, dsh 0.2 (official desktop 0.2.0-rc.2 or official dsh web), and the matching plugin line: 1.1.40+ for 0.2, 1.1.39 or older for 0.1.7. Web and desktop are separate installs, so the upkeep is two profiles, each with its own patch state. The plugin's config sits in cordis.patch.yml, with postPrompt empty by default and flags like autoApplyOnStart and autoUpdateOnStart; deciding whether those should be on is part of the setup.
Uninstall reverts applied patches and restarts the host, and prompt-inject.md is kept as a user file. Reverting uses the .dshpurge.bak copies; if no backup exists, shim lines written by the plugin are stripped. None of this is a promise about what a later dsh update will do to your patched files. Read the project instructions and the manual install steps before applying.
HotRepo's take
HotRepo first recorded this repository on 2026-10-24; it is 4 days old. On the NEW-REPOSITORY board for JavaScript it showed 433 total stars at #7 on 2026-10-25 — a dated snapshot, not a daily growth figure. With no comparable daily-board history, persistence cannot yet be judged from these signals.
The specific thing to verify before applying is whether your installed dsh version matches the plugin line; the README's own version split is the first gate.
Written by AI from the project's README, updated October 25, 2026. The project's own docs are the source of truth.