outprintHelloLi/dsh-piggy-bank ↗★ 0
dsh-piggy-bank
DSH web plugin: a draggable floating piggy-bank balance badge for the official DeepSeek API account balance, with per-conversation polling and a balance-deduction animation.
安装
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:outprintHelloLi/dsh-piggy-bank说明文档
阅读完整 README ↗dsh-piggy-bank
DeepSeek Harness (DSH) Web 插件:一个可拖动的悬浮存钱罐,余额显示在存钱罐上方并带深色文字背景;对话期间每隔 N 秒自动查询一次余额,余额下降时在存钱罐上方弹出 -¥xx.xx 的扣减动画(淡入淡出,显示 5 秒)。
- 数据来源:DeepSeek 接口
GET https://api.deepseek.com/user/balance(唯一余额接口)。 - 展示:悬浮存钱罐图标,可拖动位置,支持 4 种内置样式(卡通猪 / 蓝色鲸鱼 / 黑金龙纹 / 陶瓷鲸鱼娘)和导入的外部 SVG。余额显示在存钱罐上方。
- 自动刷新:页面打开时立即查询;任务开始 / 任务结束时立即刷新;对话任务运行期间按设置间隔(默认 30 秒)自动查询。
- 扣减动画:余额比上次查询减少时,在存钱罐上方显示负差额,淡入淡出共 5 秒。
- 设置界面:在 DSH 的 设置 侧边栏出现本插件的「存钱罐」菜单,可设置「对话期间查询间隔(秒)」(5–600),切换存钱罐样式,并可手动添加外部
.svg文件作为自定义样式。 - 无用量记账:DeepSeek 开放平台没有公开的 token 用量 / 费用 / 账单接口,因此本插件只展示余额,不做本地用量累计或费用估算。
一键安装(Windows / macOS / Linux 通用)
本插件是纯 Node.js 实现的 DSH 插件,三个平台只需同一个命令。
node scripts/install.mjs
三个平台也可以使用各自的快捷脚本:
- Windows(CMD):
scripts\install.cmd - Windows(PowerShell):
scripts\install.ps1 - macOS / Linux:
./scripts/install.sh
脚本会自动:
- 找到 dsh profile(默认
web,可用--profile指定); - 把插件复制到
~/.dsh/profiles/ /plugins/dsh-piggy-bank; - 在
~/.dsh/profiles/ /package.json中登记依赖和 bundle; - 在 profile 目录里执行
pnpm install。
完成后再重启 dsh web 并硬刷新页面(Windows: Ctrl+Shift+R;macOS: Cmd+Shift+R)。
可选项:
node scripts/install.mjs --profile headless # 安装到其它 profile
node scripts/install.mjs --no-install # 只复制/登记,不运行 pnpm install
把仓库发布到 npm 或 GitHub 后,也可以直接使用 DSH 自带命令安装:
dsh plugin --profile web add dsh-piggy-bank
前置条件
~/.dsh/.credentials.yaml中存在DEEPSEEK_API_KEY。- Node.js ≥ 20,pnpm 可用。
- DSH 已初始化 web profile(
~/.dsh/profiles/web)。
结构
| 文件 | 作用 |
|---|---|
lib/index.js | host 端:注册 /dsh-piggy-bank/status 路由;监听 turn/end;注册本插件设置命名空间 dsh-piggy-bank。 |
lib/client.js | client 端:悬浮存钱罐 + 扣减动画;插件配置卡片;对话期间定时查询。 |
scripts/install.mjs | 跨平台一键安装脚本。 |
cordis.patch.yml | 把插件行插入 DSH host 组合。 |
设计说明
- 不写 token 台账、不做费用估算(无对应接口)。
- 客户端只在页面可见时轮询,避免不可见时对接口的无谓请求。
- host 端 HTTP 路由仅允许 loopback 同源访问,拒绝跨域请求。
- 查询间隔通过 DSH 设置持久化(用户
settings文档),不需要改代码。
License
MIT