DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

Client Ui Model Switcher — DSH Plugin for DeepSeek Harness
DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins
C

dsh-client-ui-model-switcher

Client Ui Model Switcher

One-click provider/model switcher for the DeepSeek Harness web GUI: a session-header action that lists every configured provider and its models and switches the session in a single click.

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add github:2275803244-cpu/dsh-model-switcher#673da30ed86e902adcd2a02832649f3a19e36672
READMECompatibilityVersions

Compatibility and provenance

Client Ui Model Switcher is published as dsh-client-ui-model-switcher and currently resolves to version 0.8.1. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
github
Registry updated
9/9/2026

Versions

0.8.1stable
9/9/2026
0.8.0stable
9/6/2026

Related plugins

Loading related plugins…

Latest
0.8.1
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
Unavailable
Files
Unavailable
Surface
web
License
MIT
Source
github
GitHub
★ 0
Weekly downloads
0
Last push
9/9/2026
View source ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue

Related plugins

More verified plugins in models-usage.

Usage@linxin666/dsh-usageUsage statistics plugin for the dsh web GUI: per-provider balance and coding-plan quota detection plus a live token usage ledger, with the current session provider's today usage on the sidebar entryWhale Widgetdsh-whale-widgetDeepSeek balance whale widget in the bottom-right corner of the DSH Web interface: balance/today’s usage/peak-off-peak pricing, customizable bubble click sequence (text/balance/today/peak-off-peak/image/random phrases and parallel weighted selection), per-line styles and fonts, floating quick editinUsage Stats@ychris12138/dsh-usage-statsToken usage heatmap, provider balances, and subscription quotas for the dsh web GUICodex Connectdsh-codex-connectChatGPT OAuth and Codex models for DeepSeek Harness.

README

dsh-client-ui-model-switcher

DeepSeek Harness Web GUI 的一键服务商/模型切换客户端插件。

会话标题栏加一个滑块按钮:弹出所有已配置的服务商和它们的模型,点一下即切换,不用再进设置一个个配。

功能

  • 替换原生模型选择器:输入框右下角的原生模型选择器被替换为增强版——默认显示当前服务商的模型列表,点击「切换服务商 →」可换服务商,两级联动:顶部一排服务商 chips(带模型数),先点服务商,下方联动显示该服务商的模型列表,点模型即切换,服务商(及其地址)自动跟随
  • 只显示配置好的:面板通过 llm.providers + settings.describe + credentials.describe 检查每个服务商的 key 状态,没有 key 的服务商不显示(补 key 后自动出现)
  • 当前状态:面板顶部显示当前服务商 / 模型,当前项带蓝色高亮和 ✓
  • 实时目录:打开时自动刷新模型目录(与 /model 命令、composer 模型席位共享同一份状态,任一入口切换其它入口同步)
  • 异常提示:服务商不可用、目录加载失败、失败的服务商列表都会显示
  • 会话限制:子代理会话(不支持切换模型的)会禁用并提示

实现要点

  • 槽位:conversation.session.header.actions(order=25)
  • 服务:modelDirectories(ctx.modelDirectories.directoryFor(sessionId))
  • 目录状态:react.useSyncExternalStore 订阅 directory.store(uSES 兼容 SnapshotStore)
  • 切换:directory.select({ provider, model })——与 /model 弹窗和 composer 模型席位同一个控制器,Host 是唯一事实源
  • 纯浏览器侧,手写 ModuleLoader bundle,零构建(仅 react / react/jsx-runtime)

安装

pnpm --dir "$HOME\.dsh\profiles\web" add github:2275803244-cpu/dsh-model-switcher

cordis.patch.yml 追加:

- insert:
    - id: ui-model-switcher
      name: 'dsh-client-ui-model-switcher'

重启 dsh web,会话标题栏出现滑块按钮。

服务商目录来自 设置 → 模型 里已配置的适配器;要增加新服务商(如本地 Ollama),先在模型设置中配置好,一键切换里就会出现。

0.8.1 修复(本地补丁)

针对 DSH 0.1.2-rc.1 的 Remote 契约与原生选择器行为修正了以下问题(test/client.test.cjs 覆盖):

#问题修复
1usableProviders 调用不存在的 API(llm.providers({})、settings.describe({})、credentials.describe({refs})),异常被吞掉后返回 null,"只显示配好 key 的服务商" 实际从未生效改用 llm.listProviders() + llm.listConfigurableProviders() + settings.describe() + credentials.describe(refs: string[]),并用注册表判定路由是否 active
2取 API 面用 connection.api,该属性在 ConnectionHandle 上不存在(当前实现是 ctx.remote),导致上面第 1 条必然失败改用 ctx.remote(inject 增加 remote),保留 connection.api 兜底
3usableMap 跨开关持久,补 key 后重开面板仍被旧的过滤结果挡住每次打开重置并重新拉取,异步结果用 live 标记防竞态
4过滤后若一个服务商都不剩,面板空白无法切换过滤结果为空时回退到完整列表
5切换模型只提交 {provider, model},丢掉推理强度:与 /model 弹窗/composer 席位行为不一致,原生席位会带 reasoning.defaultEffort,重选当前模型时保留用户已选强度新增 selectionFor(),与原生 selectionOf() 同语义
6两个触发器都显示原始模型 id(deepseek-v4.1-flash-expires-on-0910),且不显示推理强度新增 modelName()/effortLabel(),显示模型名 + · 强度
7面板打开时点触发器不会关闭触发器改为切换语义
8rootRef.current 可能为 null 时的 contains() 抛错加空值保护

测试:

node test/client.test.cjs    # 10 项断言,无需安装依赖

卸载

pnpm --dir "$HOME\.dsh\profiles\web" remove dsh-client-ui-model-switcher
# 删掉 cordis.patch.yml 的 ui-model-switcher 行,重启

贡献

欢迎提交 PR!请先阅读 CONTRIBUTING.md。

  • 跑测试:node test/client.test.cjs(提交前必须全绿)
  • 提交信息遵循 Conventional Commits

参考

  • ModelDirectory / ModelDirectoryResolver:dsh-client-ui-model-selection/lib/types/client/service.d.ts、directory.d.ts
  • 目录状态契约:dsh-client-ui-model-selection/lib/types/client/directory.d.ts
  • 类型:dsh-host-apiproxy/lib/types/api/sessions.d.ts(ModelSelection / ModelProviderGroup / SessionModels)