Passer au contenu principal
J

dsh-model-balance

jacujay/dsh-model-balance

Détecte automatiquement le fournisseur du modèle actuel (7 intégrés) et affiche son solde ou son quota dans la ligne de saisie de la zone de composition, avec des points de terminaison personnalisés pour les fournisseurs non pris en charge.

Installer

dsh plugin --profile web add github:jacujay/dsh-model-balance

README

dsh-model-balance

Auto-detect the current model vendor and show its balance / quota right in the composer input row — a small button left of the model name, hover to peek, click to refresh. A settings page covers vendors without a public balance endpoint via custom endpoints.

Built for DeepSeek Harness (DSH web).

License: MIT

Features

  • Auto vendor detection — reads the current default model's provider from DSH configuration and identifies the vendor by provider id, then by baseURL hostname as a fallback. Custom provider ids (e.g. minimax-cn) still match.
  • Built-in vendors — DeepSeek, Moonshot/Kimi, MiniMax, StepFun, Zhipu (quota only), SiliconFlow, OpenRouter.
  • Two result kinds — monetary balance (with granted/topped-up breakdown where the API provides it) and quota (MiniMax / Zhipu, which expose usage plans instead of money).
  • Input-row button — a small ◈ icon before the model name in the native composer row. Hover opens a peek panel; click refreshes. Error / unsupported / quota states get their own colors.
  • Settings page — Settings → Balance lookup: lists supported vendors and lets you add a custom balance endpoint for any provider (URL + response field path + bearer/raw auth + display name).
  • Key-safe — API keys are resolved host-side through the DSH credentials store and never reach the browser. Custom endpoint config persists at ~/.dsh/dsh-model-balance.json without any secrets.
  • Live in seconds — the host answers over same-origin HTTP routes; no restart needed after a page refresh.

Install

Requires DSH web. From the plugin market or:

# from GitHub
dsh plugin --profile web add github:jacujay/dsh-model-balance

Then refresh the browser page.

Supported vendors

VendorEndpointKind
DeepSeek/user/balancebalance (CNY)
Moonshot / Kimi/v1/users/me/balancebalance
MiniMax/v1/token_plan/remainsquota (per-model %)
StepFun/v1/accountsbalance
Zhipu GLM/api/monitor/usage/quota/limitquota only
SiliconFlow/v1/user/infobalance
OpenRouter/api/v1/auth/keybalance (USD) / unlimited

New API-compatible proxies

New API exposes token usage at /api/usage/token, authenticated with the same API key used for model calls. Add a custom endpoint for the matching DSH provider (often openai) in Settings → Balance lookup:

  • URL: https://your-relay.example.com/api/usage/token
  • Response path: data.total_available
  • Authentication: Bearer Token
  • Display name: optional

The plugin recognizes New API's token_usage response automatically. It shows unlimited quota when unlimited_quota is true, otherwise it reports the remaining amount, total granted amount, and usage.

Anything else: add a custom endpoint in Settings → Balance lookup. The API key still comes from DSH credentials (apiKeyEnv of the provider), and the custom URL is called host-side with it.

Privacy & security notes

  • Balance requests are issued by the local DSH host with the provider's API key; the key never leaves this machine and never enters the browser.
  • The settings page stores only endpoint metadata (~/.dsh/dsh-model-balance.json), no secrets.
  • The host routes are same-origin HTTP on the existing DSH web server; mutating routes (custom endpoint save/delete) carry a same-origin check.
  • Custom endpoint URLs are user-provided and may point anywhere; review them before saving.

Development

# no build step — host is plain ESM (lib/index.js), client is a plain
# __ModuleLoader__ bundle (client/client.js)
node --check lib/index.js
node --check client/client.js

License

MIT

Plugins associés