dsh-custom-mode
Verifieddsh-custom-mode · v1.9.0 · MIT · Web UI
Custom modes and custom prompts for DeepSeek Harness (dsh): edit a mode's system prompt on the settings page (it takes effect on the next model step), choose its base mode, switch plugins row by row, and keep several assistants side by side.
Install
dsh plugin add dsh-custom-mode Confirm the layer applied with dsh --profile default --dump-config — see the install guide.
Source
Tags
Creators
Readme
dsh-custom-mode
The settings-page half of dsh-custom-mode — a Web UI for DeepSeek Harness (dsh) agent modes: choose a mode's base composition, toggle the plugin rows it mounts, and edit its system prompt, which is a plain file the agent loop re-reads before every model step — a save applies on the next step, with no restart and no new session. Several modes ("assistants") live side by side, each with its own prompt.
Searched for as: custom mode · custom prompt · system-prompt editor · multi-mode / several assistants · 自定义模式 · 自定义提示词 · 多助手/多模式.



Install
dsh plugin --profile web add dsh-custom-mode
That one command is the whole install. The package carries the agent preset, and the host half writes it
into $DSH_HOME/.agent-presets/ on first activation — filling in only what is missing, so a prompt.md you
wrote yourself is never overwritten.
To keep the source around as well, clone the repository and run ./install.sh instead; it does the same two
things explicitly, and ./uninstall.sh undoes them (keeping your prompt unless you pass --purge).
The mode is web-profile only: agent-presets, the service that mounts presets at all, ships with dsh's
web profile. In tui / headless this package activates but registers nothing.
Requirements
- dsh
>=0.1.5-rc.2 <0.2.0-0(latest stable0.1.5-rc.2and latest preview0.1.6-alpha.2)** — declared inengines.dshand as an optional peer range. This package never imports@deepseek-ai/dsh; it only reads the host services dsh injects. - No build step, no dependencies: the source is published as-is and uses only Node's standard library.
- The package version is its own line (
1.0.0,1.0.1, …). Which dsh it supports is declared inengines.dsh; see the repository README's "Versioning" section.
Documentation
The full documentation is bilingual in the repository:
- README (English) · 中文说明
- Troubleshooting — every failure that was actually reproduced, with symptoms, cause and a way out
- Measurements — the commands and raw output behind every claim
- Architecture — why this had to be two artifacts, and which host APIs it depends on
Security note
The route this package serves runs the platform's own browser-trust check
(ctx.connection.requestRejection) before anything else and fails closed when that service is
unavailable. Before that check existed, the route could be read and written unauthenticated — see
SECURITY.md for the affected range and
the mitigation.
License
MIT