侧边栏底部的 DeepSeek 钱包余额:信用卡图标配余额数字,按剩余额度着色(≥ ¥2 绿色、¥0–2 黄色、≤ ¥0 红色),挂载时、每轮对话结束和点击时刷新;余额变动时带符号差额上飘淡出。
安装
# npm 包(预构建)
dsh plugin --profile web add dsh-balance-plugin
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:luokai-demo/dsh-plugins#path:/plugins/dsh-balance-plugin
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本。请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
侧边栏底部的 DeepSeek 钱包余额——一个 DeepSeek Harness 插件。
English | 中文
在侧边栏底部(设置按钮旁)以信用卡图标 + 金额显示你的 DeepSeek 账户余额,并按剩余额度着色。在对话结束时、点击时与挂载时刷新——无轮询。金额变动时,带符号的差额(+¥3.14 / -¥1.97)会从余额旁上飘淡出——每次花费(或充值)都一目了然。

功能
- 状态着色:只有金额带颜色,图标保持中性——
- ≥
lowBalanceThreshold(默认 2):绿色 - 大于零:黄色
- 零或以下:红色
- ≥
- 对话结束自动刷新:宿主在任何对话轮次结束时推送 SSE
refresh事件——消耗随轮次结算。 - 点击刷新;在途刷新去重(查询进行中时点击或轮次结束触发均为 no-op)。
- 差额上飘:金额发生可见变动时,带符号差额上飘淡出——余额上升为绿色、下降为红色。零变动与不足一分钱的变化静默,首次加载不上飘,且尊重系统
prefers-reduced-motion(减弱动态效果时停用动画)。 - 失败静默:凭证未配置或抓取失败时不渲染任何内容——读数仅供参考,绝不显示错误。
- 原始币种:余额按提供方报告显示;不换算、不加总。
安装
需要一个 DeepSeek 账户凭证。插件通过 harness 凭证接缝(~/.dsh/.credentials.yaml 或环境变量)解析 DEEPSEEK_API_KEY,与官方 DeepSeek 适配器一致。
从 npm 安装(推荐)
dsh plugin --profile <名字> add dsh-balance-plugin
从 GitHub Release 安装(无需 npm 账号)
从 releases 页面 下载 dsh-balance-plugin-<版本>.tgz,然后:
dsh plugin --profile <名字> add ./dsh-balance-plugin-<版本>.tgz
注意:插件位于 dsh-plugins monorepo 的 plugins/ 子目录,dsh plugin add github:... 无法指向子目录——请使用 tarball(或 npm)。
配置
插件带合理默认值;可通过 bundle 的插件行覆盖:
# profile 的 cordis.patch.yml(或 home 级)
- id: balance
name: dsh-balance-plugin
config:
apiKeyEnv: DEEPSEEK_API_KEY # 凭证引用,随后回退环境变量
baseURL: https://api.deepseek.com # 提供方基础 URL
timeoutMs: 12000 # 每次请求超时;中止映射为 balance-timeout
lowBalanceThreshold: 2 # 读数视为健康的最低金额
工作原理
| 半面 | 做什么 |
|---|---|
| 宿主(Node) | 注册 GET /dsh-balance(钱包读数 JSON)与 GET /dsh-balance/events(SSE 流)。监听 harness 的 session/event 广播,每个 turn/end 推送 refresh 事件。每次请求经 ctx.credentials 解析凭证并回退环境变量——改 key 无需重启。 |
| 客户端(浏览器) | 注册 sidebar.footer.action 插槽条目(shell 预留的设置旁座位;收起 rail 时堆叠在设置图标上方)。在挂载时、refresh SSE 事件与点击时抓取读数,带 in-flight 守卫。信用卡图标自包含(不依赖 shell 的图标库)。 |
位置与交互遵循 shell 自身设计:sidebar.footer.action 是"设置旁可选操作"的官方扩展点。
常见问题
对话刚结束余额看起来是旧的。 提供方结算滞后于轮次数十秒。轮次结束的刷新可能短暂显示结算前金额;稍后点击显示结算后数值。这与官方 DeepSeek 客户端行为一致——读数仅供参考。
什么都不显示。 凭证未解析(unconfigured)或抓取失败——这是设计。用 dsh --profile <名字> --dump-config 检查插件行,确认 DEEPSEEK_API_KEY 能通过凭证接缝或环境变量解析。
如何卸载?
dsh plugin --profile <名字> remove dsh-balance-plugin
该命令同时移除依赖与层。
开发
src/
balance-core.ts # 纯查询逻辑(凭证解析、HTTP、归一化)
index.ts # 宿主插件:路由 + SSE + 轮次结束监听
client.tsx # 浏览器插件:侧边栏底部操作
scripts/build.mjs # esbuild:宿主 ESM + 浏览器 __ModuleLoader__ bundle
tests/ # balance-core 的 node:test 单元测试
pnpm install
pnpm run build # 生成 lib/index.js + lib/client.js
pnpm test # balance-core 单元测试
本地安装检查(官方检验点):
dsh plugin --profile demo add ./
dsh --profile demo --dump-config # 应出现 "# == dsh-balance-plugin" 层
发布检查清单
发布新版本前:
pnpm run build与pnpm test通过。- 上述本地安装检查通过(
--dump-config显示层;web profile 用真实凭证渲染读数)。 - 版本已提升(
npm version patch/minor/major);git tag 对应。 pnpm pack——检查 tarball:必须包含lib/、cordis.patch.yml、README.md(别无其他大文件)。npm publish——发布预构建代码,用户零摩擦安装。- 推送 tag;GitHub release 说明与 npm 版本保持一致。
许可
链接
同类插件
zhu1090093659/dsh-web-ui#packages/dsh-web-ui-all★ 2028
DSH Web UI 插件与皮肤合集:任务看板、git 图、右侧面板、远程移动端 UI、桌宠、实时 token 统计与皮肤中心。
ccch1mneyyy/dsh-TUI★ 940
Claude Code 风格全屏终端 UI:像素鲸鱼顶栏、实时工作状态行、思考流式展开。
omdsh-dev/DSH-better-sidebar★ 816
侧边栏完整工作台:内置文件渲染编辑、终端、Git 与子代理,支持三方插件注册新 Tab。
omdsh-dev/dsh-at-file★ 143
Codex 风格的 `@file` 文件引用,输入框里直接搜索并引用工作区文件。
huiliyi37/dsh-tianshu-tui★ 137
DeepSeek Harness 的终端 UI(TUI)。
Nagi-ovo/dsh-visualize★ 86
对话内生成式 UI:模型把交互式 HTML 卡片直接画进会话流,带流式预览与沙箱渲染。