Introduction

In the DSH web profile, the native model selector and thinking strength selector are integrated into a single submenu. As the number of models grows, locating them becomes inconvenient, and adjusting thinking strength is not intuitive enough. The dsh-better-model-selector plugin splits these two controls into two independent components and introduces more reasonable interactions.

Plugin Overview

The plugin is maintained by Khellendros97 and aims to optimize the model management experience in the DSH web interface. It does not change underlying data structures; instead, it overrides UI slots to adjust display and interaction logic.

Core Features

  1. Model Selector
    It retains the dropdown menu format but adds a search feature, making it easier to quickly locate a model in the model list. It also supports marking favorites, enabling quick access to frequently used models.

  2. Thinking Strength Selector
    It changes the original selection control into a slider, making operations more intuitive and the adjustment range clearer.

  3. Keyboard Shortcuts
    - Ctrl/Cmd + P: Quickly switch models, cycling through the favorites list.
    - Ctrl/Cmd + T: Cycle through the thinking strength of the current model.

Installation and Enablement

The plugin relies on the DSH next channel, and its peerDependencies point to @deepseek-ai/* ^0.1.0-rc.6. Please ensure that your DSH environment satisfies the dependency requirements (Node.js ≥ 20, and dsh web runs normally).

  1. Install the plugin using the official CLI:
dsh plugin --profile web add dsh-better-model-selector

This command automatically handles dependency registration and mounting. After installation, restart DSH and perform a hard refresh in the browser (Cmd/Ctrl + Shift + R) to apply the changes.

Mechanism and Persistence

  • State Synchronization: The plugin overrides the built-in conversation.input.model slot and reads/writes the session-level ModelDirectory (provided by @deepseek-ai/dsh-client-ui-model-selection), so it shares the same state as the /model command popup.
  • Favorites Storage: The favorites list is persisted in a host-level cookie (dms_favs, path /, approximately 1 year validity) and is stored locally only. Compared with localStorage, cookies are isolated by host, which avoids losing data from old ports when DSH web restarts with a different port. On first read, it automatically migrates favorites from the old cookie (dmt_favs) and localStorage (dsh-model-toolbox:favorites:v1).

Limitations and Notes

  • Display Condition: The thinking strength slider is displayed only when the current model publishes reasoning strength metadata.
  • Subagent Sessions: In addressed subagent sessions, model selection is not available; the control is hidden and keyboard shortcuts do not work.
  • Shortcut Behavior: Ctrl+P / Ctrl+T take effect only when a current session exists; if there is no current session, they do not intercept the browser’s default behavior (for example, Ctrl+T still opens a new tab).

Conclusion

By decoupling model selection from thinking strength adjustment and introducing keyboard shortcut support, the plugin improves operational efficiency in multi-model scenarios. See below for the plugin directory and source code location.