Introduction¶
The DeepSeek Harness agent continuously sends the next round of requests after completing a round of tool interactions. If you want to intervene midway, directly interrupting can make the model “timid” or stop working. This plugin pulls the gate to pause before the request is sent, keeps the input box usable, and allows a human to release it via Enter or a button.
Plugin Role¶
This is a standalone plugin (better-er/dsh-pause) that runs on DSH Web. It hooks into the agent/pre-step hook and stops before the model is about to send the next request. During the pause, the input box remains usable as normal; users can type an interjection or simply press Enter to continue. This process does not interrupt any in-flight API calls, and the model does not detect the pause.
Core Features¶
- Toggleable: Off by default; can be enabled independently per session.
- Pauses before the request: Stops after the model completes a round of tool interactions and just before it sends the next request, without interrupting any in-flight API calls.
- Keeps the composer available: While paused, the input box remains typeable as usual, without being blocked or switched.
- Enter releases the pause: Press plain Enter in the main input box to continue. If the draft is empty, continuation is seamless; if the draft contains text, that text is sent as an interjection together with the current request, and the draft is then cleared.
- Button also releases: Alternatively, click the “Paused · Enter or click here to continue” button. The behavior is the same and it reads the current draft.
- Invisible to the model: The context remains complete, no extra messages are inserted, and the model does not detect the pause.
Installation¶
dsh plugin --profile web add github:better-er/dsh-pause
After installation, restart DSH Web for it to take effect.
Usage¶
- Click the “Pause” button on the right side of the composer tool row; when it changes to “Pause On”, the session is enabled.
- From then on, the session’s follow-up tool requests will stop before being sent.
- When you need to release the pause, press plain Enter in the main input box: an empty draft means seamless continuation, and a text draft means an interjection. You can also click “Paused · Enter or click here to continue”.
- When finished, click “Pause On” to turn it off. Turning it off while paused releases the pending gate.
Technical Details¶
- The pause point is set before the request is actually sent, so there are no in-flight calls to interrupt.
- Follow-up continuation is approximated by
step > 1within the same turn; the first plain-text request is never paused. - Because DSH’s composer Enter is handled by InputBar’s private keymap and there is no hook point for third parties, the paused state uses DOM capture to intercept plain Enter and route it to the release path.
- On the host side, it does not use
ctx.connection.rpc.handle(this API has been unavailable since 0.1.2); instead, it registers a/dsh-pauseprefixed route with webServer.
Ecosystem Background¶
DSH’s philosophy is “everything is a plugin”. This plugin is maintained by a community developer and has no official affiliation with DeepSeek / High-Flyer.