READMESource: main@b0e6b280
dsh-balance-flyout 模型余额悬浮层
为 DeepSeek Harness 开发的动态 Cordis 插件:在页面右下角显示一个可拖动悬浮层,实时展示 DeepSeek API 账户余额与当前会话上下文占用率。
![状态灯说明:绿=正常,黄=账户不可用,红=查询出错]
功能
- 账户余额:通过 DeepSeek 官方
GET https://api.deepseek.com/user/balance查询- 账户总余额(
total_balance) - 赠送余额(
granted_balance) - 充值余额(
topped_up_balance)
- 账户总余额(
- 上下文占用率:与输入框 StatsLine 同源(
contextPressureprojection),显示15% · 153.3K / 1M格式 - 可拖动:鼠标/触摸拖到任意位置,右下角默认停靠
- 自动刷新:每 30 秒自动刷新,另有手动「刷新」按钮
- 主题适配:使用
--dsw-alias-*主题变量,自动适配亮/暗色
安全设计
- API 密钥不进入浏览器:密钥只在 Host 进程内通过 DSH
credentials服务解析(DEEPSEEK_API_KEY环境变量引用),Client 端永远拿不到原始密钥 - 密钥不硬编码:本仓库不包含任何真实凭据,运行时的密钥来自你的本地
~/.dsh/.credentials.yaml(或环境变量) - Host 端通过
subprocess调用 Node 发起带Authorization头的 HTTPS 请求(动态插件 Host 无全局fetch,且web.fetch不支持自定义请求头)
安装与运行
本插件按 DSH 动态 Cordis 插件(cordis_define / cordis_run)设计,可直接在 DSH 会话中加载:
前置条件
- DeepSeek API Key 已配置:
# ~/.dsh/.credentials.yaml DEEPSEEK_API_KEY: sk-xxxxxxxx - 本机可访问
https://api.deepseek.com,且node在 PATH 中
定义并运行
- 使用 DSH 的
cordis_define工具,以host提供host.js内容、client提供client.js内容 - 用
cordis_run激活(Client 端首次运行需在页面中批准) - 页面右下角出现悬浮层即成功
文件说明
| 文件 | 说明 |
|---|---|
src/host.js |
Host 端插件:余额查询 RPC、上下文占用率 RPC |
src/client.js |
Client 端插件:可拖动悬浮层 UI |
技术细节
Host 端 RPC
| 方法 | 入参 | 返回 |
|---|---|---|
balance/query |
— | { ok, isAvailable, currency, totalBalance, grantedBalance, toppedUpBalance } |
session/context |
{ sessionId } |
{ ok, projectedTokens, contextWindow } |
数据口径
- 账户余额:DeepSeek 官方
/user/balance接口,三个字段均为字符串金额 - 上下文占用率:读取
sessionProjections.snapshot(session).values.contextPressure,projectedTokens / contextWindow计算百分比——与输入框 StatsLine 完全同源,避免 token-meter 纯启发式估算(surfaceTokens)与 provider 实测(totalTokens)的口径差异
No comments yet. Be the first to write one.