Replaces the model button with a Claude Desktop-style model and reasoning-effort switcher, with per-model effort memory, theme-aware styling, smooth slider feel, rounded track, hover highlight, and pixel-dot animation.
Install
# from npm (prebuilt)
dsh plugin --profile web add @domitor-syh/dsh-ui-skin-switcher
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:domitor-syh/dsh-ui-skin-switcher
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
A Claude Desktop-style switcher for the DeepSeek Harness (DSH) Web GUI: change the model or dial reasoning effort without ever leaving the composer.
What it is
A model and reasoning-effort switcher floating next to the input box: open the dropdown to pick a model, drag the slider to dial reasoning effort — your choice takes effect on the current session right away.
Models are grouped by vendor with a checkmark on the active one, effort levels follow whatever the model itself supports, and each model remembers the level you last picked.
The style pays homage to Claude Desktop's switcher — slider feel, rounded track, hover highlight.
Features
| Feature | Detail |
|---|---|
| Model switching | Clicking the model entry expands the model list ordered by vendor; the selection applies immediately and the matching reasoning effort updates together |
| Effort slider | Supports both click and drag, with multiple effort nodes; supported levels differ per model, and adjustments apply immediately |
| Max-effort dot matrix | Reaching max effort reveals a right-to-left dot-matrix sweep on the track, with the handle glowing |
| Per-model memory | Remembers the last effort per model, kept across switches |
| Theme adaptive | All colors bound to DSH theme tokens; readable in light/dark themes and transparent skins |
Video preview
The inline player needs a GitHub sign-in and cannot play while signed out; in that case click the link below to watch in a new tab.
▶︎ Watch the full demo video — model switching, the effort slider, and the top-level dot-matrix animation.
Install
Web (dsh web):
dsh plugin --profile web add @domitor-syh/dsh-ui-skin-switcher
Desktop (official channel) — enter the package name @domitor-syh/dsh-ui-skin-switcher in the plugin installer, or use the equivalent command:
dsh plugin --profile desktop add @domitor-syh/dsh-ui-skin-switcher
After installing: on Web, restart dsh web and refresh the page; on Desktop, restart the app. When running DSH from source, prefix the commands above with pnpm.
The current adaptation target is DSH 0.2.0-rc.2. The declared compatibility range is >=0.1.5-alpha.1; other builds need their compatibility confirmed.
Usage
- Pick a model — click the button and pick from the list; the list is grouped by vendor and the current model shows a checkmark.
- Dial effort — for models declaring
reasoningEfforts, an effort button appears to the right of the model; click it, then drag the slider or tap the track to switch levels.
Why is there no reasoning-effort switcher after adding a model?
The current model does not declare a reasoning effort (reasoningEfforts) or vision capability. To keep model declarations accurate, we do not apply a uniform effort preset to every model — check the model vendor's official documentation and patch the underlying config file yourself, or hand the vendor's deep-thinking documentation (or its link) to the LLM and let it modify the config directly.
Taking effect: you edit
settings.yamlunder the DSH home (~/.dsh) — not this plugin's files; DSH watches that file and hot-reloads, so the change takes effect immediately with no restart and persists across restarts.
Why do it yourself? To keep declarations accurate — accuracy over coverage. Reasoning effort is a per-vendor, per-level wire value; a wrong value silently breaks requests, so we never fill in a guessed preset.
License
Links
More in this category
zhu1090093659/dsh-web#packages/dsh-task-board★ 8670
Task board for the dsh web GUI: a sidebar multi-column kanban whose cards run in real DSH agent sessions and can also be scheduled with cron expressions, executed host-side even with the browser closed.
zhu1090093659/dsh-web#packages/dsh-web-all★ 8670
Plugin and skin collection for the DSH Web UI: task board, Git graph, right-side panel, remote mobile UI, pet, live token stats, and a skin center.
MeteorNOX/DeepSeek-Balance-Whale-Widget★ 4631
A fixed-corner whale widget for the DSH web GUI — balance, today's usage and per-turn cost with peak/off-peak pricing, editable balance-alert and daily-budget bubbles, a module-based custom bubble queue with A/B weighted choices and random lines or images, 30+ vendor templates (OpenAI, OpenRouter, Kimi, SiliconFlow, Ark, Zhipu, MiniMax and more) with per-model balance and subscription quota, plus task-end sound, imported audio, custom roles and a resource manager. Local-only, no telemetry.
ccch1mneyyy/dsh-TUI★ 4484
Claude Code-style full-screen terminal UI: pixel-whale header, live status line, and streaming thought expansion.
omdsh-dev/DSH-better-sidebar★ 4133
Full sidebar workbench with file rendering and editing, terminal, Git, and subagents; third-party plugins can register new tabs.
Devin-AXIS/deepseek-design#deepseek-idesign★ 1453
Visual design studio for websites, app prototypes, posters, cards, reports, and magazines, with templates, direct element editing, selection-aware AI draft handoff, and export.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.