Introduction¶
If you wish for the DSH model selector to expand or collapse independently per model provider, while retaining official data, selection, configuration, and invocation logic, please check out this community plugin. Below is an introduction to the positioning, features, installation methods, usage, and notes of ZoeHao2026/dsh-ui-model-selection-collapsible.
What is this¶
ZoeHao2026/dsh-ui-model-selection-collapsible is a standalone community plugin maintained by ZoeHao2026, not an official DeepSeek project.
It adds a grouped interface that allows the DeepSeek Harness (DSH) model selector to expand or collapse independently per provider, while retaining official data, selection, configuration, and invocation logic.
Core Features¶
- Each model provider can be expanded or collapsed independently, displaying the number of models.
- Options in DSH settings include “Current Provider”, “Expand All”, “Collapse All”, or “Expand Single Group”.
- Switch between Comfortable/Compact list density, and follow system or disable collapse animation.
- Expand, collapse, arrows, and opacity use a unified
160 mssymmetric animation and supportprefers-reduced-motion. - Provides
menuitem,menuitemradio,aria-expanded,aria-controls,aria-checked, and visible item keyboard navigation. - The model trigger supports Up/Down arrow keys to directly open the menu and focus the first or last item.
- Directly reuses official
modelDirectoriesservice,modellocalization namespace, and selection data structure. - Custom slots use priority
-1; the official model selector with priority0remains installed and serves as a runtime fallback. - Does not introduce new commands, Host config schemas, or RPCs, nor does it re-register the official
modellocalization namespace. - Adds custom settings pages via the official
settings.sectionextension point, only replacing the visual slot forconversation.input.model.
Installation and Enablement¶
Run the following in PowerShell:
$dshBin = Join-Path $env:USERPROFILE '.dsh\profiles\node_modules\@deepseek-ai\dsh\lib\bin.js'
node $dshBin plugin --profile web add 'https://github.com/ZoeHao2026/dsh-ui-model-selection-collapsible.git'
After installation, restart DSH and perform a hard refresh in the browser.
Typical Usage¶
Modifying Provider Grouping¶
Open DSH “Settings”, select “Model Selector”, and you can modify:
- Initial expand/collapse strategy for provider groups: Current Provider, Expand All, Collapse All, Expand Single Group.
- Model list density: Comfortable or Compact.
- Collapse animation: Follow system or Disabled.
Preferences are saved in localStorage for the current browser and DSH Web address; they take effect immediately and persist after refresh; they are not written to settings.yaml, modified model configuration, or changed invocation data.
When the browser blocks local storage, the settings page will clearly prompt this; changes are only valid within the current page lifecycle.
Uninstall¶
Run the following in PowerShell:
$dshBin = Join-Path $env:USERPROFILE '.dsh\profiles\node_modules\@deepseek-ai\dsh\lib\bin.js'
node $dshBin plugin --profile web remove '@local/dsh-ui-model-selection-collapsible'
After uninstallation, restart DSH. The official model selector will continue to provide the default slot.
Local Development¶
git clone https://github.com/ZoeHao2026/dsh-ui-model-selection-collapsible.git
Set-Location dsh-ui-model-selection-collapsible
pnpm install --frozen-lockfile
pnpm run verify
$dshBin = Join-Path $env:USERPROFILE '.dsh\profiles\node_modules\@deepseek-ai\dsh\lib\bin.js'
$sourceRoot = (Get-Location).Path
node $dshBin plugin --profile web add "link:$sourceRoot"
Boundaries and Compatibility¶
- The plugin only replaces the visual slot for
conversation.input.modeland adds its own settings page via the officialsettings.sectionextension point. - Does not introduce new commands, Host config schemas, or RPCs.
- Does not modify the DSH official plugin or model selection RPC, nor does it re-register the
modellocale. - Directly reuses official
modelDirectoriesservice,modellocalization namespace, and selection data structure. - Custom slots use priority
-1; the official model selector with priority0remains installed and acts as a runtime fallback. - When the
modelDirectoriesservice is delayed in appearing, uninstalled, or incompatible, the custom slot will not mount, and the official slot will take over. - The current fully verified baseline is DSH
0.1.1-rc.2, Web platform, and Node.js 22 or higher. - DSH is still in development preview; after upgrading DSH, you need to re-run type, bundle, and browser lifecycle tests first.
Applicable Scenarios and Notes¶
- Suitable for use on the DSH Web platform when you want the model selector to collapse by provider and support keyboard navigation and
prefers-reduced-motion. - The plugin runs with the permissions of the current DSH process. You should check the source code, dependencies,
THIRD_PARTY_NOTICES.md,LICENSES, and licenses before installing. - The plugin code uses the MIT License; the bundle includes
clsx; seeTHIRD_PARTY_NOTICES.mdandLICENSESfor full attribution and third-party licenses. package.jsondeclares version0.2.0, andprivateistrue.- Settings preferences are saved locally in the browser and are not written to
settings.yaml, nor do they modify model configuration or invocation data.
Links¶
- Plugin Directory Page: https://www.skillhub.cn/plugins/ZoeHao2026/dsh-ui-model-selection-collapsible
- GitHub Repository: https://github.com/ZoeHao2026/dsh-ui-model-selection-collapsible