DeepSeek Harness Hub
← 返回列表

Gaster-Au/dsh-api-balance-widget

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
未验证

DSH API 余额悬浮窗dsh-api-balance-widget

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/18 · 已提供中文文档

一个 DeepSeek Harness 动态 Cordis 插件,在可拖拽的右下角小组件中显示 DeepSeek API 实时余额,并带有自定义背景图片。

综合分
27.7
GitHub 分
27.7
用户评分
★ Stars
1
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add Gaster-Au/dsh-api-balance-widget
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/17(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

DSH API 余额悬浮窗(dsh-api-balance-widget)

一个运行在 DeepSeek Harness(DSH)里的动态 Cordis 插件:在页面右下角用一张自定义图片实时显示 DeepSeek API 余额,余额数字显示在图片内的对话框中,可拖动定位,默认每 20 秒自动刷新。

screenshot

功能特性

- 🖼️ 自定义背景图:余额数字叠加在任意本地图片上(默认读取 D:\...jpg,可改)
- 💰 实时余额:调用 DeepSeek 官方接口 GET https://api.deepseek.com/user/balance,每 20 秒刷新
- 🖱️ 可拖动:按住余额文字即可把它拖到图片中对话框的任意位置(百分比坐标,图片缩放时保持)
- 📍 固定在页面右下角(注册在根级 shell.overlay 槽,不遮挡、不随滚动消失)
- 🔐 不包含任何密钥:运行时通过 credentials 服务读取 DEEPSEEK_API_KEY

工作原理

┌──────────┐   balance/status (20s 轮询)   ┌─────────────────────────────┐
│  Browser │ ◄───────────────────────────  │  DSH Host (动态插件)        │
│ (Client) │ ─── host.call ───────────────► │  ├─ credentials.resolve(    │
│          │                               │  │    'DEEPSEEK_API_KEY')    │
│ 右下角    │  balance/image (base64 dataURL)│  ├─ subprocess: node -e fetch│
│ shell.    │ ◄───────────────────────────  │  │    api.deepseek.com/...   │
│ overlay   │                               │  └─ fs.readBytes(IMAGE_PATH) │
└──────────┘                               └─────────────────────────────┘

- 余额请求:DSH 动态插件沙箱禁用了 fetch,且 Windows 自带 curl(schannel)的 TLS 在部分环境不可用,因此通过 subprocess 服务拉起 Node 子进程(Node 自带 TLS 栈)完成 HTTPS 请求。
- 图片传输:宿主用字节精确的 base64 编码把图片转成 data URL 传给浏览器。⚠️ 注意:宿主内置 btoa 按 UTF-8 编码,不能直接用于二进制图片(这正是本插件早期版本"悬浮窗消失"的根因,详见 plugin/host.js 中的 bytesToBase64)。

安装 / 加载

这是一个动态 Cordis 插件(进程内定义,无需构建)。在任意 DSH 会话中:

1. 让 AI 助手用 cordis_define 工具定义插件:
- plugin/host.js 的内容 → code.host
- plugin/client.js 的内容 → code.client
- pluginId 前缀建议:blnc
2. 用 cordis_run 运行(首次需要你在界面中批准)。
3. 页面右下角即出现悬浮窗。

也可以直接把两个文件内容粘贴给 AI 助手,让它帮你定义。

配置

1. 背景图片(plugin/host.js 顶部配置区)

const IMAGE_PATH = 'D:\\1234\\3e8a47e3f5fe5e931f63bffce75cc04d.jpg'; // 换成你自己的图片绝对路径
const IMAGE_DIR  = 'D:\\1234';                                        // 图片所在目录

2. 刷新间隔(plugin/client.js 顶部配置区)

const REFRESH_MS = 20000; // 毫秒;宿主缓存 TTL(host.js 的 TTL_MS)建议略小于此值

3. 余额气泡默认位置(plugin/client.js 顶部配置区)

const DEFAULT_POS = { x: 30, y: 14 }; // 图片内百分比坐标

4. API Key

无需在代码中配置。确保 DSH 的 credentials 服务中存在 DEEPSEEK_API_KEY
(一般位于 ~/.dsh/.credentials.yaml,或在启动环境变量中导出)。

常见问题

| 现象 | 原因 / 处理 |
| --- | --- |
| 悬浮窗完全不显示(早期版本) | 宿主 btoa 按 UTF-8 编码破坏了图片二进制。已改用字节精确 base64,无需处理 |
| 显示"未配置 DEEPSEEK_API_KEY" | 在 ~/.dsh/.credentials.yaml 配置 Key 或导出环境变量 |
| 余额不更新 | 检查网络能否访问 api.deepseek.com;查看浏览器 F12 控制台与运行卡片诊断 |
| 想换余额来源 | 修改 BALANCE_URL 与 fetchBalance() 的解析逻辑 |

许可证

MIT

声明

本项目与 DeepSeek 官方无关,仅使用 DeepSeek 公开 API。使用前请遵守
DeepSeek 服务条款 与您所在地区的法律法规。

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群