dsh-balance-plugin
其他 活跃维护

dsh-balance-plugin

stevenx65/dsh-balance-plugin

是dsh管理工具的Web端插件,可直接在后台展示API账户余额、额度消耗明细,安装配置简单,无需额外操作即可快速查看调用余量,方便管控API使用成本。

7
Stars 标星
0
Forks 分支
7
Watchers 关注
0
Open Issues
JavaScript
主要语言
MIT
开源协议
51 KB
仓库大小
1 个月前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:stevenx65/dsh-balance-plugin
git clone https://github.com/stevenx65/dsh-balance-plugin.git
git clone git@github.com:stevenx65/dsh-balance-plugin.git
README.md main

dsh-balance-plugin

Awesome DSH Plugin

A DeepSeek Harness (dsh) web plugin: shows DeepSeek API balance and token usage at the bottom of the web sidebar (port 3080), with a Today / All-time toggle, filtered by provider (only deepseek-official, ignoring other vendors).

Features

  • 💰 Balance: calls DeepSeek's official GET /user/balance, reusing dsh's credentials (~/.dsh/.credentials.yaml) — no manual key entry
  • 📊 Token usage: reads dsh session logs (session.jsonl.zstd), aggregates by provider
    • Uncached input / cache read / output / model call count
  • 🔄 Today / All-time toggle: today (Beijing time) or full history
  • 🎨 Auto-adapts to light/dark theme

Screenshot

dsh-balance-plugin

Install (from the plugin market)

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

Restart dsh web, then refresh the page — a balance button appears at the bottom of the sidebar.

Architecture

Browser (3080 page)
  client.js ──fetch──▶ /dsh-balance/data?scope=today|all
                              │
node side (index.js, inside the dsh process)
  ├── credentials.resolve("DEEPSEEK_API_KEY")  ← reuses dsh's key
  ├── fetch(https://api.deepseek.com/user/balance)
  └── decompress ~/.dsh/sessions/*/*/session.jsonl.zstd
      filter assistant/message rows + provider=deepseek-official
  • index.js: node-side cordis plugin, registers HTTP route /dsh-balance/data
  • client.js: browser-side plugin, injects into sidebar.footer.action (sidebar bottom button + floating panel)
  • package.json: dsh.bundle + dsh.client.platform: "web" + exports["./client"]
  • cordis.patch.yml: bundle patch registering the node entry

Manual install

mkdir -p ~/.dsh/profiles/web/node_modules/dsh-balance-plugin
cp index.js client.js cordis.patch.yml package.json ~/.dsh/profiles/web/node_modules/dsh-balance-plugin/

Then add to ~/.dsh/profiles/web/cordis.patch.yml:

- insert:
    - id: dsh-balance
      name: dsh-balance-plugin

Restart dsh web and refresh the browser.

Dependencies

  • node side: Node built-ins only (node:fs, node:child_process, node:path); requires the zstd CLI for decompressing session logs
  • browser side: @deepseek-ai/dsh-client-ui-primitives (peer dep, ships with dsh 0.1.0-rc.6)

Data source

Session logs at ~/.dsh/sessions/<scope>/<session-id>/session.jsonl.zstd. Each assistant/message row:

{
  "type": "assistant/message",
  "time": 1786635270943,
  "data": {
    "message": { "source": { "kind": "model", "provider": "deepseek-official", "model": "deepseek-v4-pro" } },
    "usage": { "inputTokens": 8702, "outputTokens": 298, "cacheReadTokens": 0 }
  }
}

Pack

npm pack   # produces dsh-balance-plugin-0.1.0.tgz

License

MIT