DSH Hub
dsh-llm-hub cover

webkubor/dsh-llm-hub

dsh-llm-hub

UIWeb UI14 GitHub stars· updated 2026-09-27

dsh-llm-hub is a community DeepSeek Harness plugin. Read the repository README before installing.

Install

npx @deepseek-ai/dsh plugin --profile web add @dsh-plugins/dsh-llm-hub

Restart `dsh web` after install. Bundle APIs can change during the developer preview.

README badge

dsh-llm-hub DSH Hub badge
[![DSH Hub](https://dshhub.dev/badge/dsh-llm-hub.svg)](https://dshhub.dev/plugins/dsh-llm-hub)

Paste this into your README. The star count updates with every catalog sync.

From the README

Excerpt from webkubor/dsh-llm-hub, cleaned of badges and images.

<h1 align="center">🔌 dsh-llm-hub</h1>

<strong>给 DSH 模型页补上官方适配器缺的那半。</strong><br/> <sub>Gateway health, model catalog, balance — the half the built-in adapter leaves out.</sub>

 ·  <a href="README.en.md">English</a> · <a href="CHANGELOG.md">更新日志</a>

DSH 的模型页上,官方适配器有一半事情没做。这个插件把它补上:

官方适配器dsh-llm-hub
DeepSeek 有哪些模型看不到一键拉取在售列表
账户还剩多少钱看不到卡片下常驻余额 + 阈值预警
网关通不通、多快按钮点了没反应实测延迟与状态 + 健康看板
网关上有多少模型看不到实测 71 个(手填只有 11)
为什么探测不了无提示写明「没配 baseURL」
本月花了多少 token没有用量统计 + 前 5 个最常用模型 + CSV 导出
不可用的 provider仍在下拉里下拉里静默摘掉,卡片上标红 + 原因
外部 agent CLI(codex/claude/agy)装不装无感装了就出现子代理工具
<br /> <sub>装上之后的模型页:每张 provider 卡片下方多出一行 —— 协议、接入地址、已配模型数、余额,右侧是探测与拉取目录</sub>

装

dsh plugin --profile web add @dsh-plugins/dsh-llm-hub

再把 @dsh-plugins/dsh-llm-hub 加进 ~/.dsh/profiles/web/package.json 的 dsh.profile.bundles 数组, 然后 ~/.dsh/restart.sh。打开设置 → 模型,provider 卡片下方会多出一行。

<sub>boot graph 变了必须重启,热载不生效;cordis.patch.yml 由 bundle 机制自动 insert。</sub>


最新发布 · v1.5.1 (2026-09-26)

一句话:套餐 vs 按量付费智能识别 + 手动切换;LLM 下拉套餐模型自动置顶; 修了一个永远只显示「LLM Hub 已激活」的家族面板 bug。

📦 v1.5.1 on npm · 🚀 GitHub Release notes · 📋 完整更新日志

三件用户能看到的事:

  1. 套餐 vs 按量付费:每个 provider 卡片新增 billing capsule,左边"按量付费"右边"套餐", 自动按 5 层 fallback 识别云端账单类型(settings → /status → /token_plan/remains → /usage/quota/limit → /user/balance),手动点另一边切模式即写回 settings。
  2. LLM 下拉套餐优先:composer 模型选择器按当前 provider 的 billingMode 把套餐模型 置顶(绿色「套餐」徽章段),按量模型跟在后面。不自动改路由、不隐藏按量。
  3. 家族面板真实激活探测(修 bug):设置 → 模型 → 底部「Webkubor DSH 扩展家族」, 之前的版本不管装几个插件永远只亮自己。改读 window.__DSH_BOOT__.entries 做真实激活探测,读不到时显示「判定不可用」而非谎报「没装」。

升级:

dsh plugin --profile web update @dsh-plugins/dsh-llm-hub@^1.5.1
# 重启 DSH

没有破坏性变更。旧版(≤ 1.3.x)的 keyPool[provider] 配置在 1.4.0 已删除,所有 key 走 apiKeyEnv 数组。


它补的是什么

DSH 自己已经具备全部机制,缺的只是"官方适配器没去用它们":

能力官方机制官方直连的现状
模型发现llm 服务的 registerModelDiscovery(ns, discover) + Models 页「获取可用模型」@deepseek-ai/dsh-llm-deepseek 从未注册(0.1.2-rc.1 与 0.1.5-rc.2 两版实测 discover 均零命中)
provider 卡片扩展settings.models.provider-card(按 settingsNs 做 key 分发)无注册者 → 该区域不渲染
账户余额DeepSeek GET /user/balance适配器不暴露

发现注册表每个 settings 命名空间只允许一个注册(第二次抛 DUPLICATE_DISCOVERY), 而 llm-deepseek 这个槽是空的 —— 本插件占上即可。官方 slot-contract.d.ts 也明确: 那两个扩展位就是给本仓库之外分发的插件用的。

用法

模型发现:设置 → 模型 → DeepSeek(官方直连) → 「获取可用模型」。 点下去会实时 GET https://api.deepseek.com/models,列出官方在售模型供勾选加入。

余额:同一张 DeepSeek 卡片下方会出现余额行(挂载即查,可手动刷新)。

pi-ai 旁路卡:设置 → 模型 → 任一 pi-ai provider(modelgo / minimax / zai-coding-cn …)卡片下方:

  • 常驻行:pi-ai · 显示名 · 已配 N 个模型 · Key ✓/✗
  • 探测网关:实时 GET 网关目录端点(/v1/models 与 /models 按 baseURL 形态自动回退),报告可达性、延迟与在售数量
  • modelgo 专属:拉取目录列出网关在售模型(实测 71 个,手填仅 11 个),复制全部 id 后可直接粘贴整理
  • zai-coding-cn 这类没写 baseURL 的 provider 显示"无法探测"提示,模型仍走手填

行为细节

连接事实

baseURL 与 apiKey 的解析顺序与适配器自身一致,且每次调用惰性重读 llm-deepseek 设置段 —— 插件 apply 时该段可能尚未注册(启动竞态),而适配器本身也按请求重解析:

解析顺序
baseURLrequest.baseURL → 设置段 baseURL → $DEEPSEEK_BASE_URL → https://api.deepseek.com
apiKeyrequest.apiKey(表单里现填的一次性 key)→ 设置段 apiKeyEnv 指定的凭据 → 该环境变量

余额路由

…

Related plugins