Provider-folded model selector for the DSH Web composer with catalog-driven reasoning effort choices.
Install
# from npm (prebuilt)
dsh plugin --profile web add dsh-model-accordion
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:lakabuji-arch/dsh-model-accordion
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
Provider-folded model selector for the DeepSeek Harness Web composer.
What it does
- Replaces the single composer model seat with a provider-folded selector.
- Keeps provider groups collapsed by default and opens models on demand.
- Reads reasoning-effort choices from each model's resolved catalog metadata, with a built-in official-effort table as a fallback. A single automatic rule applies: a model with configured/backend-declared efforts uses them, and an unconfigured model falls back to the built-in official table. A user who configured their own levels keeps them; no per-model effort configuration is needed for the official fallback to work.
- Sends model and reasoning-effort selections through DSH's shared model-directory service; a picked effort the model does not genuinely support is dropped so the request uses the model's default instead of failing with
UNSUPPORTED_REASONING_EFFORT. - Keeps the popup height-bounded with an internal scroll area and wraps effort controls below the model name.
- Uses DSH semantic theme tokens for colors and supports light/dark theme changes.
Requirements
- DeepSeek Harness Web
0.1.0-rc.8or newer. - A Web profile with the official model-selection package and model-directory service.
- React 18 supplied by the DSH Web runtime.
This is a Web UI plugin. It does not add a Host service, model provider, vision backend, or model catalog. Provider availability and image-session admission remain controlled by DSH and any installed provider/vision plugins.
Install from a package or repository
dsh plugin --profile web add dsh-model-accordion
For a local checkout during development:
dsh plugin --profile web add file:/absolute/path/to/dsh-model-accordion
Refresh the Web UI after installation. The package declares a dsh.bundle patch and a Web client entry, so it is installed and loaded as a persistent profile bundle rather than a temporary runtime extension.
Customizing reasoning effort for a model
DSH persists model/provider configuration in your main settings.yaml, and this
plugin reads the same resolved model metadata the backend produces, so
declared/backend effort configuration always wins over the built-in table.
The effective priority is:
model's configured `reasoningEfforts` > provider-level default > built-in official table
To give a specific model — for one your relay exposes under a name this plugin's
table does not know — your own effort ladder, declare it on that model in
settings.yaml and the plugin uses exactly those levels:
providers:
my-relay:
api: openai-completions
baseURL: https://…
models:
- id: my-unknown-model
api: openai-completions
contextWindow: 200000
maxTokens: 32000
input: [text]
reasoningEfforts:
off: null # optional: lets the user turn thinking off
low: low
high: high
max: max
The exact fields follow dsh-llm-pi-ai's model schema (see that package's
docs); reasoningEfforts maps each offered level to its wire spelling, and you
may set a provider-level default with the reasoning: key. Because this lives
in your DSH settings file, an agent — or you — can edit it with the file tools
and DSH reloads it on save; the browser never sees your API key or relay URL.
Behavior and limitations
The selector submits the exact provider, model, and reasoning effort returned by the DSH model directory (configured efforts first, built-in official table as fallback).
- A picked reasoning effort that the model does not support is silently dropped so the request falls back to the model's default (no
UNSUPPORTED_REASONING_EFFORTerror). A relay/gateway model configured without an effort level keeps the model but does not force an unsupported level. - A selection can still be rejected by the DSH host when the session contains images and the selected model does not declare image input. That is a host/model-capability rule, not a UI override.
- The model search box filters provider lists by name, id, or description while keeping the accordion grouping; a provider group auto-expands while a query is active.
- The built-in official-effort table keys on the model's name/id and is cross-checked against the installed pi-ai catalog and each vendor's API docs. It covers only models whose vendors expose a real effort ladder: GPT-5.6 (full ladder incl.
max), gpt-5.2+ (xhigh), gpt-5.1, gpt-5/mini/nano, o1/o3/o4, gpt-oss, Grok 4.x, GLM-5.3 (low/high/max) and GLM-5.2+ (xhigh/max), DeepSeek-V4 (low/high/max), DeepSeek-V4.1-Flash (deepseek-flash/deepseek-v4.1-*,low/high/max), Kimi K3, Qwen3.8, Gemini 3+ (low/high), Claude 4.6+ adaptive, Gemma 4. Families whose native control is not an effort ladder (Gemini 2.5 / Claude ≤4.5 token budgets, GLM ≤5.1 / Kimi K2 / MiniMax / Mistral thinking switches, Qwen open-source, DeepSeek ≤V3) are deliberately excluded. Unmatched models offer only the efforts their configured catalog declares — see "Customizing reasoning effort for a model" to add your own. - The plugin uses English status and search text; full locale integration is planned for a later release.
Development checks
node --check lib/client.js
node --check lib/index.js
npm pack --dry-run --ignore-scripts
License
MIT
Links
More in this category
zhu1090093659/dsh-web#packages/dsh-task-board★ 8488
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★ 8488
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★ 4217
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★ 4167
Claude Code-style full-screen terminal UI: pixel-whale header, live status line, and streaming thought expansion.
omdsh-dev/DSH-better-sidebar★ 4045
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★ 1432
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.