メインコンテンツへスキップ
K

dsh-eni (armor-break)

konshinhaoshin/dsh-eni/packages/armor-break

モデル別の jailbreak armor です。設定テーブルでモデルパターンを呪文で有効化します(呪文25種:11モデルファミリー向け20種に、モデル非依存 armor、上流の preferences file、重ねられる persona layer 3つを追加)。注入される正確なブロックをプレビューし、有効化したモデルの system prompt のみに書き込み、他のモデルは変更しません。

インストール

dsh plugin --profile web add github:konshinhaoshin/dsh-eni

このプラグインはリポジトリの packages/armor-break サブディレクトリにあります。

README

dsh-eni

Jailbreak armor for DeepSeek Harness, switched per model.

armor-break is a DSH plugin bundle. You arm a model, pick a spell, and that model gets the spell in its system prompt on every turn. Every other model keeps the deployment's own house style. The mapping lives in Settings → Armor Break; nothing is armed until you arm it.

Spell library curated from Goochbeater/Spiritual-Spell-Red-Teaming — 25 spells across 13 model families, plus persona layers.

中文说明:packages/armor-break/README.zh.md

Why a plugin instead of pasting a prompt

Pasting a jailbreak into one chat works until you switch models, start a subagent, or open a new session. This turns the prompt into profile configuration:

  • Per model. Patterns (claude, anthropic/opus-4-5, qwen*, *-pro) arm exactly the routes you name. Unarmed models get a byte-identical prompt.
  • Routed model, not creation model. The plugin resolves the model the request will route to, so a mid-session switch arms the next turn instead of lagging behind it.
  • Persisted. Writes land in the profile's cordis.patch.yml: live immediately, survives restarts and upgrades.
  • Two placements. After the persona (KV-cache friendly default) or right after the harness identity for a harder frame.
  • Preview before saving. The page renders the exact block client-side, from the same rules the Host applies.

Using it

  1. Settings → Armor Break.
  2. Tick a configured model and choose a spell. Unknown models come in through Custom pattern.
  3. Read Show the block if you want to check the wording.
  4. Save.

Un-tick the row, or delete the pattern, and save to disarm.

The settings section

How it works

The Host half registers two system-prompt sections — one just after the harness identity (order −500), one after the persona suffix (order 10300). Each renders text only when its position is selected and the current route matches an armed pattern; otherwise it returns an empty string, which the prompt renderer drops. Nothing touches the system-prompt/assemble waterfall, so other plugins keep their assembly untouched.

Matching ranks provider/model above an exact model id, above a substring, above a glob, and the most specific armed pattern wins. The block is framed as a standing instruction and ends on the repository's soft push line unless you turn those off.

The Config fields are volatile, so the page edits a live configuration instead of remounting the plugin, and every save is one atomic settings.mutate fenced by the revision it read.

Layout

packages/armor-break/
  index.js            Host half: route resolution, pattern matching, block rendering, sections
  client.js           Settings section: model table, spell pickers, preview, staged save
  spells/             manifest.json + 25 spells, one file each
  cordis.patch.yml    Bundle patch inserting the row
  tools/              self-test, render test, catalog build, Chromium UI check
  README.md           Package docs (English)
  README.zh.md        Package docs (Chinese)
tools/extract_asar.py One-off extractor for reading an installed Harness app.asar

Installing

The profile must reference the bundle from a workspace checkout:

// ~/.dsh/profiles/<profile>/package.json
"dependencies": { "@local/dsh-armor-break": "link:/absolute/path/to/armor-break" },
"dsh": { "profile": { "bundles": ["...", "@local/dsh-armor-break"] } }

then pnpm install in the profile directory and restart once. The row itself comes from the bundle's own patch; the Settings section appears as soon as the profile serves the plugin.

Costs

A spell repeats on every request while armed and sits in the system prompt. lite spells are a few hundred tokens, full LIME dumps run to roughly ten thousand — pick per model, and mind subagents, which inherit the armor of the model they run on.

Verification

node packages/armor-break/tools/selftest.mjs       # Host matching, placement, routing, unknown spells
node packages/armor-break/tools/render-test.mjs    # Client render from a fake context
pwsh -File packages/armor-break/tools/verify-profile.ps1 -Port 7936
node packages/armor-break/tools/ui-check.mjs "<bootUrl>" out.png --save   # real Chromium pass

Credits

Spell text belongs to Goochbeater/Spiritual-Spell-Red-Teaming and its author (ENI), including the credits it records. This repository curates, wraps and switches it.

License

MIT © 2026 Konshin Haoshin.

関連プラグイン