Introduction¶
DSH (DeepSeek Harness) model entries typically have only four configuration items: model ID, name, context window, and maximum output tokens. The reasoning effort (reasoningEffort) and input modalities are usually configured uniformly at the connection level. In practice, different models may support different effort levels (some support only low/high, while others do not support reasoning). A unified configuration can lead to selecting an invalid level or silently failing. This plugin moves the reasoning effort and input modalities down to the model-entry level, allowing individual configuration.
Plugin Overview¶
Name: dsh-model-extended
Author: lengxiaoyu6
Category: Model Inference
License: MIT
Core value: Configure the reasoning effort range and input modalities individually for every model entry in the dsh model catalog.
Core Features¶
- Configure the reasoning effort range individually for each model entry in the model catalog.
- Configure the supported input modalities individually for each model entry.
- Support selecting levels through UI checkboxes.
- Support explicitly declaring that a model has no reasoning capability.
- Validate effort and modalities before a request is sent.
- Support field mapping for custom providers (for example, pi-ai).
Installation¶
This plugin depends on a locally installed dsh. After installation, restart dsh and refresh the page.
dsh plugin --profile web add github:lengxiaoyu6/dsh-model-extended
Configuration and Usage¶
DeepSeek Catalog Configuration¶
Configure models in ~/.dsh/settings.yaml. The fields include inputModalities and reasoningEfforts.
llm-deepseek:
models:
- id: deepseek-v4.1-flash
name: DeepSeek-V41-Flash
contextWindow: 1000000
inputModalities: [text, image]
reasoningEfforts: [low, high]
defaultReasoningEffort: high
reasoningEfforts: A string array representing the supported levels.falseexplicitly indicates that reasoning is unsupported. If omitted, it is delegated to the adapter.defaultReasoningEffort: If omitted or outside the supported range, the adapter default is retained.inputModalities: The supported input modalities; if omitted, they are delegated to the adapter.
Custom Provider Configuration¶
Custom providers (for example, pi-ai) use the adapter’s own field names and level table.
llm-pi-ai:
providers:
kiro:
models:
- id: claude-opus-4-6
input: [text, image]
reasoningEfforts:
off: # 空值 = 支持"不思考"
low: low
high: high
- The level values are the spellings sent in requests, not the level names displayed in the UI.
- The level names are determined by the adapter and do not change with the UI language.
YAML Notes¶
dsh uses a YAML 1.2 parser and allows the unquoted string off. If you rewrite settings.yaml using a YAML 1.1-compliant tool (such as PyYAML), off may be misparsed as the boolean value false, causing the configuration to fail or produce an error.
Notes¶
- Restart required: You must restart dsh and refresh the page after installation.
- Scope: The overlay only applies to providers configured through the settings namespace.
- Level names: Level names are determined by the adapter and are independent of the UI language.
- Reverting patches: This plugin is implemented by modifying files. Run the
revertcommand before uninstalling.
Conclusion¶
This plugin wraps adapters and the patch editor, moving reasoning effort and modality configuration down to the model-entry level. This resolves the mismatch between connection-level configuration and the actual capabilities of individual models. For more details, refer to GitHub.