DSH Plugin Store
Back to home

jelly-000

dsh-balance-monitor

DeepSeek 账户余额、剩余比例条与今日花费,显示在 dsh 侧边栏底部 · DeepSeek balance, remaining-ratio bar and today's spend in the dsh sidebar footer.

Stars
5
Language
JavaScript
Created
Aug 13, 2026
Updated
Aug 14, 2026
Web UI
GitHub repo

Introduction

English | 简体中文

dsh-balance-monitor

DeepSeek 账户余额,直接显示在 dsh 侧边栏底部。

一个极简的 DeepSeek Harness (dsh) 插件:在侧边栏底部(设置上方)显示你的 DeepSeek API 账户余额、一条细的余额剩余比例条,以及当天已花费的金额。样式完全使用官方设计令牌,克制内敛。

侧边栏底部余额卡片

功能

功能实现
实时余额服务端调用 GET https://api.deepseek.com/user/balance,使用 $DSH_HOME/.credentials.yaml 中的 DEEPSEEK_API_KEY(环境变量优先)
今日花费当天首次成功查询的余额记为基线(持久化在 $DSH_HOME/storages/balance-monitor.json);花费 = max(0, 基线 − 当前)。充值不会让数字变负
比例条当前余额 ÷ 当日基线,蓝 → 琥珀 → 红 三档渐降
位置注册在官方 sidebar.footer.action 槽位 —— 设置上方,零 hack
折叠态收起后变为 36px 圆形,显示紧凑金额 + tooltip
健壮性60s 轮询 + 切回标签页时刷新;上游失败时保留上次数据(变淡标记 stale),不闪错误

安装

浏览器端 bundle 是手写的 classic script,无构建步骤,git 安装无需 prepare 脚本:

dsh plugin --profile web add "github:<you>/dsh-balance-monitor#main"

或从 npm(发布后):

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

然后重启 Web UI(dsh --profile web)。卡片出现在展开的侧边栏底部、设置按钮上方。

工作原理

一个插件行同时承担两种角色(dsh.bundle patch + dsh.client 浏览器注册表声明):

  • 服务端半lib/index.js)—— 在 ctx.connection 上注册 /balance RPC 通道(loopback 信任围栏)。每次调用读取 API key、查询余额 API、折算当日基线,返回 { ok, value }
  • 浏览器半lib/client.js)—— 零依赖 classic-script bundle,注册 sidebar.footer.action 条目。卡片每 60s 轮询一次,标签页重新可见时立即刷新。

状态文件($DSH_HOME/storages/balance-monitor.json):

{
  "date": "2026-08-14",
  "dayStart": 100.0,
  "lastTotal": 99.5,
  "lastCurrency": "CNY",
  "updatedAt": 1755200000000
}

安全说明

  • API key 永不离开服务端:浏览器半只能通过 RPC 通道看到余额数字,接触不到 key。
  • 通道走 loopback 信任策略。
  • 无遥测,网络请求仅官方余额接口。

目录结构

dsh-balance-monitor/
├── package.json        # dsh.bundle (patch) + dsh.client (浏览器注册表)
├── cordis.patch.yml    # 插入这一个组合插件行
└── lib/
    ├── index.js        # 服务端半:/balance RPC 通道
    └── client.js       # 浏览器半:侧边栏卡片(手写,无构建)

开发

无需工具链。直接改 lib/*.js;bundle 格式与官方 tsdown 预设产物一致(window.__ModuleLoader__.load({ id, factory }))。

License

MIT