DeepSeek Harness plugin

dsh-model-balance

Auto-detect the current model vendor (7 built-in) and show its balance or quota in the composer input row, with custom endpoints for unsupported vendors.

Jump to install

Source facts

Repository
jacujay/dsh-model-balance
Latest update
Aug 20, 2026
Category
Usage & Billing
GitHub stars
0

Install

Start with a prompt that asks an agent to read the source. Switch to the command if you want to install it yourself.

Copy this prompt into DSH, Codex, or another agent and ask it to read the page and repository first.

Do not install anything yet. Read this DeepSeek Harness plugin and explain what it does, which files, networks, or credentials it can access, and how to install and remove it.

Plugin page: https://deepseekplugins.org/plugins/jacujay/dsh-model-balance
GitHub: https://github.com/jacujay/dsh-model-balance
Plugin: dsh-model-balance
Author: jacujay
Install command: dsh plugin --profile web add github:jacujay/dsh-model-balance

Do not run the install command until I confirm.

Check the source files

Read the README and other files from this plugin directory before installing.

File explorer3 files
README.mdSource · read only

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](./LICENSE)

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