在 DSH Web 侧边栏显示 DeepSeek API 账户余额:30 秒自动刷新、点击刷新、悬停查看明细、余额不足阈值告警。
安装
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:flyingfishzxf/dsh-dsbal
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
极简的 DeepSeek API 余额显示插件:只在 DSH Web 侧边栏显示一个数字,不做别的事。
- 侧边栏底部设置按钮上方显示人民币余额(左侧钱包图标,右侧
¥xx.xx),与设置按钮对齐。 - 30 秒自动刷新;点击按钮立即手动刷新并重置自动周期。
- hover 弹出功能说明卡:顶部一行大字当前余额
¥xx.xx,随后是余额告警阈值说明(< 50 黄 / < 30 橙 / < 10 红 → 按钮虚线边框)、峰谷计费规则(两行:高峰/低谷时段)、合并的刷新规则与刷新时间(一行),底部右对齐显示当前插件版本(如dsh-dsbal v0.4.3)。卡片宽度跟随按钮:展开时与按钮列等宽(上限 360px),收起时固定 240px,侧栏收展过程中宽度与位置实时跟随。 - 分类余额:当充值余额与赠送余额同时大于 0 时,总额下方追加两行明细——充值余额、赠送余额(与官方「设置 → 账号」页用词一致);只有一类余额时两行明细只是在重复总额,因此不显示,卡片保持现在的「只显示总额」形态。按钮、总额与告警阈值不受影响。
- 侧栏收起时按钮变成 36px 圆图标:圆内放不下数字与文字,因此峰/谷改由图标颜色表达(高峰红
#e5484d/ 低谷蓝#4d6bfe),精确余额在 hover 卡片顶部读取。展开时图标保持中性色,峰谷只由「梁文峰/梁文谷」胶囊表达,不重复着色。 - 峰谷定价提示:时段按北京时间定义(高峰为周一至周五 09:00-12:00、14:00-18:00;其余时段、周末全天(调休上班的周末也算)以及中国法定节假日全天均为低谷,低谷价格为高峰的一半)。余额右侧显示空心 badge——高峰为红色「梁文峰」、低谷为 DeepSeek 品牌蓝「梁文谷」(badge 右对齐,宽度不超过侧边栏)。法定节假日表在浏览器端静默拉取 holiday-cn(jsDelivr → GitHub raw 依次尝试),缓存于
localStorage24 小时,离线或未拉到时回退到内置的 2025/2026 放假日表。 - 余额不足告警:< 10 红色、< 30 橙色、< 50 黄色、≥ 50 正常(按钮加对应颜色的虚线边框;橙、黄两色做了视觉区分)。
- 跟随界面语言:全部文本随 DSH 语言设置(zh / en)动态切换。
安装
直接从 GitHub 安装(当前推荐方式):
dsh plugin --profile web add github:flyingfishzxf/dsh-dsbal
或者发布到 npm 后:
dsh plugin --profile web add dsh-dsbal
本地开发时也可以从本地路径安装:
dsh plugin --profile web add file:/path/to/dsh-dsbal
安装后需要重启
dsh web并强制刷新浏览器,新的 bundle 才会生效。
工作原理
- 宿主端注册
dsBalanceRemote 服务:fetch先通过凭据通道解析 DeepSeek API Key(默认DEEPSEEK_API_KEY),经 shell 调用GET {baseURL}/user/balance(web.fetch无法携带Authorization头):- POSIX:
curl,使用${DEEPSEEK_API_KEY}展开。 - Windows:
node -e(基于 OpenSSL 的 fetch)。沙箱化的 PowerShell 无法完成任何 schannel TLS(curl 与 .NET 均报SEC_E_NO_CREDENTIALS),Node 的 fetch 不受影响。该请求显式以非受限方式运行(danger-full-access):Windows ACL 沙箱在宽工作区部署下会失效(例如从主目录启动dsh web),否则余额获取会依赖宿主的启动目录。命令是固定的、由插件自身构造(URL 来自设置、密钥来自凭据通道),因此安全;POSIX 保持受限模式。 - 密钥与 URL 均通过 shell spec 的显式
env层传递,绝不出现在命令行或日志中。
- POSIX:
- 未配置 API Key 时走 DeepSeek 账号通道:DSH 桌面版用开放平台账号登录(OAuth),凭据里并没有
DEEPSEEK_API_KEY,只有 API Key 的取数路径会一直报「未配置 API Key」。因此在没有 API Key 的情况下,余额改由deepseekAccount.getBalance()直接向开放平台查询——与官方「设置 → 账号」页显示的充值/赠送钱包同源,且不经过 shell、不涉及 TLS 与沙箱。桌面版因此无需配置 API Key 即可显示余额;已配置 API Key 时仍优先使用 Key,行为不变。 - 客户端挂载 Remote、渲染侧边栏按钮与 hover 卡片,并负责刷新循环。
配置
与 DeepSeek 模型适配器一致,插件尊重 llm-deepseek 设置段(该段以 Loader 条目 id 暴露,如 include:llm-deepseek,插件的查找同时接受裸命名空间与条目 id 两种写法):
apiKeyEnv— 凭据引用(默认DEEPSEEK_API_KEY)。baseURL— API 基地址(默认https://api.deepseek.com)。
依赖
- POSIX:宿主需要
curl;Windows:宿主需要node(仅在走 API Key 通道时需要)。 - 凭据中配置了 DeepSeek API Key,或已在 DSH 中登录 DeepSeek 开放平台账号(桌面版即属于后者)。
- DSH 宿主兼容性:宿主端使用当前的
shell.execute(...).result()执行接口与settings.describe()读取配置节,并回退到 0.1.7 之前的shell.run()/settings.get(),因此同一份插件在宿主升级前后都能工作。
局限
- 只显示 DeepSeek 余额——即配置的 API Key(默认
DEEPSEEK_API_KEY)对应账户通过GET /user/balance查询的余额,或在未配置 Key 时当前登录账号的开放平台余额。不显示其他提供商或其他账户的余额,也无法合并或换算多个账户。 - 只读:仅展示余额,不含充值、密钥管理等操作。
- 刷新间隔固定为 30 秒,不可配置。
- 余额以人民币(CNY)显示(DeepSeek 以 CNY 报告账户余额)。
- 宿主依赖:API Key 通道在 POSIX 需要
curl、在 Windows 需要node(见"依赖");账号通道无额外依赖。
推送到插件市场
目前尚未收录。插件列表由 awesome-dsh-plugin 维护,每个插件对应一个 YAML 文件。
要收录本插件:
确保仓库满足要求:
- 创建满 1 天;
- 提交数 ≥ 10;
- 在 GitHub 仓库添加
dsh-plugintopic(仓库 Settings → General → Topics,CI 会检查)。
Fork
awesome-dsh-plugin。新增
data/plugins/flyingfishzxf__dsh-dsbal.yml:url: https://github.com/flyingfishzxf/dsh-dsbal name: flyingfishzxf/dsh-dsbal category: usage description: en: 'Shows the DeepSeek API account balance in the DSH Web sidebar with 30s auto-refresh, click-to-refresh, hover details, and low-balance threshold warnings.' zh: '在 DSH Web 侧边栏显示 DeepSeek API 账户余额:30 秒自动刷新、点击刷新、悬停查看明细、余额不足阈值告警。'市场描述只写功能、不带营销词(最高级会被打回)——"极简"定位写在本 README 里,不写进市场条目。
重新生成 README 并与 YAML 一起提交:
npm ci node scripts/generate-readme.mjs发起 Pull Request。
PR 合并后,dshmarket 会自动收录。
许可证
MIT
链接
同类插件
bowenliang123/dsh-context★ 2079
DSH 上下文洞察面板:Context 仪表盘 + /context命令 + Context 浏览器,查看 Context的分类组成、内容详情、演进趋势、压缩/注入事件、统计等一站式 Context 全生命周期管理。
Han-1413141/dsh-cost-meter★ 408
会话与当日 API 费用统计、预算图框(已用%)、官方余额、历史看板,支持峰谷计价与官方价格一键同步。
wssfk12138/dsh-damage-pulse★ 263
在 DSH Web 界面追踪 DeepSeek Token 用量、单次与会话费用及账户余额,并显示缓存感知的扣费动画。
zh667/TokenLedger★ 202
侧边栏用量面板:把 Token 归属到实际服务该请求的中转站,站点从已有的 provider 配置中读出,无需额外配置;含今日/本月/累计三窗口、按站点与模型下钻、一年活跃度热力图,以及 New API / Sub2API / DeepSeek 余额。
Ychris12138/dsh-usage-stats★ 172
多供应商用量看板:按供应商/模型统计 Token 与日期下钻,统一展示账户余额,并追踪 OpenCode Go / Z.ai 订阅额度。
PolinniZhong/dsh-personal-center★ 118
DeepSeek Harness 个人中心:跨会话用量统计、按模型成本估算、全局自定义指令、外观全局字号、数据驱动的桌面宠物(位图/矢量皮肤)与会话状态概览,纯本地离线运行。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。