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.

Model Switchboard — DSH Plugin for DeepSeek Harness
← Plugins
M

dsh-model-switchboard

Model Switchboard

Manage all models in DSH from one place: the Settings page’s “Model Toggles” lists every provider and model, including those dynamically registered by plugins and not visible in the built-in Models page. Toggle individual models or entire groups; disabled models disappear from all model selectors. A

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

npx -y @deepseek-ai/dsh plugin --profile web add github:DriverWangNB/dsh-model-manager#d56e214fcf014a3ca54ec3584adb2735c91df5bc
READMECompatibilityVersions

Description

Manage all models in DSH from one place: the Settings page’s “Model Toggles” lists every provider and model, including those dynamically registered by plugins and not visible in the built-in Models page. Toggle individual models or entire groups; disabled models disappear from all model selectors. Also includes a read-only list_models tool.

Compatibility and provenance

Model Switchboard is published as dsh-model-switchboard and currently resolves to version 0.1.0. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

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

Versions

0.1.0stable
10/15/2026

Related plugins

Loading related plugins…

Latest
0.1.0
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
Unavailable
Files
Unavailable
Surface
web
License
MIT
Source
github
Weekly downloads
0
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
DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in

Related plugins

More verified plugins in models-usage.

Whale 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@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 a compact price glance card above the sidebar's Settings rowClient Ui Model Capabilities@linxin666/dsh-client-ui-model-capabilitiesPer-model capability declarations (image input and reasoning efforts) for custom pi-ai providers, edited in place on the Models settings cards; writes the official llm-pi-ai settings namespace, no DSH source changes.Cost Meterdsh-cost-meterDeepSeek Harness session cost statistics plugin: current session cost, today’s charges, historical records, and synchronization with official pricing; supports multi-provider, multi-model price calculation (built-in pricing catalog for 170+ model IDs with automatic matching); queries and displays su

README

dsh-model-switchboard

DSH(DeepSeek Harness)的模型开关:在设置页多出一个「模型开关」分区,把 DSH 里所有 provider 和模型摊开,逐个或整组关掉,关掉的模型会从所有模型选择器里消失。

为什么需要它

DSH 内置的「Models」设置页只覆盖在配置里声明过的 provider。插件动态注册的那批——比如 dsh-our-free-model 带来的 our-free-model、our-free-model-region——在各个选择器里可见,却在内置页面上找不到,于是关不掉。

模型一多,输入框上方的选择器会长得没法看。这个插件补上那一块:

  • 设置页「模型开关」列出运行时段全部 provider 与模型
  • 逐模型开关 + 按 provider 整组开关
  • 关掉的模型立即从所有模型选择器消失——输入框上方、/model 弹窗、子代理模型设置,不用刷新页面
  • 附带 list_models 工具:只读列出当前实际生效的模型

安装

在 DSH profile 的 package.json 里加依赖,三种源任选其一:

"dependencies": {
  "dsh-model-switchboard": "^0.1.0"
}
"dependencies": {
  "dsh-model-switchboard": "github:DriverWangNB/dsh-model-manager"
}

国内网络如果拉 GitHub 不稳,换成 Gitee 镜像(内容同步,同一个包):

"dependencies": {
  "dsh-model-switchboard": "git+https://gitee.com/link77/dsh-models-manager.git"
}

依赖的键必须是包名 dsh-model-switchboard;仓库叫什么名字不影响(仓库仍是 dsh-model-manager),pnpm 认的是仓库里 package.json 的 name。

再把包名登记进 dsh.profile.bundles:

"dsh": {
  "profile": {
    "bundles": [
      "dsh-model-switchboard"
    ]
  }
}

然后 pnpm install,重启 DSH。

使用

设置 → 模型开关。

操作结果
点 provider 开关(原本全开)整组关闭,组员一起显示关闭
点 provider 开关(原本整组关闭或部分显示)整组全部打开
点某个组员开关只切换那一个
在整组关闭的状态下点某个组员该组退出整组关闭,只有这个组员和组是开的

provider 开关有三种状态:显示中(蓝)、部分显示(橙,组里有模型被单独关掉)、已关闭。

开关状态存在 ~/.dsh/dsh-model-switchboard/disabled.json,重启后保留。

从旧包名 dsh-model-manager(≤0.3.3)升级:状态目录一起改了名,旧的 ~/.dsh/dsh-model-manager/disabled.json 不会被读取。想保留原来的关闭项,把那个文件复制到新目录即可;不复制就是全部重新打开。

工具

工具说明
list_models列出运行时段每个 provider 实际生效的模型数,并标出被隐藏的
dmm_probe自检:插件是否加载、包装了几个 adapter、广播链路是否通

HTTP API

方法路径说明
GET/api/dsh-model-switchboard/state当前开关状态与展示数据
POST/api/dsh-model-switchboard/toggle切换单个模型或整组
POST/api/dsh-model-switchboard/bulk批量切换
POST/api/dsh-model-switchboard/reset清空所有关闭项

工作原理

Host 半身用 Proxy 包住 ctx.llm.adapters 里每个 registration 的 adapter,只替换 reg.adapter,拦截 listModels / listAllModels 后按当前状态过滤——原 adapter 一个字节都不改。

这一点很关键:像 channel-pack 这类渠道的 adapter 本身就是 Proxy,直接改写它的方法会陷入无限递归(真机上表现为渠道报 Maximum call stack size exceeded)。

状态一变,插件广播 llm/adapters-updated。客户端的常驻模型目录(ModelCatalogDirectory)只在收到这个事件时才重拉;不广播的话,页面会一直用着启动时缓存的那份目录——看起来就像"开关没生效"。

关闭状态不写进任何 provider 配置,只影响运行时可见性,因此不会破坏既有配置。

开发

node --test host.test.mjs

离线回归测试,用假的 ctx / llm 覆盖过滤、整组联动、广播,以及 channel-pack 式 Proxy 形状。

许可

MIT