Configuring dsh-prompt-enhancer
DeepSeek Harness exposes the plugin settings under Settings → Model and Plugins:
| Area |
Controls |
| Model configuration |
Ordered optimisation model chain, model enablement, thinking toggle, inline connectivity tests, and voice engine settings |
| Optimisation parameters |
Optimisation mode, memory switch, context budget, timeout, output limit, and template |
| Voice recognition |
Cloud Qwen3-ASR or local SenseVoice, global shortcut, local model download, text normalisation, and automatic enhancement |
The local SenseVoice model is optional. Selecting the local engine and choosing Download model downloads the documented 228 MB model with progress reporting.
Commands provided by dsh-prompt-enhancer
DeepSeek Harness manages installation, updates, and removal through its plugin commands. The README documents dsh plugin --profile web update dsh-prompt-enhancer and dsh plugin --profile web remove dsh-prompt-enhancer; removal takes effect after restarting DeepSeek Harness.
The independent restart executor can be called without the web page:
node "<DSH_HOME>\AppData\Local\dsh-prompt-enhancer\executor\0.1.11\lib\updater-host.cjs" --cli restart --service dsh-web --profile web
The plugin can also generate a desktop shortcut from its port-restart settings. The executor supports service restart with process-level fallback.
How dsh-prompt-enhancer behaves
The ✨ action rewrites the current draft, while slash-command prefixes are preserved and only the body is optimised. The voice action detects a pause, recognises speech, optionally normalises it, and inserts the result into the draft. Enhancement history is read and written only while the memory switch is enabled; sending a message clears that chain.
Requirements and limits
DeepSeek Harness must already be installed, and pnpm must be available on PATH. Voice insertion depends on the client injecting inputActions.setDraft: the official web client satisfies this contract, while other clients may degrade or disable the feature. The local engine uses an optional model download rather than bundling the model with the plugin.
Written from the project's own documentation and kept in sync with it. Where the two disagree, the source is authoritative — read the README on GitHub