Preface

In the DeepSeek Harness (DSH) dsh web dialog box, developers often repeatedly input the same types of phrases: prompt fragments, technical terminology, project-specific conventions, common follow-up questions, or fixed templates. Existing approaches typically involve manually copying and pasting or maintaining a snippet list outside the editor.

dsh-wordbox addresses this scenario as a web client plugin: it adds a “Word” button to the right of the conversation input box. Clicking it pops up a persistent pull-up panel for managing common words/phrases at the global or current project level, and allows one-click insertion into the input box.

What This Is

dsh-wordbox is a DSH web client plugin maintained by arcmosin, licensed under MIT.

It is a standard DSH bundle plugin. Installation and removal are handled via the dsh plugin command, and it is automatically mounted to the web profile. The plugin interface supports both Chinese and English, following the DSH interface language.

Core Features

The main capabilities provided are listed below.

  • Displays a “Word” button to the right of the conversation input box; shows W in the English interface.
  • Clicking the “Word” button pops up a persistent pull-up panel; it can be closed by clicking the button again, clicking outside, or pressing Esc.
  • Entries are divided into two buckets:
  • Global: shared across all workspaces.
  • Current project: isolated by workspace directory.
  • The panel provides three display scope toggles: All, Global, and Current.
  • Clicking an entry appends it to the input box, retains focus, and preserves one undo step.
  • The panel does not close after clicking an entry, allowing multiple entries to be inserted consecutively.
  • In current project mode, entries can be added to global with one click.
  • Hovering over the end of an entry row allows deletion of the entry.
  • For long entries, hovering causes a slow scrolling display of the full content.
  • The word database is stored in the browser localStorage, isolated by browser profile.
  • Synchronization across workspaces and tabs is done via the storage event.
  • The bundle is pure JS with no build steps.

Installation and Activation

The prerequisite is that DeepSeek Harness dsh web is already available in the environment, and pnpm is on the PATH. The dsh plugin command forwards to pnpm.

Installation command:

dsh plugin --profile web add dsh-wordbox

After execution, restart dsh web. After restarting, the “Word” button will appear to the right of the input box; in the English interface, it displays as W.

Typical Usage

  1. Click the “Word” button to the right of the input box, and the panel pulls up and remains open.
  2. Toggle the display scope at the bottom right of the panel: All, Global, or Current.
  3. Click an entry, and it gets appended to the input box.
  4. If more insertions are needed, click multiple entries consecutively.
  5. Hover over the end of an entry row to reveal a × delete button; click it to delete the entry.
  6. In “Current” mode, hovering over the end of an entry row shows a button to add it to global, used to copy the current project entry to global.
  7. If an entry is too long, hovering causes a slow scrolling display of the full content.

Data, Uninstallation, and Synchronization

The word database is stored in the browser localStorage. Uninstalling the plugin does not delete this data.

Uninstallation command:

dsh plugin --profile web remove dsh-wordbox

After execution, restart dsh web, and the “Word” button to the right of the input box will disappear.

If you confirm clearing the local word database, delete the following browser localStorage keys:

dsh.common-word-box.words.v1
dsh.common-word-box.words.project.v1
dsh.common-word-box.mode.v1

Data is isolated by browser profile. Cross-workspace and cross-tab synchronization is done via the storage event.

Development and Updates

  • After modifying lib/client.js, the host client-hmr polls the bundle hash and automatically hot-reloads on changes.
  • After first installation, uninstallation, or modification of cordis.patch.yml, a restart of dsh web is required.
  • The bundle is pure JS with no build steps.
  • In rare cases, after remove, a residual empty directory or link may remain at profiles\web\node_modules\dsh-wordbox; manually deleting it is safe and does not affect functionality.

Applicable Scenarios and Notes

dsh-wordbox is suitable for the following situations:

  • Frequently inserting identical phrases, prompt fragments, or terminology in dsh web conversations.
  • Needing to differentiate between global common words and current project common words.
  • Wanting the word database stored per browser profile and synchronized across workspaces and tabs within the same browser profile.
  • Needing to insert multiple entries consecutively in one panel to reduce copy-paste effort.

Usage notes:

  • The plugin participates as a DSH client plugin with the permissions available to the current dsh process. Reviewing the source code and MIT license before installation is recommended.
  • dsh plugin depends on pnpm; ensure pnpm is on the PATH.
  • Uninstallation does not clear the word database data in the browser localStorage.
  • A restart of dsh web is required after first installation, uninstallation, or modification of cordis.patch.yml.
  • No restart is needed after modifying lib/client.js; the host client-hmr auto hot-reloads.

Links

GitHub repository: https://github.com/arcmosin/dsh-wordbox