
webkubor/dsh-llm-hub
dsh-llm-hub
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-hubRestart `dsh web` after install. Bundle APIs can change during the developer preview.
README badge
[](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.
<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) | 装不装无感 | 装了就出现子代理工具 |
装
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 · 📋 完整更新日志
三件用户能看到的事:
- 套餐 vs 按量付费:每个 provider 卡片新增 billing capsule,左边"按量付费"右边"套餐",
自动按 5 层 fallback 识别云端账单类型(settings →
/status→/token_plan/remains→/usage/quota/limit→/user/balance),手动点另一边切模式即写回 settings。 - LLM 下拉套餐优先:composer 模型选择器按当前 provider 的 billingMode 把套餐模型 置顶(绿色「套餐」徽章段),按量模型跟在后面。不自动改路由、不隐藏按量。
- 家族面板真实激活探测(修 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 时该段可能尚未注册(启动竞态),而适配器本身也按请求重解析:
| 解析顺序 | |
|---|---|
| baseURL | request.baseURL → 设置段 baseURL → $DEEPSEEK_BASE_URL → https://api.deepseek.com |
| apiKey | request.apiKey(表单里现填的一次性 key)→ 设置段 apiKeyEnv 指定的凭据 → 该环境变量 |
余额路由
…
