Introduction¶
When DSH displays model inference (thinking) level controls, it requires models to have a reasoning or reasoningEfforts capability declaration. The official built-in model catalog already includes these declarations, so no additional configuration is needed when using official providers.
For models used through custom gateways or relays (such as pptoken, one-api, and LiteLLM), their IDs are often not present in DSH’s built-in catalog. When the catalog does not include the relevant descriptions, DSH does not show a reasoning level selector by default. This plugin writes the missing declarations into settings.yaml, enabling these custom gateway models to also have their reasoning intensity selected.
Core Features¶
This plugin declares reasoning levels for GPT, Codex, Gemini, and OpenAI-compatible models. Its main capabilities are:
- Reasoning level declaration: supports
off,minimal,low,medium,high, andxhigh. - Configuration mapping: writes the reasoning level mapping into the
reasoningEffortsfield insettings.yamlfor conversion use by the host (dsh-llm-pi-ai). - Image model marking: marks image models starting with
gpt-image-*as non-reasoning models (reasoningEfforts: false). - Gemini-specific handling: adds specific mappings for
gemini-*models. - General model support: supports general model IDs such as
gpt-*,codex-*, andclaude-*, as well as arbitrary custom IDs. - Settings description area: adds a “Reasoning adapter” section in settings to explain the mappings (currently informational only).
- Helper script: provides a PowerShell script for batch-enabling or batch-disabling declarations.
Installation and Enablement¶
The plugin is installed through DSH’s plugin system. After installation, it does not automatically modify the configuration; you must manually run the helper script.
- Install the plugin
Install from npm:
dsh plugin add dsh-more-models-thinking-level
Or install from the GitHub repository:
dsh plugin add https://github.com/Henta111/dsh-more-models-thinking-level
- Enable the feature
After installation, you must manually run the helper script to writesettings.yaml. The following command targets thedesktopprofile by default:
powershell -ExecutionPolicy Bypass -File "$HOME\.dsh\profiles\desktop\node_modules\dsh-more-models-thinking-level\enable-capabilities.ps1"
After running the script, restart DSH for the configuration to take effect.
How It Works¶
The plugin does not modify DSH core files and does not intercept requests at runtime. Its core role is to act as an “installer” and “documentation”:
- Capability declaration: the helper script writes the
reasoningEffortsmapping intosettings.yaml. After the host detects the declaration, the interface renders a reasoning level selector. - Logical conversion: the host (
dsh-llm-pi-ai) is responsible for converting the logical level selected by the user into gateway-native parameters. - Entry point: the
applymethod in the plugin’s main entry (lib/index.js) only logs and does not perform the actual parameter conversion logic.
Notes and Limitations¶
Please read the following limitations before installing. Some of them may affect the user experience:
- Not visible in the marketplace list: because the related PR has not been merged yet, this plugin does not appear in
dsh plugin searchresults and must be installed by name or URL. - Not executed automatically: installing or enabling the plugin does not automatically run the helper script; it must be executed manually.
- Manual cleanup: the helper script persistently edits
settings.yaml. If you uninstall the plugin or no longer need the feature, you must manually clean up the configuration items injected by the script. - Capability guessing: the helper script guesses capabilities from model IDs using regular expressions. If a relay exposes IDs for non-reasoning models (such as embedding models or pure vision models), they will still be marked as reasoning models, which may cause gateways to reject requests.
- Gateway dependency: the declaration only makes a level “selectable.” Whether a gateway actually accepts the
reasoningparameter is determined by the gateway. Strict gateways may reject fields that are not defined in the schema (such asinput[x].status). - System limitations: the helper script only supports Windows PowerShell and the
desktopprofile; other systems or profiles require manual adaptation. - Settings interface is informational only: the “Reasoning adapter” section in the interface is only for displaying mapping explanations. It has no editor functionality and cannot be fine-tuned in the interface.
Conclusion¶
This plugin solves the problem of custom gateway models not supporting reasoning level selection in DSH. It implements its functionality by writing configuration files and is suitable for developers who need fine-grained control over reasoning intensity. Please make sure you understand the gateway’s parameter restrictions before enabling it.