Evidence snapshot reviewed Sep 16, 2026GitHub checked Aug 21, 2026
Evidence-verifiedPlugin BundleModels & RoutingWeb Profile

DSH Balance & Quota

Show provider balances, quotas, and external model-health data in DeepSeek Harness Web.

At a glance

What it does

Show provider balances, quotas, and external model-health data in DeepSeek Harness Web.

Use cases
Models & RoutingConfigurationModel RoutingVisualization
Works with
Deepseek HarnessDsh WebNodejs
Compatibility

Web Profile
DSH 0.1.5-rc.1 or newer; @deepseek-ai/dsh-settings ^0.1.5-rc.2

Trust & status

Evidence-verified
Checked Sep 15, 2026, 2:11 PM UTC

Code-evidenced contributions

What it adds to DSH

Web UIProvider Status

Adds balance and quota status below the DSH Web chat composer, plus provider switching and manual refresh.

Mechanism evidence
Web UIModel Health Monitoring

Maps public JSON monitoring data to model availability, TTFT, response-time, history, and custom metrics.

Mechanism evidence

Before you choose it

DSH Balance & Quota adds a Provider Status settings area and a status strip below the DSH Web chat composer. Configure built-in or custom balance providers, then optionally connect a public JSON monitor to display per-model status, availability, TTFT, response time, history, and custom metrics.

Best for

DeepSeek Harness Web users who manage one or more model providers and want account balance or quota visibility alongside external model-status data.

Common tasks

  • Display a provider's balance or rolling, weekly, or monthly quota below the chat composer.
  • Switch the active provider per conversation and manually refresh balance data.
  • Map a public JSON monitoring endpoint to model health, availability, latency, and historical status.
  • Set model catalog details such as context window, image input, and reasoning levels.

Permissions and data

The plugin reads configured provider balance and public monitoring JSON endpoints and displays their results in DSH Web.

Permissions
  • Network access to configured public HTTP(S) JSON endpoints.
  • DSH credential references when a configured provider needs an API key.
Data handling
  • Balance, quota, status, and monitoring JSON are fetched for display and caching.
  • The documentation says API keys remain in DSH credentials rather than browser configuration.
  • Health-monitor previews are cached per monitor; balance data uses a shared host cache.
External services
  • Configured provider balance APIs.
  • Configured third-party model-health JSON APIs.
Credentials
  • Optional: provider API credentials are configured through DSH credential references.

Limitations

  • Requires Node.js 22+ and a compatible DSH Web installation.
  • The supplied evidence verifies bundle structure and Git distribution, not a successful installation or runtime test.
  • Health data reflects the configured third-party monitor rather than the current account.
  • Monitoring endpoints must be public HTTP(S); the documentation says cookie or authenticated monitor endpoints are unsupported.
  • The captured npm versions were not found in the registry.

What DSHub checked

  • Pinned source commit and Git bundle delivery are verified.
  • The public package manifest identifies `dsh-balance-quota` version 0.3.7 as a DSH Web plugin.
  • The bundle patch mounts `dsh-balance-quota`.
  • MIT license text is supplied.

What DSHub did not check

  • Installation in a real DSH environment was not executed.
  • Configured endpoints, credential resolution, displayed values, and refresh behavior were not tested.
  • Registry availability for the captured package versions was not verified.

Pinned install

Install DSH Balance & Quota

This plugin bundle does not have a DSH Plugin install action. Use its source documentation for the delivery method.

Visit the source project

Maintainer source

Project README

View at commit 61bc365
Maintainer-authored contentCaptured from README.md on Sep 15, 2026. The text and repository-relative media are fixed to commit 61bc365a0d5e with content hash 86ed28c25be7; provider-hosted badges may update independently. README commands are upstream documentation; the DSHub copy action above is the verified, version-pinned install.
<div align="center">

dsh-balance-quota

Balance, quota, and model-health monitoring for DeepSeek Harness Web

npm version License: MIT Node.js Platform

English · 简体中文

</div>

dsh-balance-quota displays provider balance or quota below the DSH chat composer. It can also consume third-party JSON status APIs and show model health, availability, TTFT, response time, history, and custom metrics.

Current development version: 0.3.5 · Previous npm release: 0.3.3

DSH compatibility: 0.3.4 requires DSH 0.1.5-rc.1 or newer (@deepseek-ai/dsh-settings0.1.5-rc.2), which removed the settingsNamespace() helper in favour of passing the namespace string straight to settings.register(). Use 0.3.3 on DSH 0.1.4 and older.

Complete feature map

Area Features
Official presets DeepSeek balance and OpenCode Go rolling/weekly/monthly quota
Custom balance Public HTTPS, GET/bodyless POST, custom headers, timeout, refresh interval
JSON extraction Property paths, array indexes, optional chaining, up to five ?? fallbacks
Amount handling Static/dynamic currency, amount divisor, unsaved-draft testing
Status bar Balance, update time, force refresh, and health entry below the composer
Provider selection Default provider, inline switching, per-conversation memory
Model settings Model catalog, context window, text/image input, reasoning levels
Health monitoring External JSON API, status, availability, TTFT, response time, history
Visual binding Select a preview slot, then select a JSON field; preview updates immediately
All-model preview Preview up to 50 models with current mappings without another request
Transforms Text, number, percentage, status, status-value maps, percentage multipliers
Number formatting Per-field input unit, display unit, and 0–2 decimal places
Custom fields Error rate, empty response, common errors, or any model metric
Cache and refresh Shared Host balance cache, health-preview cache, pause while hidden
Credential security Reuses DSH credential refs; API keys never enter browser configuration
Network security Public HTTPS, DNS pinning, rebinding protection, private-IP/redirect blocking

Installation

Requires Node.js 22+ and the DSH CLI.

dsh plugin --profile web add dsh-balance-quota
dsh web

Restart dsh web after installation or upgrade. Verify installation with:

dsh plugin --profile web list

Complete walkthrough

All seven screenshots come from the current plugin running in DSH Web. Provider names, URLs, balances, and model names were replaced with demo values; the UI layout and controls were not redrawn.

1. Where to configure balance

Open Settings → Plugins → Plugin configuration → 供应商状态 (Provider Status).

This page controls balance queries, provider editing, Advanced Settings, the default provider, the chat status bar, and manual refresh.

Provider status settings

  • DeepSeek and OpenCode Go can use built-in official presets.
  • Click 编辑 (Edit) for a custom balance API.
  • 高级设置 (Advanced Settings) contains Model Settings and Health Monitoring.
  • The default-provider option controls new conversations.
  • The status-bar option controls the strip below the chat composer.

2. Edit a balance provider

Click 编辑 (Edit) on a provider row:

Balance provider editor

Configure the display name, endpoint, GET/bodyless POST, balance JSON path, static or dynamic currency, amount conversion, headers, refresh interval, and timeout.

Balance: $.remaining ?? $.quota?.remaining ?? $.balance
Currency: $.unit ?? $.quota?.unit ?? "USD"

测试 (Test) validates only the current unsaved draft. It does not write formal configuration, credentials, or production cache. Save after the result is correct.

3. Advanced Settings tab 1: Model Settings

Click 高级设置 (Advanced Settings). The first tab is 模型设置 (Model Settings):

Advanced Model Settings tab

It manages the provider's model ID/display name, context window, text/image input capabilities, and default/available reasoning levels.

This is separate from balance and health: Edit owns balance settings; the second Advanced Settings tab owns external monitoring.

4. Advanced Settings tab 2: Health Monitoring

Switch to 健康监测 (Health Monitoring):

Advanced Health Monitoring tab

Setup flow:

  1. Enable health monitoring.
  2. Select a custom request.
  3. Enter a public HTTP or HTTPS GET JSON endpoint.
  4. Click 测试 (Test).
  5. Inspect the full JSON tree on the left.
  6. Bind fields and preview status on the right.
  7. Use 预览全部模型 (Preview all models) to validate every mapping.
  8. Save the monitor.

Health monitoring reads third-party monitoring data. It does not invoke chat models or consume model quota.

Field binding

Bind the model list first: select the Model List slot on the right, then select an array such as $.models on the left.

Field Example path Purpose
Model name $.model Card title
Group $.group Group badge
Status $.status Healthy, failed, warning, unknown
Availability $.availability Current availability
TTFT $.ttft_ms Time to first token
Response time $.latency_ms Request duration
History array $.history Recent records
History status $.state Per-record state
History time $.time Per-record timestamp
History error $.message Per-record error

Transforms, status maps, and numeric formatting

  • Text displays the original value.
  • Number converts numeric values and applies units and precision.
  • Percentage supports automatic scaling, forced ×100, or raw value plus %.
  • Status converts values into healthy, failed, warning, or unknown.

Custom status values can use 值映射 (Value mapping):

healthy → healthy
warning → warning
offline → failed

Selecting Number for a custom field reveals three settings:

Setting Values
Input unit ms, s
Display unit follow input, ms, s
Decimal places 0, 1, 2

For example, 1250ms displayed as seconds with two decimals becomes 1.25s. Settings are stored independently per field.

5. Where the status bar appears

Enable 状态栏 (Status bar) at the bottom of Provider Status, then return to any conversation. It appears directly below the chat composer:

Balance status below the chat composer

From left to right: health dot, current provider, balance/quota, update time, force refresh, and the health-monitor icon.

6. Switch providers

Click the provider name in the status bar:

Provider switcher

  • The active provider has a check mark.
  • Selection is remembered independently per conversation.
  • New conversations use the configured default provider.
  • bypasses cache and refreshes the current balance immediately.

7. View health after enabling monitoring

After health monitoring is enabled and saved for the current provider, an ECG icon appears next to refresh. Click it to request the endpoint and open details:

Model health details

The dialog shows model/failure/warning counts, group and status, availability, average TTFT and response time, custom metrics, recent-history bars, and manual refresh.

Health represents the third-party monitor, not the current account itself.

Refresh and caching

  • Each balance provider has its own refresh interval; default is 30 minutes.
  • Automatic refresh pauses while the page is hidden.
  • Multiple conversations share Host balance cache.
  • Manual refresh bypasses cache.
  • Health JSON previews are cached per monitor.
  • Deleting a monitor deletes its preview cache.

FAQ

The status bar is missing

Configure at least one provider, enable Status Bar at the bottom of Provider Status, and restart dsh web after installation or upgrade.

The health icon is missing

Enable, test, and save Health Monitoring under Advanced Settings. The icon only appears when the current provider has an enabled health monitor.

Saving reports invalid external custom field

Bind the model list first, then select a field inside a model item. Name and path must be non-empty; $.last_errors[0] is valid. Version 0.3.3 trims whitespace and ignores unfinished blank fields.

A query fails

Confirm the endpoint is public HTTP(S) without redirects, the credential ref resolves, and JSON paths match the response. Private, loopback, and internal destinations are rejected.

Security boundary

  • API keys are managed by DSH credentials and never enter browser configuration.
  • Only public HTTP/HTTPS is allowed (set DSH_BALANCE_ALLOW_HTTP=0 to require TLS).
  • Resolved public IPs are pinned to reduce DNS-rebinding risk.
  • Private/loopback addresses, redirects, dangerous headers, and oversized responses are rejected.
  • JSON paths reject __proto__, constructor, and prototype.
  • Health monitoring does not execute page scripts, discover hidden browser APIs, or support Cookie/authenticated monitor endpoints.

See SECURITY.md.

Development and verification

packages/dsh-balance is the only public package.

pnpm install
pnpm dev:install
pnpm check
pnpm test
pnpm pack:check
pnpm verify

Project layout

packages/dsh-balance/
├── lib/host/       # Secure queries, validation, cache, config, health normalization
├── lib/client/     # DSH Web status bar and settings UI
├── docs/images/    # Real redacted README screenshots
├── test/           # Unit and security tests
├── README.md       # npm package guide
└── SECURITY.md     # Security boundary

License

MIT

Operate deliberately

Install and manage

Prerequisites and target Profile

Target Web Profile

Delivery Dsh Bundle Git — kongshan-zhuyu/dsh-balance-quota#61bc365a0d5ea5f6d24e226daeb9af8ef3750f62

Verify, update, and remove

Show lifecycle commands
Verify
dsh plugin --profile web list

Compatibility and access

DSH Web plugin; requires Node.js 22+ DSH 0.1.5-rc.1 or newer; @deepseek-ai/dsh-settings ^0.1.5-rc.2

Review compatibility evidence

Risk facts

External_network_requests

Can query configured public balance and health-monitoring JSON endpoints.

Evidence
Credentials

Uses DSH credential references for API keys; credentials are not entered in browser configuration.

Evidence
Network_controls

Documentation states that private or loopback destinations, redirects, dangerous headers, and oversized responses are rejected.

Evidence
Evidence and editorial reviewManifest, Bundle patch, distribution and freshness

Immutable evidence

Review status and source activity

AI reviewed

Use the pinned Git bundle source when registry installation is unavailable. Review the endpoints and credentials you configure, since the plugin can fetch their data.

AI reviewed Sep 15, 2026, 2:12 PM UTCGitHub facts last checked Sep 15, 2026, 2:12 PM UTC

No material source change has been recorded since this evidence baseline.

Next step

Follow the Plugin installation workflow

Subscribe to material changes for DSH Balance & Quota