Back to home@FishingTofu0120

Plugin-for-checking-API-balance

A plugin for checking API-balance on DSH website conveniently

Stars
0
Language
JavaScript
Created
Sep 1, 2026
Updated
Sep 1, 2026

Introduction

Plugin for checking API balance

一个用于 DeepSeek Harness (DSH) 的动态 Cordis 插件:在页面右下角显示一个可拖拽、可吸附的 DeepSeek 鲸鱼悬浮球,点击后弹出对话框展示当前 DeepSeek API 的余额,并带「Q 弹」动画与音效。

功能特性

  • 🐳 DeepSeek 鲸鱼图标:使用 DSH 官方 FishLogo 的 SVG path,蓝紫渐变圆角背景。
  • 🖱️ 可拖拽 + 吸附:自由拖动,松手后自动吸附到最近的屏幕边缘或角落(带弹性缓动)。
  • 💬 余额对话框:显示总余额、充值余额、赠送余额、币种、账户可用状态、更新时间,支持刷新与关闭;对话框会随图标位置智能选择弹出方向,并带指向图标的气泡尾巴。
  • 🎵 Q 弹特效:点击触发果冻式 scale 弹跳动画,并用 Web Audio API 实时合成「boing」音效(无需任何外部音频文件)。
  • 🔒 安全:API key 通过 DSH 的 credentials 机制读取(环境变量 DEEPSEEK_API_KEY),不会硬编码在代码里。

工作原理

职责
host.js读取 API key,通过 subprocess 启动 node 子进程调用 https://api.deepseek.com/user/balance,返回精简余额数据
client.js渲染悬浮球与对话框、处理拖拽/吸附/动画/音效,通过 host.call('get-balance') 获取数据

为什么 Host 端用 subprocess 而不是 fetch:DSH 动态插件的 Host 沙箱禁用了 fetch,而 web.fetch 服务又不支持自定义 Authorization 头,因此改用 node 子进程发起带鉴权的请求(API key 通过环境变量 DSH_BALANCE_KEY 传入,不写入命令行参数)。

安装 / 加载

这是一个 DSH 动态 Cordis 插件,运行于当前会话进程内,不持久化。在 DSH 中通过动态插件工具加载:

  1. 打开 DSH 的「Cordis」能力,新建一个动态插件(例如 idPrefix bal)。
  2. host.js 的内容作为 code.host,将 client.js 的内容作为 code.client 提交定义。
  3. 运行该 Package(首次运行浏览器端可能需要审批)。

也可直接参照 host.js / client.js 内的函数体(return { ... } 部分)进行加载。

前置条件

  • 已配置 DeepSeek API key:DSH 的 credentials 里存在 DEEPSEEK_API_KEY(默认读取 .dsh/.credentials.yaml 中的该引用,也可在 llm-deepseek 设置中自定义 apiKeyEnvbaseURL)。
  • 系统 PATH 中可执行 node

文件说明

.
├── host.js      # Host 端插件源码(函数体)
├── client.js    # Client 端插件源码(函数体)
└── README.md    # 本文档

免责声明

本插件仅用于个人学习与本地工具用途。请勿将包含密钥的文件提交到公开仓库;本仓库不包含任何密钥。