Skip to main content
K

dsh-followup-prompt

keliwang/dsh-followup-prompt

DeepSeek Harness plugin that predicts your next message after each reply. Press Tab to accept it as an editable draft; it never sends by itself.

Install

dsh plugin --profile web add github:keliwang/dsh-followup-prompt

README

Followup Prompt

English | 中文

npm CI License: MIT

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.1-rc.2 <0.3.0 (verified on 0.2.1-rc.2) with at least one model configured.

Harness Desktop (Windows, macOS)

  1. In the sidebar, open Plugins → Add plugin.
  2. Enter dsh-followup-prompt as the Package name or address. In mainland China, set Registry to Mainland China mirror.
  3. 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 pack in 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.

ActionEffect
TabThe prediction becomes a draft in the composer with the cursor at the end, ready to edit
EscCloses this prediction; it does not come back for this turn
Start typing or composing with an input methodThe prediction hides; once the composer is cleared, a prediction that was already generated reappears
Start a new turn or switch sessionsThe prediction hides

Reopening a finished session also shows the prediction for its last turn.

How it works

What gets sent: your messages and the visible text of the model's replies in this session. Thinking, tool calls, tool output, and the system prompt are left out.

When it runs: only when a turn has finished and you're looking at the session with an empty composer. The result is kept until the next turn starts, so viewing it again isn't billed again. Interrupted or failed turns, empty sessions, and subagent sessions are skipped.

What it predicts: a short reply to the model's latest message, based only on what's in the conversation. When there's nothing worth sending, like a plain "OK" or "thanks", or the next message depends on something only you know, such as a test result, no prediction appears. Predictions can still be wrong, so read one before you send it.

Cost: every prediction is an ordinary model request billed by your provider; with providers that support prompt caching, most of the input is billed at the cached rate. To spend less, pick a cheaper model for predictions in the settings; to stop entirely, switch the plugin off on the Plugins page.

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 to open the settings. Click Save when you're done; changes take effect right away, no restart needed.

The Model list shows the models you have already set up in DSH, the same ones you see when switching models in the composer. Pick Session default to use whatever model your current session is running.

To turn the plugin off, use the switch on its row in the Plugins list.

If you are comfortable with profile patches, you can also edit this plugin's config directly.

[!IMPORTANT] config in a patch is replaced as a whole, not merged. When editing by hand, write out every field even to change one; use this package's cordis.patch.yml as a reference. Saving from the settings page also rewrites the whole config.

FieldDefaultDescription
provider / model'' / ''The model used for predictions; both must be set together. Leave empty to follow the current session's model. Same as the Model option on the settings page.
reasoningEffort'low'One of '', off, low, high, max. '' uses the model's default; the session's own setting is never inherited.
maxTokens8192Output token limit, reasoning tokens included. Actual output is usually short; the default leaves room for thinking.
timeoutMs30000Timeout for one prediction, 2–30 seconds.
prompt''Advanced: replaces the built-in prediction instruction.

FAQ

No prediction ever appears
  • On the Plugins page, check that the plugin's switch is on.
  • 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 lower reasoningEffort.
  • 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, switch the plugin off on the Plugins page.

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.

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

MIT

Related plugins