DeepSeek Harness 插件

dsh-deepseek-quota

DeepSeek API quota widget for the dsh web GUI: shows remaining DeepSeek API balance in a floating card pinned to the bottom-right corner (shell.overlay slot).(英文原文)

跳到安装方式

来源信息

GitHub 仓库
yingjunnan/dsh-deepseek-quota
最近更新
2026年8月22日
分类
工具与能力
GitHub stars
4
载体类型
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/yingjunnan/dsh-deepseek-quota
插件名:dsh-deepseek-quota
作者:yingjunnan

检查来源文件

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

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

dsh-deepseek-quota

A DeepSeek Harness (DSH) web GUI plugin: shows your remaining DeepSeek API quota (balance) and today's consumption in a floating card pinned to the bottom-right corner of the page.

![dsh-deepseek-quota 截图](docs/screenshot.png)

> 中文文档在前,英文说明见下文。 / Chinese docs first, English below.

---

中文说明

一个给 DeepSeek Harness(DSH)网页界面用的插件:在页面右下角悬浮显示你的 DeepSeek API 额度(余额)今日消费

功能

  • 右下角悬浮卡片(注册在框架级 shell.overlay 槽位,纯叠加、不遮挡应用)。
  • 显示总余额、可用状态、当前对话费用今日已消费赠送余额充值余额
  • 当前对话费用:宿主侧对每条 assistant/message 按官方价格表计价(含 2026-08-17 起峰谷定价;定价引擎移植自 dsh-web-billing,MIT),通过 GET /api/deepseek-session-cost?sessionId=<id> 返回当前会话累计费用——按持久化日志全量回放,包含安装前(重启前)的历史。把鼠标放到费用后面的圆圈叹号 ⓘ 上,会显示代入真实数值的计算公式(输入/缓存命中/输出 tokens × 单价 = 小计,单价为加权有效价 ¥/M)。
  • 余额每 60 秒自动刷新、对话费用每 5 秒刷新,也可手动刷新。
  • 峰谷时段提示:显示当前处于 DeepSeek 的高峰(09:00–12:00 / 14:00–18:00,北京时间)还是空闲时段(2026-08-17 起),让你知道现在跑模型更贵还是更便宜;随余额每 60 秒刷新。
  • 自动跟随应用浅色/深色主题(使用 --dsw-* 设计变量)。
  • 明确的错误状态:未配置 Key、网络失败、接口报错等。
  • API Key 不出本机:浏览器只访问本地路由(由宿主侧注册)。

安装

需要 pnpm

# 已安装 dsh CLI:
dsh plugin --profile web add dsh-deepseek-quota

# 未安装 dsh CLI(例如通过 npx 启动):
npx @deepseek-ai/dsh plugin --profile web add dsh-deepseek-quota

该包声明了 dsh.bundledsh plugin 会自动把它加进 profile 的 bundle 层(无需手动改配置)。之后:

1. 重启网页应用:dsh web(若无 dsh CLI,用 npx @deepseek-ai/dsh web;bundle 层在启动时读取)。 2. 打开 http://127.0.0.1:3080 并刷新页面。 3. 右下角即出现额度卡片。

> 手动方式:把包放进 profile 的 node_modules,并在 ~/.dsh/profiles/web/cordis.patch.yml 中加一条: > > ``yaml > - insert: > - id: deepseek-quota > name: dsh-deepseek-quota > ``

配置

插件读取的正是 harness 自己在用的那个 Key:DEEPSEEK_API_KEY(通过凭证服务解析;在 设置 → 模型 页面填写,存于 ~/.dsh/.credentials.yaml,或在启动环境中导出)。

今日消费(今日已消费

DeepSeek 官方 API 没有开放用量查询接口,所以插件按优先级使用两种来源:

1. 官方数据(优先)——与平台控制台相同的可按日期筛选的数据。需要配置可选的平台会话令牌:

``sh # 获取令牌:登录 https://platform.deepseek.com,打开 DevTools → Console,执行: # JSON.parse(localStorage.getItem('userToken')).value # 然后把值写入凭证(例如追加到 ~/.dsh/.credentials.yaml): # DEEPSEEK_PLATFORM_TOKEN: <令牌> ``

配置后,宿主侧调用 platform.deepseek.com/api/v0/usage/cost?month=&year= 并取"今天"那一行。卡片显示 今日已消费 ¥X.XX

2. 估算(兜底)——未配置令牌时,宿主侧按余额差值估算(max(0, 当天期初余额 − 当前余额),状态存于 ~/.dsh/storages/deepseek-quota-day.json)。卡片显示 今日约消费 ≈¥X.XX,避免被误认为官方数字。

无需其它配置。

工作原理

部分文件作用
宿主侧lib/index.jsCordis 插件(inject: credentials, webServer),注册 GET /api/deepseek-balance(余额+今日消费+当前峰谷计价时段)与 GET /api/deepseek-session-cost?sessionId=<id>(当前对话费用);订阅 session/event 对每条 assistant/message 计价。
定价lib/pricing.jsDeepSeek 官方价格引擎(政策时间表 + 峰谷定价),移植自 dsh-web-billing(MIT)。
浏览器侧lib/client.jsdsh.client 网页包,把组件注册进 shell.overlay;余额每 60 秒轮询(含峰谷时段徽章)、当前会话费用每 5 秒轮询。
组合层cordis.patch.ymldsh.bundle 补丁层,插入加载项。

开发

git clone <你的仓库>
cd dsh-deepseek-quota
# 修改 lib/index.js(宿主)/ lib/client.js(浏览器侧)
# 本地安装测试:
dsh plugin --profile web add .          # 无 dsh CLI 时:npx @deepseek-ai/dsh plugin --profile web add .

修改 lib/client.js 后需重启 dsh web(无 dsh CLI 时用 npx @deepseek-ai/dsh web)以重新生成引导哈希(rev),再强制刷新页面。

协议

MIT

---

English

A plugin for the DeepSeek Harness (DSH) web GUI that shows your remaining DeepSeek API quota (balance) in a floating card pinned to the bottom-right corner of the page.

Features

  • Bottom-right overlay card (registered into the frame-wide shell.overlay slot — additive, never blocks the app).
  • Shows total balance, availability, current conversation cost, today's consumption, and the granted / topped-up balance.
  • Current conversation cost (当前对话费用): the host prices every assistant/message with the official DeepSeek price table (incl. peak/off-peak since 2026-08-17; pricing engine ported from dsh-web-billing, MIT) and reports the current session's accumulated cost via GET /api/deepseek-session-cost?sessionId=<id> — the whole conversation is replayed from its persisted log, so the figure includes history from before the plugin was installed. Hover the circled next to the value to see the live formula with real numbers (输入/缓存命中/输出 tokens × 单价 = 小计, with the effective blended ¥/M rate).
  • Auto-refreshes every 60 s (balance) / 5 s (conversation cost), plus a manual refresh button.
  • Peak/off-peak indicator (峰谷时段提示): shows whether the current time falls in DeepSeek's peak (高峰), off-peak (空闲), or flat (常规) pricing window (Beijing time 09:00–12:00 / 14:00–18:00 since 2026-08-17), so you can tell when a run will cost more or less. Refreshes with the balance (60 s).
  • Follows the app's light/dark theme (--dsw-* tokens).
  • Explicit error states: missing API key, network failure, provider errors.
  • The API key never leaves your machine — the browser only talks to local routes that the host half registers.

Install

Requires pnpm.

# With the dsh CLI installed:
dsh plugin --profile web add dsh-deepseek-quota

# Without the dsh CLI installed (e.g. running via npx):
npx @deepseek-ai/dsh plugin --profile web add dsh-deepseek-quota

The package declares dsh.bundle, so dsh plugin automatically adds it to the profile's bundle layers (no manual patch editing). Then:

1. Restart the web app: dsh web (or npx @deepseek-ai/dsh web without the CLI; bundle layers are read at boot). 2. Open http://127.0.0.1:3080 and refresh the page. 3. The balance card appears at the bottom-right.

> Manual alternative: install the package into the profile's node_modules and add a loader entry to ~/.dsh/profiles/web/cordis.patch.yml: > > ``yaml > - insert: > - id: deepseek-quota > name: dsh-deepseek-quota > ``

Configuration

The plugin reads the same API key the harness already uses: DEEPSEEK_API_KEY, resolved through the credentials service (set it on the Settings → Models page; it is stored in ~/.dsh/.credentials.yaml, or export it in the launching environment).

Today's consumption (今日已消费)

The official DeepSeek API exposes no usage query endpoint, so the widget uses two sources, in order:

1. Official (preferred) — the same date-filterable data the platform console shows. Configure the optional platform session token:

``sh # get the token: log in to https://platform.deepseek.com, open DevTools → Console, run: # JSON.parse(localStorage.getItem('userToken')).value # then store it as a credential (e.g. add to ~/.dsh/.credentials.yaml): # DEEPSEEK_PLATFORM_TOKEN: <token> ``

With the token set, the host queries platform.deepseek.com/api/v0/usage/cost?month=&year= and picks today's row. The card shows 今日已消费 ¥X.XX.

2. Estimate (fallback) — without the token, the host meters the balance (max(0, day-opening balance − current)), persisted under ~/.dsh/storages/deepseek-quota-day.json. The card shows 今日约消费 ≈¥X.XX so it is never mistaken for an official figure. Note the official usage page can also be filtered to "today" — the platform token unlocks that same data.

No other configuration needed.

How it works

PartFileWhat it does
Host halflib/index.jsCordis plugin (inject: credentials, webServer) registering GET /api/deepseek-balance (balance + today's consumption + the current peak/off-peak pricing period) and GET /api/deepseek-session-cost?sessionId=<id> (current conversation cost); subscribes session/event to price every assistant/message.
Pricinglib/pricing.jsOfficial DeepSeek price-table engine (policy timeline + peak/off-peak), ported from dsh-web-billing (MIT).
Browser halflib/client.jsdsh.client web bundle registering the widget into shell.overlay; polls balance every 60 s (incl. the peak/off-peak badge) and the current session's cost every 5 s.
Compositioncordis.patch.ymlThe dsh.bundle patch layer that inserts the loader entry.

Development

git clone <your-fork>
cd dsh-deepseek-quota
# edit lib/index.js (host) / lib/client.js (browser half)
# install locally and test:
dsh plugin --profile web add .          # without the CLI: npx @deepseek-ai/dsh plugin --profile web add .

After changing lib/client.js, restart dsh web (or npx @deepseek-ai/dsh web) so the boot-graph hash (rev) regenerates, then hard-refresh the page.

License

MIT