dsh-followup-prompt
Manifest validDeepSeek Harness plugin that predicts your next message after each reply. Press Tab to accept it as an editable draft; it never sends by itself.
Followup Prompt
English | 中文
Predicts your next message in DeepSeek Harness. Press Tab to use it; it never sends by itself.
After each reply, the plugin guesses what you are most likely to say next and shows it as gray text inside the empty composer. Press Tab to turn it into an editable draft, or just start typing and it disappears.
- Unobtrusive: appears only when the composer is empty; failures and timeouts show nothing and never raise an error.
- You stay in control: a prediction is only a draft. You always send it yourself.
- Works out of the box: uses the current session's model by default, with no extra dependencies or services.
Contents
Installation
Requires DeepSeek Harness >=0.2.0 <0.3.0 (verified on 0.2.1-rc.2) with at least one model configured.
Harness Desktop (Windows, macOS)
- In the sidebar, open Plugins → Add plugin.
- Enter
dsh-followup-promptas the Package name or address. In mainland China, set Registry to Mainland China mirror. - Click Install, then Enable now, and reload the page. If you are told to restart DSH, quit Harness completely and open it again.
If npm is unreachable, step 2 also accepts the full path of a dsh-followup-prompt-<version>.tgz downloaded from Releases.
Harness Web (Windows, macOS, Linux)
Requires Node.js 22.19 or later and pnpm.
npx @deepseek-ai/dsh@0.2.1-rc.2 plugin --profile web add dsh-followup-prompt
npx @deepseek-ai/dsh@0.2.1-rc.2 web
[!NOTE] Do not install from the source directory (entering this repository's path as the package address). A directory install cannot find the dependencies that ship with Harness, so the plugin fails to load. To build locally, run
pnpm packin this repository and install the resulting.tgz.
Verify the installation: ask a question, wait for the reply to finish, and leave the composer empty. Gray prediction text appears in the composer; press Tab and the text moves into the composer without being sent. If no prediction appears, see the FAQ.
Usage
When a reply finishes and the composer is empty, the prediction appears where the placeholder would be, with a Tab to accept hint on the right.
| Action | Effect |
|---|---|
| Tab | The prediction becomes a draft in the composer with the cursor at the end, ready to edit |
| Esc or click × | Closes this prediction; it does not come back for this turn |
| Start typing or composing with an input method | The prediction hides; once the composer is cleared, a prediction that was already generated reappears |
| Start a new turn or switch sessions | The prediction hides |
Reopening a finished session also shows the prediction for its last turn.
How it works
When the model is called: only while you are looking at a session whose turn has finished and the composer is empty. The result stays in memory until the next turn starts, so viewing it again is not billed again. Interrupted or failed turns, empty sessions, and subagent sessions are never predicted for. With prefetchOnTurnEnd on, a prediction is generated as soon as a turn ends, whether or not you are looking.
What the model receives: a "condensed transcript". Each turn keeps only your message and the visible text of the model's reply; thinking, tool calls, tool output, and the main conversation's system prompt are left out. Each turn appends just one pair of messages at the end, so the provider's prefix cache builds up turn after turn and most input tokens are billed at the cached rate.
Cost: every prediction is an ordinary model request billed by your provider. Turn it off with enabled, switch to a cheaper model with provider / model, or limit the transcript length with maxTurns.
Privacy
- Data goes only to the current session's model, or to the model you set with
provider/model. Nothing is reported to any third party. - Predictions live in memory only. They are never written to the session log or to disk, and are gone after a restart.
- Logs record metadata only (latency, token counts, outcome), never conversation content.
- There is no server-side content moderation. Predictions that look like secrets are dropped locally, and you always send a prediction yourself.
Configuration
On the Plugins page, find Followup Prompt in the Installed list and click its configure button. You can also edit this plugin's config in a profile patch directly.
[!IMPORTANT] When editing a patch directly,
configis replaced as a whole, not merged. Even to change one field, write out every field; use this package'scordis.patch.ymlas a reference.
| Field | Default | Description |
|---|---|---|
enabled | true | Master switch. When off, no model requests are made. |
provider / model | '' / '' | The model used for predictions; both must be set together. Leave empty to use the current session's model. |
reasoningEffort | 'low' | One of '', off, low, high, max. '' uses the model's default; the session's own setting is never inherited. |
maxTokens | 8192 | Output token limit, reasoning tokens included. Actual output is usually short; the default leaves room for thinking. |
timeoutMs | 30000 | Timeout for one prediction, 2–30 seconds. |
maxTurns | 0 | Keep at most the last N turns of the condensed transcript; 0 keeps them all. |
prefetchOnTurnEnd | false | Generate as soon as a turn ends, even for sessions you are not looking at. Incurs cost for every active session. |
prompt | '' | Advanced: replaces the built-in prediction instruction. |
FAQ
No prediction ever appears
- Check that
enabledistrue. - With non-DeepSeek models,
reasoningEffort: 'low'may not be supported; change it to''. - A prediction is given up when the model takes longer than
timeoutMs; try a faster model or a lowerreasoningEffort. - Predictions are not shown while the composer contains text or attachments.
Tab does nothing
While the slash-command menu or another popup menu is open, Tab belongs to the menu. Close the menu and press Tab again.
The prediction is misaligned
Where the prediction is drawn depends on the internal structure of the Harness composer, which can shift after a Harness upgrade. Please open an issue; until it is fixed, set enabled to false to turn the plugin off.
An older version was installed
Harness installs plugins with pnpm, which by default holds back versions published very recently (minimumReleaseAge) and installs the previous version instead; the install result shows the version actually installed. Wait a while, then reinstall following the upgrade steps.
Upgrade and uninstall
Harness Desktop: on the Plugins page, find Followup Prompt in the Installed list and click Uninstall. To upgrade, uninstall first, then install again following Installation.
Harness Web:
npx @deepseek-ai/dsh@0.2.1-rc.2 plugin --profile web add dsh-followup-prompt@latest # upgrade
npx @deepseek-ai/dsh@0.2.1-rc.2 plugin --profile web remove dsh-followup-prompt # uninstall
Reload the page afterwards, and restart Harness if needed. To pause the plugin temporarily, switch it off on the Plugins page or set enabled to false.
Development
docs/design.md(Chinese): architecture, implementation details, development, testing, and release.docs/protocol.md: the interface contract between the Host and the browser.
License
Comments
Loading…