Introduction¶
When developing or performing inference with the DeepSeek Harness (DSH) WebUI, the default model selector dropdown can become difficult to navigate as the number of local and remote models increases. goodandready/dsh-model-search aims to solve this problem by injecting a real-time search field into the DSH model selector. It supports multi-term search, abbreviation matching, and keyboard shortcuts, allowing you to locate a model quickly without switching context.
Plugin Overview¶
goodandready/dsh-model-search is a DSH web plugin maintained by developer GooDAnDReaREADY. It integrates into the WebUI through non-invasive DOM manipulation, providing model filtering, keyboard navigation, and one-click update functionality, with compatibility for Dark/Light themes.
Installation and Activation¶
Run the following command in a terminal to add it to the Web configuration file:
dsh plugin --profile web add @goodandready/dsh-model-search
After completion, restart DSH or refresh the browser interface, and the search box will become available in the model selector.
Core Features¶
Multi-term and Delimiter-aware Search¶
The plugin supports separating multiple search terms with spaces, commas, slashes, or semicolons. The system performs combined matching against model names, technical identifiers, or provider groups.
Abbreviation and Subsequence Matching¶
Matching for non-contiguous subsequences in model names is supported. For example, entering dsr directly matches deepseek-reasoner, and entering gpt4o matches openai/gpt-4o-mini.
@provider Syntax¶
You can use the @ prefix to scope results to a provider. Entering @ollama shows only models registered by Ollama; entering @ollama qwen further filters the Qwen models under that provider.
Keyboard Navigation Matrix¶
The plugin provides full keyboard support, allowing users to operate without a mouse:
| Key | Action |
|---|---|
ArrowDown |
Moves focus to the next visible matching model |
ArrowUp |
Moves focus to the previous visible model; if at the top, returns to the search box |
Enter |
Immediately selects the currently highlighted model or the first visible model |
Escape |
Clears the search box; if the box is empty, closes the dropdown |
Core Integration and Compatibility¶
- Non-invasive DOM manipulation: Only toggles element visibility (
display: none) without breaking the React virtual DOM structure. - Resilient to upstream changes: Independent from CSS hash changes in DSH core modules.
- Theme-native styling: Fully uses official DSH design tokens and automatically adapts to dark and light modes.
- Multi-language support: Built-in English and Chinese; Russian is loaded dynamically when
@goodandready/dsh-russian-langis activated.
One-click Update and Settings¶
The plugin integrates a native settings card, located under DSH Settings -> Plugins -> Plugin Settings (under the dsh-model-search namespace).
- In-app updates: Automatically detects new versions in the npm repository and supports one-click updates (including pre-release version checks).
- Security mechanisms: Uses a loop fallback safety policy and single-click protection.
Typical Usage Examples¶
openrouter/claude-3-5reasoner; 32b@ollama llama3dsrgpt4o@openai@ollama qwen
Notes and Dependencies¶
- Node version: The plugin requires Node.js 20 or later.
- Performance: The search process has zero CPU overhead and does not affect chat streaming output performance.
- License: MIT License, allowing free use and modification.