Bundle
dsh-provider-badge
Provider badge icon beside the composer model selector: DeepSeek whale SVG, bold GO/ZEN wordmarks for OpenCode Go/Zen, blocky initials otherwise. Client-only DSH plugin. · DSH 客户端插件:在模型选择器旁显示当前 provider 图标(DeepSeek 鲸鱼 / OpenCode GO·ZEN 字标)。
- Source
- marshfolx
- License
- MIT
- Updated
- Updated 7 days ago
Readme
# dsh-provider-badge

A client-only DSH plugin: shows the current model provider icon beside the composer model selector.
- **DeepSeek** (provider contains `deepseek`) → whale SVG
- **OpenCode Go** (provider contains `opencode`, e.g. `opencode-go`; or equals `go`) → bold merged "GO" wordmark
- **OpenCode Zen** (provider exactly `opencode`, or contains `zen`) → bold merged "ZEN" wordmark
- **other providers** → blocky initials
The badge subscribes to the model-selection plugin's per-session store (`modelDirectories`), so it updates instantly when the model changes, and scales with the composer tool-row height (DPI/zoom and row-height changes are both followed).
## Install
Install from GitHub (requires DSH):
```bash
dsh plugin --profile <profile> add github:marshfolx/dsh-provider-badge#main
```
This adds the plugin to the profile's `package.json` (`dependencies` + `dsh.profile.bundles`) and installs it. Restart DSH afterwards.
Manual equivalent — in the profile's `package.json`:
```json
"dependencies": {
"dsh-provider-badge": "github:marshfolx/dsh-provider-badge#main"
}
```
append `"dsh-provider-badge"` to `dsh.profile.bundles`, then run `pnpm install` in the profile directory and restart DSH.
## Tuning (edit + refresh; no live reload needed)
Permanent: edit `TUNING_DEFAULTS` at the top of `client/client.js`:
| key | default | meaning |
| --- | --- | --- |
| `iconScale` | `1` | icon height multiplier (whale 13px, letters 10px) |
| `yOffset` | `0` | vertical offset in px, positive = down |
| `color` | `'var(--dsw-alias-label-caption)'` | icon color; follows the theme's caption text color (same as the effort label Max/High). For semi-transparency use `rgba(...)` or `color-mix(in srgb, var(--dsw-alias-label-caption) 70%, transparent)` |
Temporary (no file edit): in the browser console,
```js
localStorage.setItem('dsh-provider-badge:tuning', JSON.stringify({ iconScale: 1.1, yOffset: -1 }));
location.reload();
```
Clear with `localStorage.removeItem('dsh-provider-badge:tuning')`.
After editing `client/client.js`, refresh the page (hard refresh Ctrl+F5 if cached).
## Structure
- `cordis.patch.yml` — composition insert row (`provider-badge`)
- `dsh.plugin.json` — plugin manifest metadata
- `lib/index.js` — host half (empty; client-only plugin)
- `client/client.js` — browser half (`window.__ModuleLoader__.load` registration; zero build, zero deps)
Install
dsh plugin --profile web add github:marshfolx/dsh-provider-badge
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-provider-badge from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.