Introduction¶
DeepSeek Harness (DSH) adopts an “everything is a plugin” architecture. In the Web UI, the model selector is a high-frequency interaction area, but the native list often lacks visual distinction and also lacks automatic fallback mechanisms when the primary model times out. The dsh-msi-icons plugin aims to solve these two problems: it improves visual efficiency with official vendor icons and a four-zone layout, and improves stability with automatic routing for pinned model timeouts.
Plugin Overview¶
This is a model selector beautification plugin maintained by hun1315. Its core features include official vendor icon recognition, a four-zone flat layout, and automatic routing when the pinned primary model times out.
Installation¶
Installing the plugin requires the official CLI.
dsh plugin --profile web add github:hun1315/dsh-msi-icons
After installation, restart DSH to make the Host take effect, then refresh the page to see the four-zone layout and icons.
Core Features¶
Official Vendor Icons and Layout¶
The plugin adds official vendor icons to the model list and uses a flat four-zone layout. It does not render group titles, and only distinguishes entries by icons and colored suffixes. The four zones are ordered as: Pinned Zone, Native Zone, Plugin Zone, and Vision Zone.
- Name deduplication: Pinned models are not deduplicated against the Native Zone, ensuring that pinned entries remain visible.
- Pinning mechanism: Click the heart icon to pin a model. The data is persisted in localStorage and synchronized to the Host (used for timeout routing).
Pinned Primary Timeout Routing¶
When a pinned model times out while generating the first token (default 45 seconds) or reports an error, the plugin automatically switches to the next pinned model and retries.
- The fallback chain is persisted in pins.json and is not lost after restart.
- If all pinned models are unavailable, an error is thrown and the process stops; user-initiated cancellation does not trigger routing.
Configuring a New Vendor¶
Adding a completely new vendor requires no code changes; only configuration files and SVG assets are needed.
1. Place the vendor’s official SVG file in the ~/.dsh/msi-icons/icons/ directory.
2. Add a configuration entry to the vendors array in ~/.dsh/msi-icons/vendors.json:
{ "match": "关键词", "rank": 数字, "icon": "文件名.svg" }
- Refresh the page to apply the changes.
API and Maintenance¶
The plugin provides HTTP endpoints for external control.
| Route | Method | Description |
|---|---|---|
/msi-icons/pins |
POST | Sync the pinned fallback chain |
/msi-icons/state |
GET | Check the current pinned models and timeout threshold |
/msi-icons/icon?file=x.svg |
GET | Serve an icon file |
Notes¶
- No hard dependencies: It does not depend on modlens or vision-router. If either is missing, the corresponding section is hidden.
- Compatibility: The plugin locates DOM elements using CSS-module class names from DSH build artifacts. Major DSH version upgrades may change class name hashes, requiring updates to the class name mapping.
- Security: It does not modify any official DSH files. Uninstalling the plugin restores the original state.
Summary¶
This plugin optimizes the model selection experience through visual organization and automatic fault tolerance. Installation and configuration are straightforward, making it suitable for developers who value interaction efficiency.