DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
M

dsh-model-picker-brand

Model Picker Brand

DeepSeek Harness 模型选择器中的提供商标志和模型 ID——官方 conversation.input.model.label 插槽上的标签装饰器,采用基于注册表的品牌匹配。核心代码零改动。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:zhangyongshuai56-hub/dsh-model-picker-brand#8ee0ebd7cb9019629917f4838bcabbc703d3612a
README兼容性版本
Social previewDark and light themes at the real picker sizes

兼容性与来源证明

Model Picker Brand 以 dsh-model-picker-brand 发布,当前版本为 0.1.1。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/10/31

版本

0.1.1stable
2026/10/31

相关插件

正在加载相关插件…

最新版
0.1.1
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
GitHub
★ 1
周下载
0
最近提交
2026/10/31
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 ui-customization 分类下经过校验的插件。

Web App@deepseek-ai/dsh-web-appdsh 浏览器界面捆绑包:位于 dsh-base 之上的 Web 补丁层,加上运行时粘合插件(提供前端 dist、Web 界面提示符、bash 运行时变量和 URL 行)Experimental Session Titles Bundle@deepseek-ai/dsh-experimental-session-titles-bundle新的用户提示到达时刷新会话标题。Personalized Recommendations@deepseek-ai/dsh-personalized-recommendations回答下方以卡片形式提供个性化页面和内置插件推荐Experimental Agent Team Web Profile@deepseek-ai/dsh-experimental-agent-team-web-profile用于 Agent Teams Remote 和 UI 插件的实验性 Web 配置层

README

Social preview

dsh-model-picker-brand

Provider logos and model IDs in the DeepSeek Harness model picker.

The composer's model picker normally shows one line of text — DeepSeek-V4.1-Flash. This plugin puts a brand logo in front of every model and adds the model ID beside the name, so you can tell at a glance which provider a model belongs to and which exact route you are on.

Zero core changes: it registers a label decorator on the official conversation.input.model.label slot. Disable the plugin and the picker is exactly as shipped.

  • 22 brand marks — colored vectors, light and dark themes, 14px and 16px verified
  • Registry-driven matching — provider id, display name (Chinese included), or model prefix; unknown providers get a letter monogram instead of another vendor's logo
  • Never breaks the picker — every label renders inside a try/catch and falls back to model.name

Dark and light themes at the real picker sizes

Install

From the plugin wizard

Open Settings → Plugins → Add plugin, search dsh-model-picker-brand, and click Install.

With the dsh CLI

dsh plugin --profile web add dsh-model-picker-brand

Straight from this repository, without npm:

dsh plugin --profile web add github:zhangyongshuai56-hub/dsh-model-picker-brand

Update

dsh plugin --profile web update dsh-model-picker-brand@latest

Restart (or hot-reload) the host once. Remove the bundle entry to uninstall — nothing else is written.

Requirements: dsh >= 0.2.1-rc.2. No build step, no runtime dependencies.

中文说明

输入框的模型选择器从「纯文本模型名」改为「提供商彩色 logo + 模型 ID」:触发按钮显示 [logo] 模型ID, 菜单项与列表项显示 [logo] 名称 + 灰色模型 ID。零内核改动——只往官方插槽 conversation.input.model.label 注册标签装饰器(priority −10 接管渲染),停用插件即恢复原样。

安装:dsh plugin --profile web add dsh-model-picker-brand,重启生效。

What changes

WhereBeforeAfter
Composer trigger buttonDeepSeek-V4.1-Flash[logo] deepseek-flash (compact, ID first)
Menu "Model" rowDeepSeek-V4.1-Flash[logo] DeepSeek-V4.1-Flash deepseek-flash
Model list itemsDeepSeek-V4.1-Flash[logo] DeepSeek-V4.1-Flash deepseek-flash
Unknown providerplain textfirst-letter monogram in a colored chip

Hovering any label shows name · id as a title.

How it works

The official picker renders every model label through a slot:

renderSlot("conversation.input.model.label",
           { provider, model, placement, selected },
           { fallback: model.name })

placement is "trigger" | "menu" | "option". This plugin registers a decorator on that slot at priority −10; the slot registry renders the lowest priority, so it takes over the label without touching @deepseek-ai/dsh-client-ui-model-selection. The official badge plugin (dsh-client-ui-deepseek-model-label-1017) also registers at priority 0 and is shadowed while this plugin is enabled — disable this plugin and it comes back untouched.

Every label is wrapped in a try/catch: any unexpected shape falls back to model.name, so the picker can never fail to render because of this plugin.

Brand matching

A flat id → icon table breaks the moment a provider ships a second id (zhipu / z-ai / glm / zcode are the same vendor). Matching is registry-driven instead — each brand carries three kinds of clues, tried by confidence:

OrderClueExamples
1override (localStorage){"some-new-provider":"zhipu"} — no code change needed
2token on provider.idzhipu zhipuai z-ai zai glm zcode bigmodel chatglm; split on separators, longer tokens first
3name on provider.name (Chinese included)智谱 智谱清言 通义千问 月之暗面 阿里云 豆包
4model prefix (weakest)glm-4.6 → Zhipu, claude-3-7 → Claude, gpt-4o → OpenAI, gemini-2.5 → Gemini
5no matchfirst-letter monogram — never another vendor's logo

Fix a provider without waiting for a release:

localStorage.setItem('dsh.model-picker-brand.overrides', JSON.stringify({ 'my-provider': 'zhipu' }))

Debug from the browser console: dshModelPickerBrand.resolve({ id: 'zai' }).

Assets and theming

22 brands: colored vectors from svgl, with simple-icons (CC0) filling the gaps. All trademarks belong to their owners; the marks are used only to identify the service a model comes from.

  • Monochrome marks (Anthropic, OpenAI, Ollama, Qwen, OpenRouter) become currentColor and follow the light/dark theme.
  • Colored marks (DeepSeek, Claude, Gemini, Mistral, NVIDIA, Kimi, Cloudflare) keep their real colors; white details stay white, so a blue tile with a white glyph does not turn into a black blob.
  • Z.ai / Zhipu uses the official logo from z.ai (#2D2D2D tile + white hairline + white Z). The hairline is what keeps it readable on dark themes at 14px.
  • Root <svg> fill/stroke are pushed down into a <g>; gradient IDs are namespaced per brand so inline SVGs cannot repaint each other.

Development

npm test    # 42 cases: id variants, Chinese names, model inference, fallback, overrides

The test loads lib/client.js through a stub ModuleLoader, then asserts the resolver — offline, no host required.

lib/index.js        host half — one status route (/dsh-model-picker-brand/status)
lib/client.js       browser half — the label decorator and bundled vectors
cordis.patch.yml    bundle patch that mounts the plugin
tests/resolve.test.mjs

Releases are published from CI through npm trusted publishing (OIDC, no token) with a SLSA provenance statement: pushing a v* tag runs npm run check, npm test, then npm publish --provenance. See .github/workflows/publish.yml.

License

MIT. Brand marks remain the property of their respective owners.