dsh-quota
Identified★ 2DeepSeek Harness 插件:输入框下方显示当前模型所属厂商(智谱 GLM / OpenCode Go,可扩展)的套餐额度,点击查看明细
dsh-quota
DeepSeek Harness 输入框状态栏 · 多厂商额度与消耗监控插件
智谱 GLM · OpenCode Go · Kimi For Coding · 小米 Token 套餐 · DeepSeek 官方
跟随当前模型自动切换 · 点开即看额度、倒计时、Token 用量与费用 · 数据本地聚合,凭据不外发
dsh plugin --profile desktop add github:shy3130/dsh-quota
目录
特性 · 效果图 · 安装 · 配置 · 使用与工作原理 · Token 用量统计 · DeepSeek 官方监控 · 隐私与安全 · 开发 · 项目结构 · 许可证
特性
- 自动跟随当前模型 —— 宿主读取 DSH 的默认模型选择,切换后约 1 秒内切到对应厂商徽标;未覆盖的厂商徽标自动隐藏、不占位
- 五家额度来源
- 智谱 GLM:5 小时窗口 · 本周 · 本月工具额度(含分项)
- OpenCode Go:5 小时滚动窗 · 本周 · 本月
- Kimi For Coding:5 小时窗口 · 本周汇总
- 小米 Token 套餐:套餐额度 · 补偿额度 · 本月总量
- DeepSeek 官方:账户余额(充值 / 赠送)+ 今日消耗
- 明细面板 —— 剩余 / 已用 / 重置倒计时(
6d 21h紧凑格式)、工具额度分项、柱状 / 环状指示器可切换并记忆 - Token 用量统计 —— 今日 / 7 天 / 30 天切换:总量、输入 / 输出、缓存命中率、请求数与每日柱状图,全部本地计算
- DeepSeek 费用估算 —— 按官方价目表(区分高峰 / 空闲时段)由本地 token 记录估算金额,不需要官方用量接口
- 手机端适配 —— 窄屏(≤520px)下徽标自动紧凑(隐藏分隔符、缩短进度条、超宽裁剪),弹层横向铺满并限制高度,触屏点外部关闭
- 纯插件、零侵入 —— 不修改任何官方源码;标准 DSH bundle,一条命令安装;所有路由带 DSH 登录门
效果图
下列截图均为真实 DSH 界面(深色主题,无头浏览器实拍),额度与余额为截取时刻的真实数据。
状态栏徽标
徽标贴在输入框右下角,跟随当前模型自动切换,点一下弹出明细:



明细面板
| GLM(智谱) | OpenCode Go | DeepSeek 官方 |
|---|---|---|
![]() | ![]() | ![]() |
| 套餐窗口 + 工具额度 + Token 用量 | 5h / 周 / 月三窗 + Token 用量 | 余额(充值 / 赠送)+ 估算费用 |
手机端
窄屏自动切换为紧凑布局:徽标收窄不溢出,弹层横向铺满、限高滚动:
| GLM | DeepSeek 官方 |
|---|---|
![]() | ![]() |
环状指示器
面板底部可在柱状 / 环状两种指示器之间切换:
| GLM | OpenCode Go |
|---|---|
![]() | ![]() |
安装
环境要求
| 依赖 | 要求 |
|---|---|
| DeepSeek Harness | 0.2.1-rc.3(RC 预览版,实测版本;≥ 0.2 理论兼容) |
| Node.js | 无需单独安装(使用 DSH 宿主自带运行时) |
| 凭据 | 对应厂商的 API Key / Cookie,见配置 |
客户端版本:本插件在 DeepSeek Harness 0.2.1-rc.3(桌面端 RC 版)开发与实测。DSH 处于 RC/预览阶段、接口迭代较快,升级客户端后如遇徽标不显示或面板异常,请到 Issues 附上
dsh --version反馈。
从 GitHub 安装(推荐)
# 安装(跟踪 main 最新提交)
dsh plugin --profile desktop add github:shy3130/dsh-quota
# 钉住某个版本(git tag 即可,不需要 GitHub Release)
dsh plugin --profile desktop add github:shy3130/dsh-quota#v1.3.1
# 更新已安装的版本
dsh plugin --profile desktop update @local/dsh-quota
- 安装 / 更新后需要完全退出并重开 DSH:宿主插件在启动时加载,仅刷新页面不够
- 各版本改动说明见 Releases(只打 tag + 说明,不打源码包)
pnpm-lock.yaml会把 GitHub 依赖钉到具体提交(codeload.github.com/.../tar.gz/<sha>),「更新」就是重新解析目标 ref 的最新提交——与 GitHub Release 无关,push 到 main 后update即可拉到
从源码安装(开发)
git clone https://github.com/shy3130/dsh-quota.git ~/Project/dsh-quota
dsh plugin --profile desktop add link:/Users/<you>/Project/dsh-quota
或写进用户补丁层 ~/.dsh/cordis.patch.yml:
- insert:
- id: dsh-quota
name: '/Users/<you>/Project/dsh-quota/index.js'
name要指向index.js而不是包目录:Node 的 ESM 不支持目录导入;客户端模块系统会从该文件向上找到package.json,读取dsh.client后再加载client.js。
卸载
dsh plugin --profile desktop remove @local/dsh-quota
源码补丁方式安装的,删除补丁层里对应的 insert 行。之后重启 DSH。
配置
凭据
| 厂商 | 需要的凭据 | 获取方式 |
|---|---|---|
| 智谱 GLM | ZAI_CODING_CN_API_KEY | 智谱开放平台 API Key(与模型路由同一个) |
| OpenCode Go | OPENCODE_GO_API_KEY | OpenCode Zen 后台的 API Key |
| Kimi For Coding | KIMI_API_KEY,或 DSH 里 Kimi 的 OAuth 登录 | 优先读 DSH 凭据记录 llm-pi-ai/kimi-coding 的 access token;没有时用 sk-kimi-... API Key |
| 小米 Token 套餐 | XIAOMI_MIMO_SESSION_COOKIE | 用量接口只认浏览器 SSO Cookie(tp-... API Key 查不了):登录 platform.xiaomimimo.com → DevTools → Cookies → 整条复制 |
| DeepSeek 官方 | 通常不用(DSH 已登录 DeepSeek 账号即可);否则 DEEPSEEK_API_KEY | 账号模式走 DSH 的 deepseekAccount 服务;API Key 模式走官方 GET /user/balance |
凭据可以放在环境变量里,也可以经 DSH 的凭据服务按上面的名字保存(插件只持引用名,不落盘)。
来源地址与凭据引用(可选)
插件行上的 config 可覆盖各来源的 baseUrl 与凭据引用:
- insert:
- id: dsh-quota
name: '@local/dsh-quota'
config:
sources:
zhipu:
baseUrl: 'https://open.bigmodel.cn'
credentialRef: 'ZAI_CODING_CN_API_KEY'
opencode:
baseUrl: 'https://opencode.ai'
credentialRef: 'OPENCODE_GO_API_KEY'
kimi:
baseUrl: 'https://api.kimi.com'
credentialRef: 'KIMI_API_KEY'
xiaomi:
baseUrl: 'https://platform.xiaomimimo.com'
credentialRef: 'XIAOMI_MIMO_SESSION_COOKIE'
指示器默认形态
面板底部可随时切换柱状 / 环状指示器,选择记在浏览器 localStorage(键 dsh-quota:indicator),刷新后保持。想改默认值(没点过切换的新环境):
- insert:
- id: dsh-quota
name: '@local/dsh-quota'
config:
indicator: ring # bar(默认)| ring
默认值经宿主路由
/quota/config读取,修改后需重启 DSH;面板内的切换只需刷新页面。
使用与工作原理
自动切换
徽标优先跟随当前会话的模型(与输入框模型芯片同源,modelSelection 投影的 next ?? lastUsed):打开 / 切换会话、或在会话里换模型,徽标立即切换到对应厂商;新会话没有选择记录时退回「默认模型」(agentDefaultModel)。宿主路由 GET /quota/active 把 provider 映射到额度来源(客户端可带 ?provider=&model= 查询参数做会话级覆盖):
| provider | 来源 | 数据接口 |
|---|---|---|
zai-coding-cn / zai | 智谱 GLM | GET https://open.bigmodel.cn/api/monitor/usage/quota/limit |
opencode-go / opencode | OpenCode Go | GET https://opencode.ai/zen/go/v1/usage |
kimi-coding | Kimi For Coding | GET https://api.kimi.com/coding/v1/usages |
xiaomi-token-plan-cn / -ams / -sgp / xiaomi | 小米 Token 套餐 | GET https://platform.xiaomimimo.com/api/v1/tokenPlan/usage |
deepseek-account / deepseek-api-key / deepseek | DeepSeek 官方 | DSH 账号服务(平台钱包)或 GET https://api.deepseek.com/user/balance |
| 其它 | 无 | 徽标自动隐藏 |
客户端每秒查询一次 /quota/active(宿主只读内存,开销可忽略),窗口重新获得焦点、会话切换、模型选择保存时都会立即查询;额度数据本身每 60 秒刷新一次。
徽标示意
套餐等级沿用官方命名(面板右上角显示 套餐 MAX / 套餐 PRO,不做翻译)。
GLM 5h 21% ▰ · 周 6% ▰ ← 智谱(zai-coding-cn)
OpenCode 5h 8% ▰ · 周 3% ▰ · 月 1% ▰ ← OpenCode Go(opencode-go)
Kimi 5h 24% ▰ · 周 42% ▰ ← Kimi For Coding(kimi-coding)
小米 套餐 12% ▰ · 月 17% ▰ ← 小米 Token 套餐(xiaomi-token-plan-*)
DeepSeek 余额 ¥85.31 · 今日 ¥1.26 ← DeepSeek 官方(deepseek-account)
数据口径
各家接口字段与界面细节(点开展开)
- 两个接口返回的都是已用百分比。智谱的
TIME_LIMIT同时给696/4000与percentage: 17,可证percentage= 已用;OpenCode 的rolling/weekly/monthly同理。面板里同时给「剩余」。 - 智谱窗口:
TOKENS_LIMIT(unit=3,number=5)→ 5 小时、TOKENS_LIMIT(unit=6)→ 本周、TIME_LIMIT→ 本月工具额度(含分项)。 - OpenCode 窗口:
rolling→ 5 小时(官方文档:5-hour = 月额度的 20%)、weekly→ 本周(50%)、monthly→ 本月(100%);三个窗口都显示在徽标上。 - Kimi 窗口:
usage→ 本周汇总,limits[]里window.duration=300 MINUTE的是 5 小时窗口;token 数用「万 / 亿」紧凑显示。 - 小米窗口:
usage.items的plan_total_token(套餐)、compensation_total_token(补偿,仅有额度时显示)、monthUsage.items的month_total_token(本月总量);接口给的是 token 数,百分比由 used/limit 计算。 - 重置倒计时用短单位、小写:
3h 12m、6d 21h,整点省略分钟、整天省略小时、不足 1 分钟<1m。 - 徽标内文字统一 12px / 同色 / 400 字重(与官方统计徽标同规格),进度条放在数字后面:常态绿、≥70% 琥珀、≥90% 红,轨道同色 18% 浅染。
- 徽标里窗口名用短标签(
5h/周/月,面板里仍是完整标题),来源配置见client.js的SOURCES[*].shortLabels。
HTTP 路由
插件注册的路由一览(点开展开)
| 路由 | 用途 |
|---|---|
GET /quota/active | 当前模型 → { provider, model, source } |
GET /quota/config | 界面偏好({ indicator: 'bar' | 'ring' }) |
GET /quota/tokens?range=today|7d|30d[&provider=deepseek] | Token 用量统计(读本机会话日志聚合,可过滤厂商) |
GET /quota/deepseek | DeepSeek 官方余额(总余额 / 充值 / 赠送) |
GET /quota/zhipu | 智谱额度(归一化后) |
GET /quota/opencode | OpenCode Go 额度(归一化后) |
GET /quota/kimi | Kimi For Coding 额度(归一化后) |
GET /quota/xiaomi | 小米 Token 套餐额度(归一化后) |
所有路由都带 DSH 登录门;密钥只在宿主进程内使用,不会进入返回给浏览器的 JSON。
Token 用量统计
面板底部「Token 用量」区块,可在今日 / 7 天 / 30 天之间切换,显示:
- 总量:输入 + 输出 + 缓存读取的合计 token 数
- 输入 / 输出 / 缓存命中率(缓存命中 =
cacheReadTokens / (totalTokens - outputTokens),与 DSH 自带口径一致) - 请求次数,以及按天的迷你柱状图(今日 1 根,7 天 7 根,30 天 30 根)
数据来自本机会话日志($DSH_HOME/sessions/**/session*.jsonl.zstd),完全本地计算:不联网、不上传、不落盘新文件。
实现细节(点开展开)
- 会话日志是多帧 zstd 拼接的 JSONL:按魔数
28 b5 2f fd切帧逐段解压后,必须先合并字节流再按行切分(跨帧的 JSON 行才不会丢) - 每条
assistant/message的usage按request/context(回退request/header/model/selection)归因到 provider + model - 单次扫描 30 个会话约 60~250 ms;结果按
range:provider缓存 60 秒,并发请求合并
DeepSeek 官方监控
DeepSeek 官方只开放了一个余额接口(GET https://api.deepseek.com/user/balance),没有用量接口,所以余额和消耗分开取:
- 余额:优先用 DSH 已登录的 DeepSeek 账号(
deepseekAccount服务的平台钱包get_user_summary,不需要额外凭据);没登录时退回官方 API(需要DEEPSEEK_API_KEY) - 今日消耗:由本机会话日志算出 DeepSeek 官方模型的 token,再按官方价格表换算成金额
徽标显示 DeepSeek 余额 ¥85.31 · 今日 ¥1.26;面板分「余额」与「Token 用量」两区(见右上图),Token 区在 DeepSeek 面板下自动切换为估算费用口径(含每日费用柱状图)。
价格与口径
价目表与估算规则(点开展开)
按官方价目表(元 / 百万 tokens):
| 模型 | 输入(缓存命中) | 输入(未命中) | 输出 |
|---|---|---|---|
deepseek-flash | 0.02 / 0.04 | 1 / 2 | 4 / 8 |
deepseek-v4-pro | 0.15 / 0.30 | 4.5 / 9 | 13.5 / 27 |
- 每档是「空闲 / 高峰」两列:北京时间工作日 9:00–12:00、14:00–18:00 为高峰,其余(含周末)为空闲
- 价格表内置在
index.js的DEEPSEEK_PRICING里,官方调价时改这里即可 - 金额是估算:按每条请求的 token × 该请求发生时刻的时段单价累加;法定节假日按工作日计算,金额会略微偏高
- 缓存命中率沿用 DSH 口径:
cacheReadTokens / (totalTokens - outputTokens)
隐私与安全
- 凭据不出宿主:API Key / Cookie 只在宿主进程内使用,返回给浏览器的 JSON 不包含任何密钥
- 登录门:所有插件路由经 DSH 的
connection.requestRejection鉴权,未登录请求会被拒绝 - Token 统计完全本地:读本机会话日志、内存聚合、不写入新文件、不上传
- 零遥测:不收集、不上报任何数据;对厂商接口只发起额度查询
开发
git clone https://github.com/shy3130/dsh-quota.git && cd dsh-quota
npm test # node --test:冒烟 + token 聚合,不联网
dsh plugin --profile desktop add link:$(pwd)
改动生效方式
| 改动位置 | 生效方式 |
|---|---|
client.js(徽标、面板) | 刷新页面(Cmd+R),客户端模块热更新 |
index.js(路由、取数) | 重启 DSH 桌面应用 |
profile 补丁 / ~/.dsh/cordis.patch.yml 挂载行 | HMR 热加载 |
发布流程
不需要打源码包,tag 即版本:
npm test
git add -A && git commit -m "..." && git push
git tag v1.3.x && git push origin v1.3.x
gh release create v1.3.x --title v1.3.x --notes "..." # 可选:只写改动说明
项目结构
| 文件 | 作用 |
|---|---|
index.js | 宿主侧:路由注册、凭据读取、上游取数与归一化、缓存与登录门、token 聚合与费用估算 |
client.js | 浏览器侧:徽标、自动切换、明细面板、指示器与用量图表 |
cordis.patch.yml | bundle 自身的插件行(作为 profile bundle 安装时使用) |
package.json | 清单:exports、dsh.bundle.patch、dsh.client |
locale/*.json | 插件管理页显示的标题与说明(中 / 英) |
icon.svg | 插件图标 |
test/*.mjs | 冒烟与 token 聚合测试 |
docs/images/ | README 截图(真实界面实拍) |
许可证
MIT © shy3130
本插件基于 DeepSeek Harness 插件 API 构建。
Comments
Loading…
From the same category
by awesome-dsh-plugin
A curated list of plugins for DeepSeek Harness (dsh) · DeepSeek Harness 插件精选列表
★ 21.4k
CC0-1.0
Python
Oct 28, 2026
by 0xsline
DeepSeek Harness (DSH) ecosystem: curated plugins, tools, and infrastructure from dsh-external/hub and the public dsh-plugin topic.
★ 1.3k
CC0-1.0
Python
Oct 16, 2026
by Yuuyuko-uu
DSH 鱼的记忆:给会话一份会淡忘的长期记忆,每条都带时间
★ 361
MIT
JavaScript
Oct 29, 2026
dsh plugin --profile web add dsh-fish-memoryby pax-beehive
Open-source CLI, schemas, resolver, and DSH agent tools for DSH Plugin Hub
★ 277
MIT
TypeScript
Oct 20, 2026
by xiajiajun516
DeepSeek Harness (DSH) backup & restore plugin — export, import, migrate and sync your complete DSH configuration, plugins, MCP servers, skills and workspace. One-click migration to another machine.
★ 268
MIT
TypeScript
Oct 28, 2026
dsh plugin --profile web add dsh-config-managerby ECNU
DBLP and arXiv literature search, BibTeX retrieval and full-text acquisition with session-owned background jobs; an EduWork-maintained fork of SihanLv/dsh-literature.
★ 255
MIT
JavaScript
Oct 28, 2026






