dsh-model-preset
dsh-model-preset adds two default flat shortcut buttons in a full-width row above the DSH composer card. Settings can add a third button. Each button selects one complete provider + model + reasoningEffort combination in the current conversation.
It is not an Agent preset. It does not change Code Mode, Creator Mode, tools, prompts, permissions, personas, or the agent composition.
Installation
Install it into a DSH Web profile with:
dsh plugin --profile <profile> add dsh-model-preset
The package contributes both the Host plugin and its Web client bundle. Start or restart that profile's Web host after installation, then open Settings → Plugins → 模型预设 to customize the buttons.
Configuration
Add the package to a Web profile and include its patch, or copy the row from cordis.patch.yml into your own composition. This is the composition default:
- id: dsh-model-preset
name: 'dsh-model-preset'
config:
presets:
- label: 快速
color: '#2F80ED'
provider: deepseek-official
model: deepseek-v4-flash
reasoningEffort: high
- label: 深度
color: '#9B51E0'
provider: deepseek-official
model: deepseek-v4-pro
reasoningEffort: high
presets accepts zero to three entries. label, color, provider, and model are required. color must be a six-digit #RRGGBB value. Omit reasoningEffort to preserve the provider/model default; otherwise use the effort id advertised by that model's catalog.
Settings editor
After the plugin is loaded, open Settings → Plugins → 模型预设. The editor can add or remove buttons and change every field, including the native color picker; it supports up to three buttons. Saving writes $DSH_HOME/model-preset.json, updates the current page immediately, and persists across restarts. A saved user configuration overrides the composition default; remove that file to return to the patch defaults.
Behavior
- Buttons preserve configuration order and use the configured label and accent color.
- The active button is derived from the effective current selection, including the resolved reasoning effort.
- A click calls the same per-session model directory used by the built-in model picker.
- A selection applies to the current conversation's next model request; an in-flight request is not rewritten.
- Addressed subagent sessions do not render these controls.
- A rejected selection leaves the previous selection in place and shows a compact failure status.
- The host serves configuration through same-origin
GETandPOST /dsh-model-preset/configroutes.
Model Experience
The plugin changes only the user-facing composer controls. It does not add model-visible prompt text, tools, events, or durable session data. The selected model and reasoning effort are still recorded and applied through the existing DSH model-selection path.
Known Limitations and Deferred Work
- A preset is not checked against the model catalog until the user selects it, so a stale model or effort id reports the host rejection at click time.
- The current Web host must expose the model-selection service and the
conversation.input.dockandsettings.plugins.tabslots; the plugin is intentionally Web-only.