Back to home@sxy-kumako

dsh-better-model-select

DSH 插件:模型列表跟随 provider API 实时更新 + 各 provider 用量徽标 (GLM/MiniMax coding plan, DeepSeek/OpenRouter/Kimi balance)

Stars
0
Language
JavaScript
Created
Sep 4, 2026
Updated
Sep 4, 2026
GitHub repo

Introduction

dsh-better-model-select

DSH (DeepSeek Harness) 插件:模型列表跟随各 provider 的 API 实时更新 + 把各 provider 的实时用量显示在原生会话统计行下方。

模型列表同步(model sync)

DSH 内置的模型发现对 pi-ai 目录里已有的 provider(GLM Coding、MiniMax 等)会直接返回打包时的静态目录, 从不请求远端接口 —— 新发布的模型(如 GLM 新版本)要等 pi-ai 升级才会出现。本插件补上这一环:

  • 每 30 分钟(含启动时)读取 llm-pi-ai.providers 下配置的每条路由;
  • 用该路由的凭据(apiKeyEnv → DSH 凭据库 / 环境变量)请求 provider 的模型列表接口 (OpenAI 兼容 GET {baseURL}/models;Anthropic 兼容 GET {baseURL}/v1/models);
  • 合并远端列表与已安装目录:目录已有的模型保持原样(裸 {id} 条目,解析时自动继承目录完整定义), 远端新增的模型按同家族目录模型生成完整条目(上下文窗口、输入模态、wire compat、推理能力), 用户手写的条目永远优先、不会被删;
  • 结果写入该路由的 models 设置列表。llm-pi-ai 在每次设置提交时重新物化路由, 模型选择器实时生效 —— 无需代理、无需改 baseURL、无需重启

一次失败的远端请求不会写任何东西。写入被 llm-pi-ai 校验拒绝时仅记日志、保留原值。

用量徽标(quota badges)

  • GLM Coding / MiniMax Coding:5h 窗口 + 周窗口剩余量
  • DeepSeek / OpenRouter / Kimi:现金余额

颜色按剩余量染色:>30% 绿 / ≤30% 橙 / ≤10% 红。数据经 loopback RPC 通道 /dsh-better-model-select(endpoint quota,可 forcesyncModels 可手动触发一轮同步) 由宿主半侧拉取,key 通过 DSH 凭据库(apiKeyEnv 引用名)解析,不会落日志。

历史版本曾内置一个 127.0.0.1:9999 的 OpenAI 兼容转发代理;该实现已移除, provider 请求走 DSH(pi-ai)原生直连。

安装

cd ~/.dsh/profiles/<你的 profile>          # 例如 desktop 或 web
rm -rf node_modules/dsh-better-model-select   # 更新时先删旧副本(不要原地覆盖)
cp -R ~/.dsh/plugins/dsh-better-model-select node_modules/

重启 DSH Desktop。

文件

  • index.js — 宿主半侧:模型同步循环 + quota RPC 通道
  • lib/sync.js — 远端列表拉取、目录合并、settings 写入
  • lib/catalog.js — 定位并读取已安装 pi-ai 的模型目录(模板来源)
  • lib/adapters.js — 各 provider 用量接口适配表
  • lib/credentials.js — 凭据解析(DSH 凭据库 → 环境变量)
  • client.js — Web 半侧:状态条挂载到原生统计行下方
  • test/sync.test.mjs — 离线冒烟:真实拉取两个 provider 的列表、校验写入 patch、幂等性