Preface¶
DSH’s plugin ecosystem allows splitting common operations into small plugins. For Web GUIs like dsh web, stopping the current conversation generation usually requires moving the mouse to the stop button. dsh-esc-stop compresses this into a keyboard action: double-tap Esc within a session to stop the current turn. It reuses the session.cancel path behind the GUI stop button, so no additional configuration for stopping logic is needed.
What is this¶
dsh-esc-stop is a DeepSeek Harness Web GUI plugin, repository owner 142475, license MIT. Its goal is simple: to allow dsh web to stop the current generation using a shortcut key within an existing session.
This plugin is only applicable to the web profile (dsh web). The tui and headless profiles have their own stop keys, so this plugin is not suitable to replace them.
Core Features¶
- Double-tap
Escat any location within the session; the interval between the two presses must be within 400ms. - Stops the currently running turn upon triggering.
- Equivalent to the built-in stop button, cancelling the current turn via
session.cancel. - Pending
inboxmessages are preserved and restored later in FIFO order. - Ignores
e.repeat; single clicks, long presses, or holding downEscwill not trigger. - Re-timers if the interval between the two
Escpresses exceeds 400ms.
Installation and Activation¶
First, confirm you are in the web profile directory, for example:
~/.dsh/profiles/web
Execute the installation command in this directory:
dsh plugin --profile web add git+https://github.com/142475/dsh-esc-stop.git
Then edit the profile’s package.json and add "dsh-esc-stop" to the dsh.profile.bundles array:
{
"dsh": {
"profile": {
"bundles": [
"dsh-esc-stop"
]
}
}
}
After restarting dsh web, the plugin will take effect. The package.json declares node >=22 and relevant peerDependencies, so confirm that the current dsh web environment can load these dependencies before installing.
Typical Usage¶
-
Start
dsh weband open a session. -
While a turn is running, double-tap
Escat any location within the session. -
If the interval between the two key presses exceeds 400ms, it will re-timer and will not trigger the stop.
-
The first screen (hero) without a session has no content to stop; the listener takes effect when the session is opened.
Applicable Scenarios and Notes¶
This plugin is suitable for people using DSH web in a browser who want to reduce mouse movement to stop generation. It does not change DSH’s session, permissions, or configuration model; it simply adds a stop shortcut.
Notes before use:
- Only applicable to the web profile of
dsh web. - The plugin will join the current
dshweb profile and run with the currentdshprocess, so you should check the source code and the MIT license before installing. session.cancelcancels the current turn; pendinginboxmessages are still preserved and restored in FIFO order.- The shortcut only works for “running turns” and is not suitable for use on the first screen (hero) without a session.
Conclusion¶
The value of dsh-esc-stop is specific: turning the stop current generation from a button action into two Esc taps, while maintaining consistent behavior with the GUI stop button.
Community Directory Page:
https://www.skillhub.cn/plugins/142475/dsh-esc-stop
GitHub:
https://github.com/142475/dsh-esc-stop