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

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-lang is 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-5
  • reasoner; 32b
  • @ollama llama3
  • dsr
  • gpt4o
  • @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.