DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Api Balance — DeepSeek Harness 插件(DSH Plugin)
← Plugins
A

dsh-api-balance

Api Balance

API 余额:只读展示 DeepSeek API 账户余额的悬浮挂件与设置页,查询节奏与官方更新节奏一致

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:AdaJyao/dsh-api-balance#f07995f6e1e85f5094f14cc463b448c9df08b86c
README兼容性版本

兼容性与来源证明

Api Balance 以 dsh-api-balance 发布,当前版本为 0.1.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/9/11

版本

0.1.0stable
2026/9/11

相关插件

正在加载相关插件…

最新版
0.1.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
GitHub
★ 1
周下载
0
最近提交
2026/9/12
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录

相关插件

继续浏览 models-usage 分类下经过校验的插件。

Usage@linxin666/dsh-usage用于 dsh Web GUI 的使用统计插件:检测各提供商的余额和编码计划配额,并提供实时令牌使用记录,同时在侧边栏条目中显示当前会话提供商今日的使用量Whale Widgetdsh-whale-widgetDSH Web 界面右下角的 DeepSeek 余额小鲸鱼挂件:余额/今日已用/峰谷定价、自定义泡泡点击序列(文本/余额/今日/峰谷/图片/随机语句与并列加权选择)、逐行样式与字体、悬浮快捷编辑、音效与每轮消耗、自定义角色/动图/音效、吸附与翻转自定义Usage Stats@ychris12138/dsh-usage-statsdsh Web GUI 的令牌使用热力图、提供商余额和订阅配额Codex Connectdsh-codex-connect用于 DeepSeek Harness 的 ChatGPT OAuth 和 Codex 模型。

README

dsh-api-balance

只读展示 DeepSeek API 账户余额的 DSH 插件:右下角悬浮挂件 +「设置 → API 余额」页面。

它做什么

  • 悬浮挂件(shell.overlay):🐳 ¥52.14,可拖到屏幕任意位置,单击展开明细(赠金 / 充值 / 账户状态 / 更新于)。鼠标悬停显示完整 tooltip。
  • 设置页(settings.section):一级导航里的中文名条目「API 余额」,展示余额、币种、查询节奏、数据接口与凭据来源。
  • 只读:没有任何充值、扣费或写操作,也不修改账户设置。

三条设计约束

  1. 查询节奏与官方更新节奏一致:对官方 /user/balance 的调用不快于每 5 分钟一次,且失败也计入该节奏(按 attemptAt 判定)。刷新页面、多开标签、多个界面同时轮询都不会额外打到官方接口。界面每 60 秒只重读 Host 缓存(本地 HTTP,不产生官方调用)。
  2. 状态模型区分「尝试」与「成功读数」:lastAttempt 决定展示形态(fresh / stale / error)与限速,lastSuccess 是失败时唯一能拿出来的事实。二者混用会导致「成功一次反而丢掉新值」,因此刻意分开。连续失败时界面保留上次成功读数并标黄,而不是把值丢光。
  3. 密钥不落地:API Key 由 Host 的 credentials 服务解析(DEEPSEEK_API_KEY),经 stdin 交给 curl -K - 的配置解析器 —— 不进 argv(ps 看不到)、不进子进程环境、不写文件、不下发到浏览器。

结构

文件作用
lib/index.jsHost 半边:读凭据、调官方接口、限速缓存,经 webServer 路由 /_dsh/api-balance/balance 暴露给浏览器
client/index.jsClient 半边源码(CJS 模块体,无 JSX)
client/build.mjs零依赖构建:套 __ModuleLoader__ 装载外壳 → client/dist/index.js
client/dist/index.js实际被浏览器加载的 bundle(构建产物)
cordis.patch.ymlcomposition 行:把本插件 insert 进 profile

路由为什么挂在 /_dsh/ 下

静态插件没有 harness / host 全局,Host↔Client 走 webServer HTTP 路由。

当 DSH 部署在门户或反向代理之后时(例如某些 NAS 应用门户),网关通常只转发一组固定的路径前缀,而 /_dsh/ 是其中常见的既有前缀之一。把路由挂在这个前缀下,可以让它在直连端口与门户路径两种访问方式下都可达,从而不必修改网关配置 —— 这也是选择它的唯一理由;若你的部署没有网关,任何前缀都一样。

构建

node client/build.mjs              # 产出 client/dist/index.js
node --check client/dist/index.js  # 语法自检

安装

方式一:用预打包 Release(推荐)

从 Releases 下载 dsh-api-balance-0.1.0.tgz(sha256sum 可与 Release 说明核对),然后直接跳到下面「方式二」的第 3 步生成 spec.json。省掉构建与打包两步。

方式二:从源码自己打包

本仓库不含预打包的 .tgz,也不含带绝对路径的本地 spec.json(两者都在 .gitignore 内)。

# 1. 构建客户端 bundle
node client/build.mjs

# 2. 打成 npm 风格 tarball —— 必须单顶层目录 package/
rm -rf /tmp/pack && mkdir -p /tmp/pack/package
cp -r package.json cordis.patch.yml README.md LICENSE lib client /tmp/pack/package/
tar czf dsh-api-balance-0.1.0.tgz -C /tmp/pack package
sha256sum dsh-api-balance-0.1.0.tgz

# 3. 照 spec.example.json 生成 spec.json(填 tgz 绝对路径与 sha256),
#    交给部署自带的插件安装器落盘 —— 商店条目 + 实体 + profile symlink + bundles + plugin-state,
#    然后重启 DSH。

安装器要求:tarball 单顶层目录;package.json 必须声明 dsh.bundle.patch。

HTTP 接口

POST /_dsh/api-balance/balance(请求体可省略)

{ "ok": true, "data": {
  "ok": true, "at": 1757600000000, "attemptAt": 1757600000000, "stale": false, "error": null,
  "intervalMs": 300000, "isAvailable": true, "currency": "CNY",
  "totalBalance": "52.14", "grantedBalance": "0.00", "toppedUpBalance": "52.14",
  "keySource": "file"
} }

data.ok=false 表示本次查询失败:带 stale: true 时数据字段是上次成功读数,不带则是从未成功过。

卸载

市场 UI 卸载,或删除 profile bundles / plugin-state.json 条目 / 实体目录后重启。