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 ms symmetric animation and support prefers-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 modelDirectories service, model localization namespace, and selection data structure.
  • Custom slots use priority -1; the official model selector with priority 0 remains installed and serves as a runtime fallback.
  • Does not introduce new commands, Host config schemas, or RPCs, nor does it re-register the official model localization namespace.
  • Adds custom settings pages via the official settings.section extension point, only replacing the visual slot for conversation.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.model and adds its own settings page via the official settings.section extension 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 model locale.
  • Directly reuses official modelDirectories service, model localization namespace, and selection data structure.
  • Custom slots use priority -1; the official model selector with priority 0 remains installed and acts as a runtime fallback.
  • When the modelDirectories service 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; see THIRD_PARTY_NOTICES.md and LICENSES for full attribution and third-party licenses.
  • package.json declares version 0.2.0, and private is true.
  • 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