Liu-ty
dsh-balance-display
DeepSeek API balance overlay for DeepSeek Harness
- Stars
- 1
- Language
- TypeScript
- Created
- Aug 13, 2026
- Updated
- Aug 13, 2026
Introduction
dsh-balance-display
English | 简体中文
dsh-balance-display is an installable DeepSeek Harness bundle that shows the current DeepSeek API account balance in a collapsible shell.overlay panel.
The Host resolves DEEPSEEK_API_KEY through the Harness credentials service for every refresh and calls the official GET https://api.deepseek.com/user/balance endpoint. The browser receives only validated balance fields, availability, a check time, or a stable error code. The API key is never sent to the browser, persisted by this plugin, logged, included in error details, or recorded in snapshots.
Features
- CNY and USD rows with total, granted, and topped-up balances
- Account availability and last refresh time
- Collapsible panel, manual refresh, and manual/1/5/15-minute auto-refresh choices
- Periodic refresh pauses while the page is hidden and refreshes when it becomes visible
- Harness light/dark theme tokens and zh-CN/en-US locale dictionaries
- Explicit missing-credential, 401, timeout, network, upstream, and invalid-response states
- No balance history, synthetic data, local token-cost estimates, or provider abstraction
Requirements
- DeepSeek Harness with the Web profile and the current profile-bundle system
- Node.js
^22.19.0 || >=24.0.0 - A
DEEPSEEK_API_KEYavailable through Harness credentials for live balance reads
Without a credential, the plugin still loads and shows the missing-credential state.
Install
From a local checkout:
dsh plugin --profile web add F:\path\to\dsh-balance-display
dsh --profile web --dump-config
dsh --profile web
From the prebuilt release tarball:
dsh plugin --profile web add .\dsh-balance-display-0.1.0.tgz
From the fixed v0.1.0 source tag:
dsh plugin --profile web add github:Liu-ty/dsh-balance-display#v0.1.0
Git installs fetch source and run this package's prepare build. pnpm may refuse that install until the profile's pnpm-workspace.yaml explicitly contains:
allowBuilds:
dsh-balance-display: true
This allowance permits package code to execute on the machine at install time, outside the agent sandbox. Review the source and pin a tag or commit before granting it. A release tarball contains prebuilt files and does not need build permission.
Configuration
The bundle inserts one Host/Client row:
- id: balance-display
name: dsh-balance-display
inject: [credentials, webServer]
config:
requestTimeoutMs: 10000
Override that entire row in the profile or home cordis.patch.yml to change the positive integer timeout. Auto-refresh interval and collapsed state are browser-local preferences; the plugin stores no balance values.
Security model
- The Host resolves the credential once per balance operation and does not cache it.
- Authorization is added only to the outgoing DeepSeek request.
- Non-success bodies from DeepSeek are never forwarded or logged.
- Successful bodies are parsed against the documented field set and reduced to camel-cased display values.
- Host responses use
Cache-Control: no-store. - The plugin has no model-visible input or token-accounting integration.
Development
pnpm install
pnpm run typecheck
pnpm run test
pnpm run build
pnpm pack
Tests cover route disposal, Client slot and locale disposal, timer/listener cleanup, response validation, explicit UI states, and secret non-disclosure. A real Cordis composition smoke mounts and disposes the built Host entry.