DSH Hub

WM-CODER/custom-first-control-prompt

dsh-custom-first-control-prompt

UIWeb UI24 GitHub stars· updated 2026-08-21

DeepSeek Harness plugin for insert custom prompt

Install

npx @deepseek-ai/dsh plugin --profile web add github:WM-CODER/custom-first-control-prompt

Restart `dsh web` after install. Bundle APIs can change during the developer preview.

README badge

dsh-custom-first-control-prompt DSH Hub badge
[![DSH Hub](https://dshhub.dev/badge/custom-first-control-prompt.svg)](https://dshhub.dev/plugins/custom-first-control-prompt)

Paste this into your README. The star count updates with every catalog sync.

From the README

Excerpt from WM-CODER/custom-first-control-prompt, cleaned of badges and images.

@wm-coders/dsh-custom-first-control-prompt

English | 中文

Deployment-configured prompt prefix. Ordered system-prompt sections render ahead of the deployment persona, and configured reference user/assistant exchanges are injected into every ordinary conversation request — as real alternating messages prepended on the request path (llm/stream interception, zero session-log writes). Static content renders byte-identically on every request, preserving prefix-cache reuse.

Installation

# From GitHub (recommended — built artifacts committed, no build approval needed)
dsh plugin --profile web add github:WM-CODER/custom-first-control-prompt

# From npm
dsh plugin --profile web add @wm-coders/dsh-custom-first-control-prompt

# From local directory (development)
dsh plugin --profile web add ./path/to/custom-first-control-prompt

After installation, restart the web app (dsh --profile web or run restart-web.ps1 / restart-web.sh).

To uninstall:

dsh plugin --profile web remove @wm-coders/dsh-custom-first-control-prompt

Install / deployment / debugging obstacles and test methods: DEBUG-NOTES.zh.md (in Chinese; web fail-loud root causes, duplicate-id inserts, API verification chains — all paths scrubbed). One-command install: INSTALL.md. Full cross-machine walkthrough: INSTALL-FULL.zh.md (Chinese).

Configuration

- id: custom-first-control-prompt
  name: '@wm-coders/dsh-custom-first-control-prompt'
  config:
    sections:
      - name: house-rules
        order: -50
        text: |
          …stable system text…
    history:
      - user: …
        assistant: …
    includeSubagents: false
KeyDefaultMeaning
sectionsOrdered system-prompt fragments; absent or empty registers nothing.
sections[].namerequiredEntry name; the registry sees custom-first-control-prompt:<name>.
sections[].orderrequiredRender position among all sections. Factory convention: harness identity −100, persona 0, tool guidance 100–199; values below 0 prepend ahead of the persona.
sections[].enabledtruefalse keeps the entry in configuration without registering it.
sections[].textrequiredStatic section text; keep it free of volatile values — any change breaks prefix reuse from the first changed token.
historyOrdered user/assistant reference exchanges injected ahead of every ordinary conversation request; both texts must be non-empty and free of reserved tags (case-insensitive: <user>, <assistant>, <exchange>, <custom-history and all closing tags). Absent or empty injects nothing.
includeSubagentsfalsefalse skips sessions whose header meta marks subagent origin.

Invalid configuration fails plugin load naming the offending entry: empty text, duplicate section names, or a non-finite order. Per-entry section problems (blank/duplicate name, bad order, empty text) and per-pair history problems (empty text, embedded reserved tags) degrade to skipping that entry with a warning instead of failing the plugin tree.

Injection mechanism

The reference exchanges are built once at plugin activation into alternating real Message objects (deep-frozen, shared by reference across requests), then prepended onto every ordinary conversation request by an llm/stream waterfall listener:

Related plugins