During the use of DeepSeek Harness (DSH), frequent model switching is common. Identifying the current model’s corresponding provider (such as DeepSeek, OpenCode, etc.) by text name alone is sometimes not intuitive enough. The dsh-provider-badge plugin solves this issue by displaying the current provider’s icon next to the model selector.
This is a client-side plugin developed by maintainer marshfolx. It subscribes to the model selector plugin’s modelDirectories store, allowing it to respond to model changes in real time and automatically adapt to scaling and line-height changes in the interface layout.
Core Features¶
The plugin displays different icon styles based on model name matching rules:
- DeepSeek: When the provider name contains
deepseek, display a whale SVG icon. - OpenCode Go: When the provider name contains
opencode(such asopencode-go) or equalsgo, display a bold combined “GO” wordmark. - OpenCode Zen: When the provider name equals
opencodeor containszen, display a bold combined “ZEN” wordmark. - Other providers: By default, display the provider’s initial in a square.
Icon height rescales automatically according to DPI and line height.
Installation and Enablement¶
Install it through the official DSH command-line tool:
dsh plugin --profile <profile> add github:marshfolx/dsh-provider-badge#main
After installation, you need to restart the DSH process to load the plugin. If you add it manually by modifying package.json, append the package name to dsh.profile.bundles and run pnpm install.
Icon Appearance Adjustments¶
The plugin provides two ways to adjust icon size, position, and color.
Permanent Adjustments¶
Edit the client/client.js file in the plugin source code and modify the TUNING_DEFAULTS object located near the top.
| Configuration Item | Default Value | Description |
|---|---|---|
iconScale |
1 |
Icon height multiplier (whale icon baseline 13px, letter icon baseline 10px) |
yOffset |
0 |
Vertical offset (pixels), positive values move it downward |
color |
'var(--dsw-alias-label-caption)' |
Icon color, following the theme’s label caption color. If you need transparency, you can use rgba(...) or color-mix(...) |
After making changes, refresh the page (hard refresh with Ctrl+F5 is recommended).
Temporary Adjustments¶
Without editing files, execute the following code directly in the browser console, then refresh the page:
localStorage.setItem('dsh-provider-badge:tuning', JSON.stringify({ iconScale: 1.1, yOffset: -1 }));
location.reload();
To restore the defaults, simply clear that key:
localStorage.removeItem('dsh-provider-badge:tuning');
location.reload();
Plugin Structure¶
Understanding its structure can help with troubleshooting or secondary development:
cordis.patch.yml: Defines where components are injected into the UI.client/client.js: Main browser-side logic, including theTUNING_DEFAULTSconfiguration and module registration.lib/index.js: Host-side logic (empty file, since this is a purely client-side plugin).
Notes¶
- This plugin is purely client-side and does not involve server-side logic.
- Since the plugin injects DOM and styles, it is recommended to review its source code and license (MIT) before installation.
- Currently, configuration changes do not support hot reloading; you must refresh the page for changes to take effect.