Saltar al contenido principal
A

dsh-usage-widget

ahui-lab/dsh-usage-widget

DSH plugin: 在左侧栏实时查看 DeepSeek 余额与 Kimi Code 用量(5 小时窗口 + 每周配额)。In-sidebar live usage monitor for DeepSeek balance and Kimi Code quota (5-hour window + weekly).

Instalar

dsh plugin --profile web add github:ahui-lab/dsh-usage-widget

README

dsh-usage-widget

A DeepSeek Harness (DSH) plugin that keeps a compact usage widget inside the left sidebar of the Web GUI:

  • DeepSeek account balanceGET https://api.deepseek.com/user/balance
  • Kimi Code quotaGET https://api.kimi.com/coding/v1/usages (5-hour window + weekly quota)

The panel is always visible in the sidebar footer, click to collapse/expand, auto-refreshes every 60 s, and offers a DeepSeek / Kimi toggle.

Community plugin, not an official DeepSeek plugin.

Install

Requires a DSH Web/Desktop profile (the plugin targets the browser client).

# from GitHub (repo ships prebuilt lib/, no build step needed)
dsh plugin --profile <name> add github:AHui-Lab/dsh-usage-widget

# once published to npm
dsh plugin --profile <name> add dsh-usage-widget

# if no global dsh CLI
npx --yes @deepseek-ai/dsh plugin --profile <name> add github:AHui-Lab/dsh-usage-widget

Restart DSH, then look at the bottom of the left sidebar for the "用量" entry.

How the data flows

The browser cannot call api.kimi.com directly (its CORS preflight rejects the Authorization header), so the plugin keeps two data paths:

  1. Host route GET /usage-monitor/deepseek|kimi (registered on the host webserver) proxies the upstream. It prefers the API key the client sends in the Authorization header, otherwise falls back to the DSH credentials service / env.
  2. Browser-direct fallback (used when the host route is unreachable): fetch the upstream directly with a key the user stored in the panel. Works for DeepSeek (CORS allowed); Kimi is CORS-blocked in this mode.

API keys

Keys are per-machine and never ship with the plugin:

  • Host route mode: put DEEPSEEK_API_KEY / KIMI_CODING_API_KEY in ~/.dsh/.credentials.yaml or the environment (host reads them).
  • Browser-direct fallback: open the panel → gear icon → paste the DeepSeek API Key and the Kimi Code token. They are kept in the browser's localStorage only (key prefix usage-monitor.key.*) and sent only to the upstream API.

Note: keys are intentionally not distributed with the plugin. Each machine configures its own.

Layout

The widget registers into the sidebar.footer.action list slot and renders inline inside the sidebar column (full column width, no floating overlay, no overlap with the chat area). All styles are scoped under data-plugin="dsh-usage-widget".

Development / publishing notes

  • Host entry: lib/index.js (registers the two /usage-monitor/* routes; inject: ["webServer"]).
  • Client bundle: lib/client.js (ModuleLoader bundle; only react + @deepseek-ai/dsh-client-ui-primitives from the baseline).
  • lib/ is committed so both GitHub and npm installs need no build step.
  • Environment overrides: USAGE_MONITOR_DEEPSEEK_REF, USAGE_MONITOR_KIMI_REF, USAGE_MONITOR_DEEPSEEK_BASE, USAGE_MONITOR_KIMI_BASE.

Verify before releasing:

npm run check
npm pack --dry-run --ignore-scripts

License

MIT

Plugins relacionados