dsh-client-ui-model-search
No description
- Stars
- 0
- Language
- JavaScript
- Created
- Sep 2, 2026
- Updated
- Sep 3, 2026
Introduction
dsh-client-ui-model-search
A small client UI plugin for DeepSeek Harness that makes the web composer's model selector usable at scale:
- 🔍 Search box at the top of the model list — filters as you type.
- Tokenized AND matching:
opencode-go deepseekfinds OpenCode Go's DeepSeek models (hyphens and underscores are treated as spaces). - Matches model name, model id, description, provider name, and provider id.
- Tokenized AND matching:
- 🗂️ Collapsible provider groups — click a group header to collapse/expand it. A count badge shows how many models a group holds.
- 🌗 Theme-aware — uses DSH design tokens (
--dsw-*), so light/dark follows the active theme. - 🌐 Bilingual — zh-CN and en dictionary via the official
localeservice. - ♻️ Non-destructive — registers on the official
conversation.input.modelseat withpriority: -1, so the shipped selector stays mounted underneath as a fallback. Uninstall (or stop the plugin) and the native selector returns.
Not an official DeepSeek product. No endorsement, review, or store listing by DeepSeek.
How it works
The official @deepseek-ai/dsh-client-ui-model-selection package owns a per-session ModelDirectory service (ctx.modelDirectories) shared by the composer model seat and the /model popup. This plugin reuses that exact directory — including select() — so a picked model lands on the standard directory.select() path and stays in sync with /model.
Install
Requires a DSH profile with the web UI.
dsh plugin --profile <name> add dsh-client-ui-model-search
Then restart the profile:
dsh --profile <name> web
Open the model selector in the composer (bottom-right). The search box appears above the model list; group headers are clickable.
Local checkout
dsh plugin --profile <name> add ./dsh-client-ui-model-search
Uninstall
dsh plugin --profile <name> remove dsh-client-ui-model-search
Restart the profile: the native selector returns (it was never removed).
Screenshots



demo.html renders the exact menu UI (same CSS classes and mock data) standalone in any browser — open it to take additional screenshots.
Compatibility notes (DSH is pre-release)
- The package is authored against the official bundle format:
package.jsondsh.bundle.patch→cordis.patch.yml, plus adsh.clientweb entry, matching@deepseek-ai/dsh-client-ui-model-selection@0.1.1-rc.2. dsh-plugin.jsonis a Community Draft v0.15 manifest (dsh-std, schema validated). It declares a no-ophostfacet because the v0.15 draft has no web-slot contract; the composer-seat contribution therefore rides the official web slot, not a dsh-std contract. When upstream adds a web contract, this can be upgraded.- If upstream renames
conversation.input.modelor themodelDirectoriesservice, this plugin stops taking effect (and the native selector simply stays). That is the documented cost of riding an official seam; the dsh-std adapter path is the mitigation once a web contract lands.
License
MIT