dsh-balance-plugin
DeepSeek Harness plugin that displays real-time account balances for DeepSeek, Kimi (Moonshot), and Qwen providers.
- Stars
- 1
- Language
- JavaScript
- Created
- Aug 17, 2026
- Updated
- Aug 17, 2026
Introduction
dsh-balance-plugin
Shows your model provider's account balance in a persistent readout line under the composer in the DeepSeek Harness web client.
- DeepSeek: total / topped-up / granted balance + account availability
- Kimi (Moonshot): available / cash / voucher balance (a negative cash balance is flagged ⚠ overdue)
- Qwen (Alibaba Cloud Bailian): mode is detected with a console-only note (the Bailian API key exposes no balance endpoint)
The readout matches the built-in stats line (tok/s · cache hit %) typography, sits on its own second line, and is left-aligned against the same content column. The official data-freshness note renders as trailing text; the UI language (zh/en) follows the client.
Preview
Install
One-liner (curl)
curl -fsSL https://raw.githubusercontent.com/lucaslus/dsh-balance-plugin/main/install.sh | bash
Installs into the web profile by default; pick a profile:
DSH_PROFILE=web curl -fsSL https://raw.githubusercontent.com/lucaslus/dsh-balance-plugin/main/install.sh | bash
Manual
dsh plugin --profile web add github:lucaslus/dsh-balance-plugin
Restart required after install
This plugin ships a browser half (dsh.client), which is scanned into the browser plugin table when the dsh process starts; Web HMR is currently disabled. So restart the client after installing before the readout loads:
dsh --profile web
Configuration
The plugin detects the provider from the current model route and reuses each model adapter's own credential configuration — nothing to fill in:
| Provider | API key env (default) |
|---|---|
| DeepSeek | DEEPSEEK_API_KEY |
| Kimi | KIMI_API_KEY (or MOONSHOT_API_KEY) |
| Qwen | DASHSCOPE_API_KEY |
If you configured a custom apiKeyEnv or baseURL for a model in settings, the plugin follows it.
Data freshness (official)
| Provider | Official delay |
|---|---|
| DeepSeek | Data may be delayed up to 5 minutes (GMT+8) |
| Kimi | Balance and today's consumption may be delayed ~10 minutes |
The note renders at the end of the readout line. The plugin polls the balance endpoint every 5 seconds, but the numbers themselves are subject to the official delays above, so no change within a short window is expected.
Companion client
This plugin is an extension of DeepSeek Harness — use it together with the client:
- DeepSeek Harness client: https://github.com/lucaslus/deepseek-harness-desktop
Known limitations
- Qwen / Bailian Token Plan: Bailian has no usable API-key balance endpoint (official queries require the console), so the plugin only detects the mode and shows a note.
- "Used this run": the DeepSeek / Kimi balance APIs return remaining amounts only, not historical consumption. The plugin takes the first balance read after startup as its baseline; the delta is the run's consumption, and the baseline resets on restart.
- The balance query relies on local
curl(bundled with macOS / Linux).
Development
index.js— node half: registers the/dsh-balanceHTTP route, queries the balance, returns JSON. TheFAMILIESarray is the extension point — add a provider by appending one entry.client.js— browser half: a hand-writtenwindow.__ModuleLoader__.loadclient bundle that renders theconversation.composer.dockreadout.cordis.patch.yml— the bundle patch layer inserting the plugin row.
License
MIT