DeepSeek Harness adopts a plugin-based architecture. When connecting to a large number of models through multi-model providers such as OpenRouter, the browsing efficiency of the native menu decreases. dsh-model-picker-search replaces the native menu and adds search and filtering capabilities.
Plugin Positioning¶
This is an improved model picker plugin for DeepSeek Harness and DSH Desktop, developed by maintainer imdeniil. It extends the functionality of the model selection interface through client-side technology, solving the problem of difficulty locating a target model when there are hundreds of models.
Core Features¶
The plugin is fully client-side and does not depend on backend services. Its core capabilities are as follows:
-
Search
Replaces the native model menu. Supports searching by model name, ID, description, and provider. Search is case-insensitive. The search box automatically gains focus when the menu is opened. -
Provider Filtering
Provides a set of clickable provider filter chips, displaying “All” and the specific provider list. Clicking a chip toggles the filter state; clicking it again cancels the filter. -
Result Count and Adaptive Height
Displays the number of filtered results (for example, “M: 21 of 278”). The menu height adapts automatically and does not exceed the screen boundaries; content beyond the visible area scrolls automatically. -
Multi-Language Support
Includes a built-in localization dictionary and supports Russian, English, and Chinese.
Installation and Activation¶
A profile must be specified during installation. If using both the web client and the desktop client, run the corresponding commands separately.
# 安装到 Web Profile
dsh plugin --profile web add github:imdeniil/dsh-model-picker-search
# 安装到 Desktop Profile
dsh plugin --profile desktop add github:imdeniil/dsh-model-picker-search
After installation, restart the application or run the dsh web command for it to take effect.
Typical Usage¶
- Open the model selection menu.
- Enter letters or keywords in the search box; the list filters in real time by name, ID, or description.
- Click a provider chip at the top to view only models from a specific provider.
- Press
Escto clear the search query and filter conditions. - View the total number of models after filtering at the bottom of the menu.
Technical Implementation and Notes¶
- Registration Mechanism: The plugin is registered in the
conversation.input.modelslot with a priority of-1. According to DSH slot rules, a smaller priority value has higher rendering priority, so this plugin overrides the native menu. - Fallback Mechanism: If an error occurs while the plugin is rendering, the system automatically falls back to the default model menu and does not cause the interface to crash.
- Runtime Environment: The plugin is fully client-side and runs directly in the browser or desktop client.
Summary¶
This plugin improves operational efficiency in multi-model scenarios by enhancing the interaction experience of the model picker. It is a practical tool for users who frequently switch or filter a large number of models.