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 as opencode-go) or equals go, display a bold combined “GO” wordmark.
  • OpenCode Zen: When the provider name equals opencode or contains zen, 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 the TUNING_DEFAULTS configuration 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.