DeepSeek Harness Plugin

mrSutivu/plugin-effort-slider

Stars ★ 1 Downloads (30d) 398 Category UI Enhancements Added 2026-09-10 npm plugin-effort-slider

Notched reasoning-effort slider grouped with the model picker in the composer, with theme variables and English, French and Chinese labels.

Install

# from npm (prebuilt)

dsh plugin --profile web add plugin-effort-slider

# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)

dsh plugin --profile web add github:mrSutivu/plugin-effort-slider

Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).

README

English | 中文

A reasoning-effort slider for DeepSeek Harness (DSH) that lives in the composer. Codex and Claude Code have one. DSH didn't, so I built it. One pill holds the model picker and the slider, right where you type.

Effort slider pill live in the composer

Dark Light
Composer in dark theme Composer in light theme

Features

  • One pill for model and effort. Picker and slider share one bordered pill with a separator between them. The slider sits right of the model name.
  • The model list skips the submenu. One click shows every provider and model. Effort stays on the slider and nowhere else.
  • Notches instead of a smooth drag. Each notch is a real effort level from the model, usually two to seven. Drag it, or focus it and use the arrows, Home, End. Screen readers get a real slider role.
  • A little show at the top notch. Max effort turns the bar into a moving gradient, a nod to DSH's own "Deep diving..." shimmer. It stays still when you prefer reduced motion.
  • It follows your theme. Every color comes from DSH variables, with one accent shared with the send button. Light, dark, future theme plugins, it all carries over.
  • It speaks your language. Labels follow the DSH locale in English, French and Chinese. Model and effort names stay exactly as the model sends them.
  • The context ring gets out of the way. While the pill is up, the ring moves to the end of the stats row instead of crowding the send button.
  • A taller prompt box. About two lines, same as the DSH hero input.
  • Nothing lives in core. The plugin is one folder. Delete it and DSH forgets it was there.

Requirements

DSH with the web profile, and a model that exposes reasoning efforts. No effort levels, no slider. Anything with low / medium / high works.

Compatibility and permissions

Needs the web profile (composer slots, model directory, locale). Pure client UI. No host permissions, no credentials, no network calls, no external services. Runs wherever the web profile runs. Tested on DSH 0.1.2-alpha. Limitation: the pill only shows for models exposing reasoning efforts.

Install

From GitHub, no npm account needed:

dsh plugin --profile web add github:mrSutivu/plugin-effort-slider

Or clone it first:

git clone https://github.com/mrSutivu/plugin-effort-slider.git
dsh plugin --profile web add ./plugin-effort-slider

Then restart the web profile once with dsh web and refresh the page. Later client-only edits apply on a plain refresh.

From npm:

dsh plugin --profile web add plugin-effort-slider

Usage

  1. Pick a reasoning model in the pill.
  2. Drag the slider and let go. It applies on release.
  3. Push it to the top notch for the gradient.

If the model has no reasoning levels, the pill hides and the stock DSH selector is back.

Theming

Everything runs off one accent, var(--dsw-alias-button-info-fill), the send button fill. A theme plugin that redefines it recolors the slider, the notches, the max gradient and the checkmark. Nothing else to touch.

i18n

Strings live under the effort-slider locale namespace in English, French and Chinese. To add your language, register dictionaries for that namespace and open a PR. locale.addLanguage covers you if the language pack itself is missing.

Uninstall

dsh plugin --profile web remove plugin-effort-slider

Restart dsh web once. The pill, the styles, the meter move and the prompt height all revert.

Dev

No build. Edit lib/client.js and refresh. lib/index.js is an empty host entry. The bundle layer wants one, so it gets one.

Contributing

Issues and PRs welcome. New locale dictionaries make the easiest first contribution. Theme edge cases and provider quirks matter most, since effort counts differ per model.

Support

Free forever, MIT. If the slider saves you clicks every day, a coffee keeps it maintained:

GitHub Sponsors works too, once onboarding clears: github.com/sponsors/mrSutivu.

License

MIT © Sutivu

Content from the project README on GitHub ↗

Links

More in this category

View the whole category →

Community comments

Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.