Install
Inside DeepSeek Harness, with dsh-market
dsh plugin --profile web add dshmarket
Or from the command line
dsh plugin --profile web add github:vvvspec/better-reasoning-slider
Installing runs third-party code with your own permissions — it can read your files, use your credentials and reach the network. Review the source first, and pin a commit (github:owner/repo#sha) when you can.
README
A DeepSeek Harness WebUI plugin that replaces the composer's model/effort dropdown with a compact, theme-aware control:
- Model picker — click the model pill to switch models.
- Reasoning effort slider — drag to adjust effort (e.g. low / high / max) with visible tick nodes on the track.
The slider writes through the same per-session ModelDirectory as the official @deepseek-ai/dsh-client-ui-model-selection plugin, so the /model popup and the composer stay consistent.
Features
- Official-style composer trigger: model name + current effort + chevron.
- Floating popup that stays inside the viewport.
- Model groups and descriptions from the existing model directory.
- Reasoning effort as a continuous slider with snap-to-node behavior.
- Nodes are rendered directly on the slider track and align with the thumb.
- Theme adaptive: uses DSH design tokens (
--dsw-specific-menu,--dsw-alias-*,--dsw-shadow-lv3), so it follows light/dark Harness themes. - No configuration file needed.
Install
From GitHub (recommended)
dsh plugin --profile web add github:vvvspec/better-reasoning-slider
Or with a full URL:
dsh plugin --profile web add https://github.com/vvvspec/better-reasoning-slider
Restart dsh web after installing.
Local development
dsh plugin --profile web add file:/absolute/path/to/better-reasoning-slider
Restart dsh web.
Usage
- Open the Harness WebUI.
- In the composer, click the model pill (e.g. the current model name).
- A popup opens with:
- The model list (grouped by provider).
- The Reasoning slider below the model list.
- Drag the slider thumb to the desired effort level.
- The thumb snaps to the nearest available node when you release.
- The selected effort is written to the current session and stays consistent with
/model.
How it works
- The plugin shadows the official
conversation.input.modelslot. - It uses the same
modelDirectoriesservice as the official model selector. - The slider maps a 0–1000 draft range to the model's available
reasoning.effortslist. - On release, it commits the nearest effort through
ModelDirectory.select().
Requirements
- DeepSeek Harness Web profile.
- A model that exposes
reasoning.effortsto see the slider. Models without reasoning efforts still show the model picker.
License
MIT
Comments
Comments live in GitHub Discussions. Sign in with GitHub to post or react.