DeepSeek Harness 插件

dsh-balance-yogioo

DeepSeek API 余额显示:dsh web 输入框下方常驻余额读数 + check_balance 模型工具。声明 dsh.bundle,一条 dsh plugin add 即完成安装与挂载。(英文原文)

跳到安装方式

来源信息

GitHub 仓库
Yogioo/dsh-balance
最近更新
2026年8月14日
分类
工具与能力
GitHub stars
0
载体类型
plugin
目录证据
上游声明已找到 dsh.bundle
证据路径
package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/Yogioo/dsh-balance
插件名:dsh-balance-yogioo
作者:Yogioo

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器4 个文件
README.md来源说明 · 只读预览
README 语言

dsh-balance

DeepSeek API 余额显示插件(dsh bundle):在 dsh web 的对话输入框下方常驻显示账户剩余金额,每 60 秒自动刷新,并为模型提供 check_balance 工具。

中文 | English

特性

  • 🖥️ Web 常驻读数 — 输入框下方与统计信息同一排显示 DeepSeek 余额:¥xx.xx,悬停显示赠送/充值明细
  • 🤖 模型工具 — 注册 check_balance,直接对 agent 说"查下余额"即可
  • 🔐 零密钥泄露 — API key 只存在于宿主进程(经 dsh credentials 服务解析 DEEPSEEK_API_KEY),浏览器只拉取宿主缓存的 JSON 摘要
  • 📦 一条命令安装 — 声明 dsh.bundle,安装后自动加入 profile 层并挂载自身 patch,无需手改任何配置文件
  • 常驻缓存 — 宿主每 60 秒查询一次官方余额接口,客户端同源拉取,不依赖模型调用

效果

对话输入框下方(与上下文统计同一排)显示一行小字:

DeepSeek 余额:¥14.39
  • 悬停显示明细:赠送 0.00 / 充值 14.39
  • 查询失败时显示错误原因,60 秒后自动重试

环境要求

  • dsh(deepseek-harness)web 部署,Node.js ≥ 18(宿主使用内置 fetch)
  • DeepSeek API key 已配置,且 credentials 服务可解析 DEEPSEEK_API_KEY(通常位于 $DSH_HOME/.credentials.yaml)

安装

从 GitHub 安装(推荐)

dsh plugin --profile web add git+https://github.com/Yogioo/dsh-balance.git

安装器自动把 dsh-balance 追加到 dsh.profile.bundles(因为包声明了 dsh.bundle),自带 patch 完成挂载。重启 dsh web 后生效,刷新页面即可看到读数。

从 tarball 安装

dsh plugin --profile web add ./dsh-balance-0.1.0.tgz

本地开发安装

dsh plugin --profile web add file:C:/projects/dsh-balance

验证

dsh --profile web --dump-config    # 组合树中应出现 # == dsh-balance 行
curl http://127.0.0.1:3080/balance # 返回余额 JSON

配置(可选)

默认无需配置。如需覆盖,在 profile 的 cordis.patch.yml 中按行 id 覆盖(整行替换 config):

- id: dsh-balance
  config:
    baseUrl: https://api.deepseek.com   # 供应商 API 根地址
    apiKeyEnv: DEEPSEEK_API_KEY         # 凭据引用名(credentials 服务解析)
    refreshMs: 60000                    # 自动刷新间隔(毫秒)
    routePath: /balance                 # webServer 路由路径

架构

┌─────────────────────────────── 宿主进程 (Node) ───────────────────────────────┐
│  dsh-balance (lib/index.js)                                                   │
│    credentials.resolve('DEEPSEEK_API_KEY') → fetch(/user/balance) → 缓存 state │
│    ├─ ctx.interval(60s) 自动刷新                                               │
│    ├─ webServer route GET /balance → JSON(state)   ← 浏览器同源拉取            │
│    └─ tools.register(check_balance)                 ← 模型可调用               │
└──────────────────────────────────────────────────────────────────────────────┘
                                        ▲
                        同源 fetch('/balance')(每 60s)
                                        │
┌─────────────────────────────── 浏览器页面 ─────────────────────────────────────┐
│  dsh-balance (lib/client.js)                                                   │
│    conversation.composer.dock 槽位 → 常驻读数小部件                             │
└──────────────────────────────────────────────────────────────────────────────┘

关键设计:

  • 两个半区是同一份 npm 包的两个入口:mainlib/index.js(宿主),exports["./client"]lib/client.js(浏览器),dsh.client.platform: "web" 声明客户端入口,由 dsh 的 client-modules 扫描进 Web 启动图
  • 客户端不接触密钥:所有密钥操作在宿主进程内完成,浏览器只消费宿主缓存的公开摘要

项目结构

dsh-balance/
├── package.json        # dsh.bundle.patch + dsh.client(web) 声明
├── cordis.patch.yml    # bundle 自带的挂载 patch(插入 dsh-balance 行)
├── lib/
│   ├── index.js        # Host 半区:查询/缓存余额 + /balance 路由 + check_balance 工具
│   └── client.js       # Client 半区:输入框下方常驻读数小部件(编译后的 bundle 格式)
├── README.md
├── README.en.md
└── LICENSE

开发说明

  • 修改宿主逻辑后直接生效于下次启动;修改 lib/client.js 后需重启 dsh web(client 模块图在启动时扫描,包元数据带缓存)
  • 重新打包分享产物:
npm pack   # 生成 dsh-balance-<version>.tgz(已加入 .gitignore,不进版本库)
  • 行 id 冲突说明:bundle 的 patch 与用户 patch 按"同一行 id 后者覆盖"合并,用户侧永远可以覆盖本包默认配置

卸载

dsh plugin --profile web remove dsh-balance

License

MIT © Yogioo