Preface

The Web client for DeepSeek Harness (DSH) integrates reasoning-level control into the model selection menu. The default effort-level selector occupies a fixed amount of space in the interface and uses a fairly conventional interaction model. The dsh-effort-slider plugin refactors this module, replacing the effort-level selector with a compact slider component while preserving the structure of the official menu.

Core Features

This plugin mainly introduces the following interaction and visual improvements:

  1. Menu structure replication: It keeps the original layout of the official model selection menu, and the menu still displays the “Model” and “Reasoning Level” rows.
  2. Collapsible subpanel: Clicking “Reasoning Level” expands a subpanel containing the slider control. The panel folds inside the main menu and does not take up space around the input field.
  3. Damped motion effects: While dragging the slider, the colored fill and slider thumb exhibit smooth easing. After release, the slider automatically snaps to the nearest effort level.
  4. Optimistic updates: Selection submissions use an optimistic update strategy, so the value does not flash back to an older one while waiting for the RPC response.
  5. Adaptive effort levels: The number of supported effort levels (for example, off/high/max, low/high/xhigh/max, etc.) is configuration-driven and can support any number.
  6. Visual feedback: The slider changes its glow and color based on the effort level position. The farther to the right, the more intense the color and the brighter the glow. The rightmost effort level usually activates a dynamic rainbow effect, while the leftmost effort level appears dim and unlit.

Installation and Enabling

Install it using the official plugin command:

dsh plugin --profile web add @qqqw114/dsh-effort-slider

After installation completes, restart the dsh web process and force-refresh the page in the browser with Ctrl+F5 to load the new component.

Implementation Principle

The plugin overrides DSH rendering slots to achieve the replacement.

  • Slot registration: The plugin registers to the conversation.input.model single slot and sets priority: -100. Because DSH uses a priority-based rendering mechanism (lower values have higher priority), this setting ensures that the plugin component renders before the official model selection component and takes over output for that area.
  • Data flow: Although the rendering component is replaced, data reads and writes still go through the official modelDirectories service. Selecting an effort level also calls the official selectModel RPC.
  • Menu structure: The plugin replicates the official two-level navigation structure (root menu -> Model / Reasoning Level) and only replaces the content of the “Reasoning Level” subpanel with a custom damped slider.

Ecosystem and Links

The plugin is maintained by user QQQW114 and follows the MIT License.