JonyChan8394/dsh-llm-balance

Show LLM API balances under the chat input: DeepSeek, OpenRouter, SiliconFlow and any custom provider with a balance endpoint. DSH plugin.

Bundle 已验证 MIT JavaScript 未知
Bundle 已验证

已收录

1

Usage

Bundle 已验证

版本未知
语言JavaScript
许可证MIT
在 GitHub 查看

预览

功能介绍

聊天输入框下方显示多个 LLM API 账户余额,内置 DeepSeek、OpenRouter、SiliconFlow 预设。

适合

  • 配置了多个 LLM provider、希望在聊天输入框下集中查看余额的 DSH 用户。
  • 使用 DeepSeek、OpenRouter、SiliconFlow、Moonshot、MiniMax、StepFun 或智谱余额接口的用户。
  • 需要在预设之外配置自定义 provider 余额接口与充值链接的部署。

不适合

  • 没有公开余额 API 的 provider,此时插件只能提示无法查询。
  • 未配置 API Key 的 provider,因为它们不会显示在余额条中。
  • 需要按用量归因费用或查看账单、而非仅查看当前账户余额的用户。

README

dsh-llm-balance

English 中文

Show the balances of exactly the LLM providers you have configured in dsh, right below the chat input box.

  • Below the chat input — a compact readout in the composer’s footer band (the seat under the input card, where the stats line lives) that refreshes automatically (default every 60 s) with a manual refresh link.
  • Click to recharge — click any provider’s balance (or “未开放查询API” label) to open its recharge/top-up page in a new browser tab.
  • Driven by your dsh configuration — the strip shows exactly the providers registered in dsh (the Models page / llm-pi-ai settings + the built-in adapters you use). Configure a new LLM in dsh and it appears on the next refresh; remove it and it disappears. No restart, no config editing.
  • No public balance API? — providers like Qwen/DashScope, OpenAI and Anthropic have a public API key but no public balance endpoint. When such a provider is configured with a key, the strip shows “未开放查询API / no balance API” instead of hiding it.
  • Keys stay on the host — API keys are resolved from DSH credentials (or environment) host-side; the browser only ever sees the fetched balances.

Install

dsh plugin --profile web add github:JonyChan8394/dsh-llm-balance

Restart dsh web. The balance readout appears under the chat input as soon as at least one configured provider has a key.

Configure

Nothing to configure — the plugin follows the providers you already set up in dsh. Balance endpoints are known for these routes:

Provider route Balance API
DeepSeek (deepseek, deepseek-official) ✅
OpenRouter (openrouter) ✅
SiliconFlow (siliconflow) ✅
Moonshot / Kimi (moonshotai-cn, moonshotai) ✅
MiniMax (minimax) ✅
StepFun (stepfun) ✅
Zhipu / GLM (zhipu) ✅
Any other configured provider ❌ shows “未开放查询API”

Each preset also ships a rechargeUrl — the provider’s top-up page — opened in a new tab when you click the balance in the strip. To add a balance endpoint for a provider not in the list (e.g. an aggregator route with its own balance endpoint), override the plugin config in your profile’s cordis.patch.yml:

- id: llm-balance
  config:
    refreshMs: 30000
    endpoints:
      - id: myprovider
        name: MyProvider
        apiKeyEnv: MYPROVIDER_API_KEY
        url: https://api.example.com/v1/balance
        balancePath: data.remaining
        currencyPath: data.currency
        rechargeUrl: https://console.example.com/recharge

A provider without a configured key is hidden from the strip; a provider whose request fails shows “获取失败 / fetch failed”.

How it works

  • Host half (lib/index.js) reads ctx.llm.listProviders() — the exact set of LLM routes configured in dsh — on every request. For each provider with a known balance endpoint it resolves the key through ctx.credentials and calls the endpoint; for a configured provider with a key but no endpoint it reports error: 'no-api'. Results are served as GET /llm-balance JSON through the webserver route registry.
  • Browser half (lib/client.js) registers a conversation.composer.dock entry (order 10) that polls /llm-balance and renders the readout under the input card.

License

MIT

常见问题常见问题

在启用了 DSH 的终端中执行已验证命令 dsh plugin --profile default add github:JonyChan8394/dsh-llm-balance。命令会解析公开 package 元数据,并保持插件与本页展示的目录身份一致。