DeepSeek Harness 侧边栏插件:账号余额、当前模型单价与峰谷时段指示灯。
39.2/100
综合分
6
GitHub 星标
9,159
npm 周下载
—/5
用户评分
数据截至 2026/10/30 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add @dougen/dsh-deepseek-usagenpm 源 · @dougen/dsh-deepseek-usage 的发布者账号已校验与本仓库一致
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · browser
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 5 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包@dougen/dsh-deepseek-usage @ 0.16.0
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/27 23:42:07
安全扫描自动 · 静态分析源码v2.7.0🟢 扫描:未发现敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。
发起外部网络请求
查看扫描证据(共 5 处,展示前 5 条)
- 发起网络请求lib/client.js:598
const res = await fetch(USAGE_PATH + "?lang=" + langRef.current, { cache: "no-store" }); - 发起网络请求lib/client.js:660
const res = await fetch(HOLIDAYS_PATH, { cache: "no-store" }); - 发起网络请求lib/client.js:1166
const res = await fetch(ACCOUNTS_PATH, { cache: "no-store" }); - 发起网络请求lib/client.js:1203
const res = await fetch(TOKEN_PATH, { - 发起网络请求lib/client.js:1402
fetch(ACCOUNTS_PATH, { cache: "no-store" })
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-credentials@deepseek-ai/dsh-host-webserver给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
README
由 DeepSeek 最新模型翻译生成dsh-deepseek-usage
中文文档
DeepSeek Harness (DSH) 侧边栏插件,把当前服务商的账户读数和当前模型的单价放在你一眼就能看到的地方——支持 DeepSeek、Moonshot / Kimi、Z.ai (GLM)、MiniMax、OpenRouter、Kimi For Coding、OpenCode,以及 Claude Code / Codex OAuth 订阅,界面提供中文 / 英文两种语言。
余额模式:账户余额、当前模型的单价,右上角是高峰 / 低谷时段指示。
订阅模式:每个计费窗口一个 D 形仪表——里面的数字是剩余额度,灰色是已用部分,绿色是剩余部分(用量超过 80% 后变红),底部开口处的徽标标明窗口(5H / 7D / 1M)。
功能
- 当前服务商的账户信息,就在侧边栏底部。 显示余额和货币符号(¥ / $);如果订阅套餐不公布余额,就把接口返回的每个用量窗口都画成 D 形仪表,放在同一张卡片里:绿色弧线是仍可用的份额,灰色弧线是已用掉的份额,剩余额度以纯数字显示在中间,底部开口处的短徽标标明窗口(5H / 7D / 1M),鼠标悬停可看重置倒计时。额度用掉 80% 后,剩余弧线变红。无论套餐返回一个、两个还是三个窗口,仪表都会在卡片里均匀铺开。卡片跟随你选中的模型,切换服务商就切换读数。
- 当前模型的单价。
展开完整文档(README 剩余 1 节)
dsh-deepseek-usage
中文文档
DeepSeek Harness (DSH) 侧边栏插件,把当前服务商的账户读数和当前模型的单价放在你一眼就能看到的地方——支持 DeepSeek、Moonshot / Kimi、Z.ai (GLM)、MiniMax、OpenRouter、Kimi For Coding、OpenCode,以及 Claude Code / Codex OAuth 订阅,界面提供中文 / 英文两种语言。
余额模式:账户余额、当前模型的单价,右上角是高峰 / 低谷时段指示。
订阅模式:每个计费窗口一个 D 形仪表——里面的数字是剩余额度,灰色是已用部分,绿色是剩余部分(用量超过 80% 后变红),底部开口处的徽标标明窗口(5H / 7D / 1M)。
功能
- 当前服务商的账户信息,就在侧边栏底部。 显示余额和货币符号(¥ / $);如果订阅套餐不公布余额,就把接口返回的每个用量窗口都画成 D 形仪表,放在同一张卡片里:绿色弧线是仍可用的份额,灰色弧线是已用掉的份额,剩余额度以纯数字显示在中间,底部开口处的短徽标标明窗口(5H / 7D / 1M),鼠标悬停可看重置倒计时。额度用掉 80% 后,剩余弧线变红。无论套餐返回一个、两个还是三个窗口,仪表都会在卡片里均匀铺开。卡片跟随你选中的模型,切换服务商就切换读数。
- 当前模型的单价。 显示当前生效计费窗口的输入、输入缓存和输出价格,货币与定价表一致(元 / $)。切换模型、计费窗口翻转时,价格随之变化。
- 计费时段圆点。 模型的价格表声明了按时间划分的时段时,就会显示这个圆点:DeepSeek 官方的峰谷时段(北京时间周一至周五 09:00–12:00 和 14:00–18:00 显示橙色,其余时间绿色——晚间、周末、中国法定节假日和调休工作日都算低谷)。鼠标悬停时显示距离下次切换还剩多久,格式为 2d 15h、5h 47m 或 23m。OpenRouter 按时段覆盖的规则也会显示同样的圆点。订阅线路如果提供的是 DeepSeek 模型,也保留同样的圆点(订阅不显示按 token 计的价格)。全天统一价格的模型只显示价格行。
- 查询状态页,位于 Plugins 中插件自己的页面上:DSH 认识的每个服务商,只要已配置、受支持或当前活跃,都会得到一张小卡片,显示读取结果,或者显示无法读取的原因。
- OAuth token 卡片,用于 Claude Code 和 OpenAI Codex,前提是 DSH 检测到这些线路:粘贴 token 后,卡片和状态表就开始报告订阅用量。
- 每 30 秒刷新一次,点击时和模型变化时立即刷新;跟随应用的浅色 / 深色主题和 DSH 语言;标签页隐藏时暂停。
- 不编造数字。 第一个结果到达之前,卡片显示占位符(—)。价格表未覆盖的模型完全不显示价格,而不是猜测。
支持的服务商
| 服务商 | 类型 | 端点 | 凭据引用 |
| DeepSeek(deepseek-official、deepseek-account、deepseek) | 余额 | GET https://api.deepseek.com/user/balance —— API-key 线路遵循 DEEPSEEK_BASE_URL,deepseek-account 始终调用官方主机 | DEEPSEEK_API_KEY;deepseek-account 使用已登录账号的授权 |
| Moonshot / Kimi(moonshotai) | 余额 | GET /v1/users/me/balance —— 先在 api.moonshot.ai 查 USD,再在 api.moonshot.cn 查 CNY | MOONSHOTAI_API_KEY、MOONSHOT_API_KEY |
| Z.ai / GLM(zai) | 余额 | GET /api/biz/account/query-customer-account-report —— 在 api.z.ai 上用 Bearer,在 open.bigmodel.cn 上用原始 key | ZAI_API_KEY、ZAI_CODING_CN_API_KEY |
| OpenRouter(openrouter) | 余额 | GET /api/v1/key,key 没有限额时回退到 GET /api/v1/credits | OPENROUTER_API_KEY |
| Kimi For Coding(kimi-coding) | 订阅用量 | GET https://api.kimi.com/coding/v1/usages | KIMI_CODING_API_KEY、KIMI_API_KEY |
| OpenCode(opencode、opencode-go) | 订阅用量 | GET https://opencode.ai/zen/go/v1/usage | OPENCODE_GO_API_KEY、OPENCODE_API_KEY |
| MiniMax(minimax、minimax-cn) | 订阅用量 | GET /v1/token_plan/remains,位于 www.minimax.io / api.minimaxi.com | MINIMAX_CN_API_KEY、MINIMAX_API_KEY |
| Claude Code(anthropic) | OAuth 订阅 | GET https://api.anthropic.com/api/oauth/usage | DSH_USAGE_CLAUDE_OAUTH_TOKEN |
| OpenAI Codex(openai-codex) | OAuth 订阅 | GET https://chatgpt.com/backend-api/wham/usage | DSH_USAGE_CODEX_OAUTH_TOKEN + DSH_USAGE_CODEX_ACCOUNT_ID |
每个服务商先读取 Models 页面为该路由写入的引用(<ROUTE>_API_KEY,非字母数字字符会替换成 _),再读取适配器自己的环境变量名。所以,在 Models 页面填的 key 和在 shell 里导出的 key 都能用。缺少 key 时,卡片会写明它查找的引用名。deepseek-account 是例外:这条路由没有 key 可配,它读取在 DSH 中登录 DeepSeek 后留下的授权,并以 x-dsh-auth-token 发送。
每个订阅端点都在一次响应里返回全部用量窗口,所以卡片会并排列出这些窗口,不必为每个窗口单独发请求:OpenCode 报告 5 小时、每周和每月;Kimi For Coding 报告 5 小时、每周,账号有月度额度时再报告每月;Claude Code 报告 5 小时、每周,以及单独的 Opus 每周窗口;Codex 报告 5 小时和每周;MiniMax 按每个配额桶报告一个间隔窗口加一个每周窗口(卡片显示每个桶中最紧的那个)。各家厂商对数字含义的理解不一致,有的表示已用,有的表示剩余,所以所有读数都统一换算成已用。
[!NOTE]
配置了 GitHub Copilot(仅 OAuth)、Google、Google Vertex、Amazon Bedrock 或 Azure(云 AK/SK),或这些服务商当前处于激活状态时,状态页会说明原因,不显示数字;本插件有意不处理这些凭据类型。OpenCode 的 Zen 钱包余额没有可用 API key 读取的端点(anomalyco/opencode#44189),所以只能拿到上面这些订阅用量窗口。
环境要求
| DSH | 插件版本 |
| 0.2.x(0.2.0-rc.1 及以后) | 0.11.0 及以后 |
| 0.1.x(0.1.0-rc.6 及以后) | 0.10.x,或 0.11.0 及以后 |
dsh --version 会打印你的 DSH 版本。安装时不指定版本,会选最新的兼容版本;最新版和你的 DSH 不匹配时,请指定确切版本(@dougen/dsh-deepseek-usage@0.10.2)。
快速开始
1. 配置你要查询的服务商的 API key:在 DSH 的 Models 页面填,或设置对应的环境变量(DEEPSEEK_API_KEY 等)。deepseek-account 则改为在 DSH 中登录 DeepSeek:这条路由读取账号授权,不读 key。
2. 把插件安装到 web 配置档:
dsh plugin --profile web add @dougen/dsh-deepseek-usage
3. 重启 dsh web,打开它打印的 URL。卡片位于侧边栏底部,在 Cordis 面板按钮下方。
点击卡片可刷新;还没有读数时,它会在 4、8、15、30 秒后重试。
卸载:
dsh plugin --profile web remove @dougen/dsh-deepseek-usage
然后重启 dsh web。
查询状态页与 OAuth token
在 Plugins 中打开插件自己的页面,就能看到状态表。当前生效的服务商排在最前,标记为 Current;其余按类型分组排在后面。每一行要么显示读数,要么显示状态:No API key、No token、Querying…、Query failed 或 Not applicable。
Claude Code
在已登录 Claude Code 的机器上,从 ~/.claude/.credentials.json 复制 claudeAiOauth.accessToken(macOS 上取钥匙串条目 Claude Code-credentials)。用 claude setup-token 生成的 token 也能用,但它只带 user:inference 权限,所以插件改为从限流响应头读取 5 小时和 7 天窗口,而不是读完整的用量响应体。
OpenAI Codex
从 ~/.codex/auth.json 复制 tokens.access_token 填到 token 字段,复制 tokens.account_id 填到 account ID 字段(以 ChatGPT-Account-Id 请求头发送)。
token 存放位置
token 通过 DSH 的凭据服务(~/.dsh/.credentials.yaml)存储,始终留在本机:任何响应、日志行或页面元素都不会把它带出去。点 Clear 即可删除。
价格数据
每个服务商的价格都是一份内置快照,即 lib/pricing.js 中的 PRICE_TABLES。只有当服务商和模型 id 都在表里时,模型才有价格;所有查询走同一条路径(quoteAt)。没有价格文件,也没有后台同步——只有插件发布新版本时价格才会变。
| 表(服务商 id) | 货币 | 快照 | 模型与计费时段 |
| DeepSeek (deepseek-official、deepseek-account、deepseek) | CNY | 2026-09-10 | deepseek-flash、deepseek-v4-pro、deepseek-chat、deepseek-reasoner;高峰 / 低谷时段,别名 deepseek-v4-flash 和 deepseek-v4-flash-vision-exp |
| Moonshot / Kimi (moonshotai) | USD | 2026-10-27 | kimi-k3.1-pro、kimi-k3.1-pro-highspeed、kimi-k3、kimi-k2.7-code、kimi-k2.7-code-highspeed、kimi-k2.6 |
| Z.ai (zai) | USD | 2026-10-27 | glm-5.3、glm-5.3-flash、glm-5.3-flashx、glm-5.2、glm-5.1、glm-5、glm-4.7、glm-4.7-flashx、glm-4.6、glm-4.6v、glm-4.5、glm-4.5-air |
| MiniMax 国际版 (minimax) | USD | 2026-10-27 | minimax-m3、minimax-m3.1-flash |
| MiniMax 中国版 (minimax-cn) | CNY | 2026-10-27 | minimax-m3、minimax-m3.1-flash |
| OpenRouter (openrouter) | USD | 2026-10-27 | deepseek/deepseek-v4.1-flash-1017(按时间)、deepseek/deepseek-v4.1-flash、claude-sonnet-5.5、gpt-6.1-sol、gemini-3.8-flash、grok-4.7、glm-4.6、minimax-m3.1-flash |
计费时段
- DeepSeek — 高峰价(standard)适用于北京时间周一至周五 09:00–12:00 和 14:00–18:00,不含中国法定节假日;其余时间(晚间、周末、节假日、调休工作日)都是低谷价(offPeak)。deepseek-chat 和 deepseek-reasoner 在两个时段价格相同,但仍会显示指示器(悬停可看剩余时间)。
- OpenRouter — deepseek/deepseek-v4.1-flash-1017 自带工作日 09:00–12:00 / 14:00–18:00 时段,不套用中国节假日规则。
- 其他所有模型全天统一价:价格行不带圆点。
[!WARNING]
中国节假日表(lib/pricing.js 里的 HOLIDAY_RANGES)目前覆盖 2026 年。国务院通常在 11 月公布次年安排;届时更新这张表、浏览器端镜像和 HOLIDAY_TABLE_THROUGH_YEAR。在更新之前,节假日按普通工作日计费,宿主每天记一次警告。
价格表的局限
- 每个模型只存一个价格,所以服务商侧非时间维度的档位无法建模:MiniMax M3 的输入长度档位和优先服务、GLM-5.1 的 ≥32K 输入档位、OpenRouter 的各上游价差(网关表记录默认路由价格)。卡片显示基础档位。
- 每张表只对应一个店面,因为同一个模型 id 在不同站点价格不同:Moonshot / Kimi 和 Z.ai 用国际美元价;MiniMax 拆成 minimax(美元,.io)和 minimax-cn(人民币,.cn)。另一个店面的 key 对不上账单。
- 比插件发布更新的模型,在价格表跟上之前不计价 —— 插件绝不根据模型名猜价格。
- 经第三方网关(中转、自建端点、Workbuddy)访问的模型,由该网关计费。厂商 API 报告的是你自己账号在该厂商的情况,这是另一回事;如果你配了 DeepSeek key,但当前模型跑在网关上,卡片显示的是该网关的状态或原因 —— 不是你的 DeepSeek 余额,也不是网关的收费。
更新价格表
编辑 lib/pricing.js 里的 PRICE_TABLES —— 每个服务商 id 一个块,含 currency、asOf,每个官方模型 id 一条 models 条目:standard: { input, cacheRead, output }(每 1M token)。有更便宜时段的模型加 offPeak: { … },再加服务商级 schedule:peakWindows 标出高价区间(区间内用 standard,区间外用 offPeak),days: 'everyday' | 'weekdays',offsetMinutes 指定时区,holidays: true 只在中国法定节假日适用时加。旧模型名放进该服务商的 aliases。表里没有的模型保持不计价。
工作原理
插件分两半,都是纯 ESM,无需构建步骤。宿主注册四个本地路由:
| 路由 | 方法 | 用途 |
| /api/deepseek-usage | GET(?lang=zh\|en) | 当前模型所属服务商的读数、价格档位和计费时段状态 |
| /api/deepseek-usage/accounts | GET(?list=1 只列清单) | 每个已配置、受支持或当前服务商的查询状态 |
| /api/deepseek-usage/token | POST | 保存或清除 OAuth token |
| /api/deepseek-usage/holidays | GET | 供浏览器端使用的法定节假日表 |
- Host(lib/index.js、lib/accounts.js、lib/pricing.js)每次请求都从 agentDefaultModel 解析当前模型的服务商,再通过 DSH 的凭据服务解析该服务商的凭据引用,然后调用对应端点,超时 15 秒,响应上限 64 KiB,最后把任何失败归类成一条简短、可操作的提示。读取结果缓存 10 秒,按服务商、端点和凭据分别缓存,并合并进行中的请求,所以开第二个标签页或点一下都不会重复调用上游。
- Browser(lib/client.js)把这份结果渲染到 sidebar.footer.action 插槽,把状态表渲染到插件自己页面的 plugins.detail.section。它不含任何定价逻辑:圆点和价格都来自同一份结果。它每 30 秒重读一次,点击时和模型变化时也重读;只有当 Host 路由不可用时,才退而使用内置的节假日表。
- 仅限本地。 所有路由只响应本地调用方:Host 头必须指向回环地址(或服务器绑定的地址),跨站浏览器请求和外来 Origin 头一律拒绝,只接受文档中列出的方法,token 路由要求 JSON 且请求体有大小上限。凭据绝不传到浏览器——任何响应都不带密钥、token 或上游错误信息。同机上的本地进程仍能读取这些路由;这是本地工具固有的性质。
故障排查
卡片空白,显示原因而不是数字。
- DEEPSEEK_API_KEY is not configured / 其他引用名——在 DSH 设置(Models 页面)里配置它,然后重启。
- Not signed in to a DeepSeek account——deepseek-account 报告的是 DSH 登录授予的权限;在 DSH 里登录 DeepSeek,卡片就会开始读取余额。
- 密钥含有 HTTP 头无法承载的字符——通常是复制粘贴带进来的换行;重新复制,去掉换行。
- Balance API HTTP n / timed out / unreachable / returned an unreadable response / returned no balance——点击卡片重试;检查网络和服务商的状态页。
- 账户当前不可用——余额 API 返回了 is_available: false。
- This plugin does not support <provider>——当前服务商没有可读取的余额或用量 API(见上文)。
- This provider has no OAuth token yet / The OAuth token is no longer valid——在插件页面上粘贴或替换 token。
如果 DEEPSEEK_BASE_URL 指向第三方网关,就只能拿到该网关的应答:官方余额端点 https://api.deepseek.com/user/balance 永远不会被调用,并且只支持 DeepSeek 官方平台。这个覆盖只作用于 API-key 路由;deepseek-account 始终查询官方主机,因为账户授权只在官方主机上有效。
卡片从不原样展示上游错误信息:传输细节留在宿主日志里,卡片上只给一行简短、可操作的提示。
状态页上某个服务商没有读数 —— 看这一行的状态:No API key 表示凭据引用缺失,Not signed in 表示 deepseek-account 路由还没有账号授权,Not applicable 表示该服务商没有可读的 API。既不支持也未配置的服务商根本不会列出。
中文文档
一个 DeepSeek Harness(DSH) 的侧边栏插件:不离开 DSH 就能看到当前模型提供商的账户还剩多少、当前模型此刻什么价——覆盖 DeepSeek、Moonshot / Kimi、Z.ai(GLM)、MiniMax、OpenRouter、Kimi For Coding、OpenCode,以及 Claude Code / Codex 的 OAuth 订阅,界面支持中文与英文。
功能
- 侧边栏底部的账户读数:余额带币种符号(¥ / $);订阅制没有余额接口,就在同一张卡片里为接口返回的每个用量窗口画一个 D 形仪表盘——绿色弧是还没用完的额度,灰色弧是已经用掉的部分,弧内数字是剩余量(不带百分号),底部缺口嵌着周期缩写徽章(5H、7D、1M),重置倒计时放在悬浮说明里;已用达到 80% 后剩余弧变红。无论返回 1 个、2 个还是 3 个窗口,仪表盘都在卡片里均分居中。读数跟随当前选中的模型,切换提供商即切换读数。
- 当前模型的单价:输入 / 输入缓存 / 输出,按此刻生效的计费时段显示,币种跟给价的那张表走(元 / $)。切换模型、跨过计费区间切换点时会跟着变。
- 计费区间指示灯:价格表声明了分时段计费时出现。DeepSeek 为官方峰谷:高峰(周一至周五 09:00–12:00、14:00–18:00 北京时间,不含中国法定节假日)橙色,其余时间绿色——周末、法定节假日、调休上班的周末都按空闲处理;指针悬停时给出距下次切换的剩余时间(2d 15h、5h 47m、23m)。OpenRouter 的分时 overrides 用同一套指示灯。订阅制路由上跑的若是 DeepSeek 模型,也照旧显示指示灯(订阅制不显示按 token 的单价)。全天一价的模型只显示单价行。
- 查询状态页:在 Plugins 面板本插件的详情页上,DSH 里已配置的、受支持的、当前的每个提供商各占一张小卡片,能查的显示读数,不能查的写明原因。
- OAuth 令牌填写卡:DSH 检测到 Claude Code / Codex 时出现,粘贴令牌后卡片与状态表即可显示订阅用量。
- 每 30 秒自动刷新,点击卡片或切换模型时立即刷新;跟随应用明暗主题与 DSH 语言;标签页隐藏时暂停心跳。
- 不编数字:第一次响应回来之前显示占位符 —;价格表未收录的模型不显示价格,也不按模型名猜。
支持的提供商
| 提供商 | 类型 | 接口 | 密钥引用 |
| DeepSeek(deepseek-official、deepseek-account、deepseek) | 余额 | GET https://api.deepseek.com/user/balance——api-key 路由遵循 DEEPSEEK_BASE_URL,deepseek-account 恒用官方源 | DEEPSEEK_API_KEY;deepseek-account 用账号登录留下的 grant |
| Moonshot / Kimi(moonshotai) | 余额 | GET /v1/users/me/balance——api.moonshot.ai 为 USD,回落 api.moonshot.cn 为 CNY | MOONSHOTAI_API_KEY、MOONSHOT_API_KEY |
| 智谱 Z.ai / GLM(zai) | 余额 | GET /api/biz/account/query-customer-account-report——api.z.ai 用 Bearer,open.bigmodel.cn 用裸 Key | ZAI_API_KEY、ZAI_CODING_CN_API_KEY |
| OpenRouter(openrouter) | 余额 | GET /api/v1/key;该 Key 无限额时回落 GET /api/v1/credits | OPENROUTER_API_KEY |
| Kimi For Coding(kimi-coding) | 订阅用量 | GET https://api.kimi.com/coding/v1/usages | KIMI_CODING_API_KEY、KIMI_API_KEY |
| OpenCode(opencode、opencode-go) | 订阅用量 | GET https://opencode.ai/zen/go/v1/usage | OPENCODE_GO_API_KEY、OPENCODE_API_KEY |
| MiniMax(minimax、minimax-cn) | 订阅用量 | GET /v1/token_plan/remains——www.minimax.io / api.minimaxi.com | MINIMAX_CN_API_KEY、MINIMAX_API_KEY |
| Claude Code(anthropic) | OAuth 订阅 | GET https://api.anthropic.com/api/oauth/usage | DSH_USAGE_CLAUDE_OAUTH_TOKEN |
| OpenAI Codex(openai-codex) | OAuth 订阅 | GET https://chatgpt.com/backend-api/wham/usage | DSH_USAGE_CODEX_OAUTH_TOKEN + DSH_USAGE_CODEX_ACCOUNT_ID |
每个服务商先读模型页为该路由写入的 <路由名>_API_KEY(非字母数字换成 _),再读适配器自己声明的环境变量名——密钥不管是当初在模型页键入的,还是在 shell / .env 里导出的,都能读到。缺密钥时卡片会点名它查过的引用。deepseek-account 是例外:这条路由没有可配的 Key,它读的是在 DSH 里登录 DeepSeek 后留下的 grant,并以 x-dsh-auth-token 发送。
每个订阅接口都在一次响应里返回全部用量窗口,卡片因此可以并排列出,不必每个窗口各发一次请求:OpenCode 给 5 小时 / 周 / 月;Kimi For Coding 给 5 小时 / 周,账号有月额度时再给月;Claude Code 给 5 小时 / 周,以及单独的 Opus 周窗口;Codex 给 5 小时 / 周;MiniMax 给「区间 + 周」两档、每个额度桶各一份(卡片取每档里最紧的桶)。各家对「已用」和「剩余」的口径不一致,解析时统一折算成已用。
[!NOTE]
GitHub Copilot(仅 OAuth)、Google、Google Vertex、Amazon Bedrock、Azure(云厂商 AK/SK)被配置或正好是当前服务商时,状态页写明原因而不是给一个数字——这些凭据形态本插件有意不处理。OpenCode 的 Zen 钱包余额没有可用 API Key 读取的接口(anomalyco/opencode#44189),只有上面的订阅用量窗口可读。
版本要求
| DSH | 插件版本 |
| 0.2.x(0.2.0-rc.1 起) | 0.11.0 及以后 |
| 0.1.x(0.1.0-rc.6 起) | 0.10.x,或 0.11.0 及以后 |
dsh --version 查看当前 DSH 版本。不带版本号安装会取最新的兼容版本;最新版与你的 DSH 不匹配时,用 @dougen/dsh-deepseek-usage@0.10.2 这样的完整版本号指定。
安装
1. 在 DSH 设置(模型页)里配置要查的服务商的 API Key,或导出对应的环境变量(DeepSeek 是 DEEPSEEK_API_KEY,其余同理)。deepseek-account 不需要密钥:在 DSH 里登录 DeepSeek 账号即可,这条路由读的是登录留下的 grant。
2. 装进 web 配置档:
dsh plugin --profile web add @dougen/dsh-deepseek-usage
3. 重启 dsh web,打开它打印的地址:卡片位于侧边栏底部、Cordis 面板按钮下方。
点击卡片即可刷新;还没拿到读数时,会按 4、8、15、30 秒的节奏补几次请求。
卸载:
dsh plugin --profile web remove @dougen/dsh-deepseek-usage
然后重启 dsh web。
查询状态页与 OAuth 令牌
打开 Plugins 面板里本插件的详情页即可看到状态表。当前服务商排在最前并标着 当前,其余按类型分组;每一行要么显示读数,要么是 未配置密钥、未登录、未填写令牌、查询中…、查询失败、不适用 之一。
Claude Code——在已登录 Claude Code 的机器上,从 ~/.claude/.credentials.json 的 claudeAiOauth.accessToken 复制(macOS 在钥匙串项 Claude Code-credentials 里)。claude setup-token 产生的令牌也能用,但它只带 user:inference 权限,插件改为从推理响应的限流头读取 5 小时与 7 天两个窗口。
OpenAI Codex——从 ~/.codex/auth.json 的 tokens.access_token 复制,并把 tokens.account_id 填进账号 ID 一栏(它会作为 ChatGPT-Account-Id 请求头发送)。
令牌经 DSH 的凭据服务保存在本机(~/.dsh/.credentials.yaml),不出这台机器:任何响应、日志、页面元素都不会把它带回来。点清除即可删除。
价格数据
价格是 lib/pricing.js 里的 PRICE_TABLES:一家服务商一份内置快照。只有 provider 与模型 id 都在表里才给价,所有服务商共用同一段查表代码(quoteAt)。没有本地价格文件,也没有后台同步——只在发布新版本时更新。
| 价格表(provider id) | 币种 | 采集日期 | 模型与计费区间 |
| DeepSeek(deepseek-official、deepseek-account、deepseek) | CNY | 2026-09-10 | deepseek-flash、deepseek-v4-pro、deepseek-chat、deepseek-reasoner;峰谷时段,旧名 deepseek-v4-flash、deepseek-v4-flash-vision-exp 走别名 |
| Moonshot / Kimi(moonshotai) | USD | 2026-10-27 | kimi-k3.1-pro、kimi-k3.1-pro-highspeed、kimi-k3、kimi-k2.7-code、kimi-k2.7-code-highspeed、kimi-k2.6 |
| Z.ai(zai) | USD | 2026-10-27 | glm-5.3、glm-5.3-flash、glm-5.3-flashx、glm-5.2、glm-5.1、glm-5、glm-4.7、glm-4.7-flashx、glm-4.6、glm-4.6v、glm-4.5、glm-4.5-air |
| MiniMax 国际站(minimax) | USD | 2026-10-27 | minimax-m3、minimax-m3.1-flash |
| MiniMax 国内站(minimax-cn) | CNY | 2026-10-27 | minimax-m3、minimax-m3.1-flash |
| OpenRouter(openrouter) | USD | 2026-10-27 | deepseek/deepseek-v4.1-flash-1017(分时)、deepseek/deepseek-v4.1-flash、claude-sonnet-5.5、gpt-6.1-sol、gemini-3.8-flash、grok-4.7、glm-4.6、minimax-m3.1-flash |
计费区间
- DeepSeek——高峰价(standard)为周一至周五 09:00–12:00、14:00–18:00 北京时间,剔除中国法定节假日;其余时间(夜间、周末、节假日、调休上班日)为空闲价(offPeak)。deepseek-chat / deepseek-reasoner 两个区间同价,但照旧显示指示灯(悬停给出剩余时间)。
- OpenRouter——deepseek/deepseek-v4.1-flash-1017 自带工作日 09:00–12:00 / 14:00–18:00 的窗口,没有中国法定节假日规则。
- 其余模型全天一价:只显示单价行,没有指示灯。
[!WARNING]
中国法定节假日表(lib/pricing.js 的 HOLIDAY_RANGES)目前只覆盖 2026 年。国务院办公厅通常在前一年 11 月发布次年安排,届时更新该表、浏览器侧镜像表与 HOLIDAY_TABLE_THROUGH_YEAR。未更新前,节假日按普通工作日计价,宿主每天告警一次。
价格表的边界
- 每个模型只存一档价,所以不是按时间的分档没有建模:MiniMax M3 的输入长度分档与 priority 服务、GLM-5.1 的 ≥32K 输入档、OpenRouter 的多上游价差(表里记的是默认路由价)。卡片显示基础档。
- 每张表只按一个站点维护,因为同一个模型 id 在不同站点价格不同:Moonshot / Kimi、Z.ai 取国际站美元价;MiniMax 分成 minimax(美元,.io)与 minimax-cn(人民币,.cn)。Key 在另一个站点时,数字不会与账单一致。
- 比本插件版本更新的模型不估价,直到价格表更新——插件不按模型名猜价。
- 经第三方网关(中转、自建端点、Workbuddy)访问的模型由网关计费。厂商接口反映的是你自己在该厂商的账户,这是另一件事:配了 DeepSeek Key 但当前模型跑在网关上时,卡片显示的是该网关的状态或原因,既不是你的 DeepSeek 余额,也不是网关在扣多少。
手动更新价格表:改 PRICE_TABLES——给某个 provider id 加一块 currency、asOf,models 里每个官方模型 id 一条 standard: { input, cacheRead, output }(每百万 tokens)。有分时段计费的模型再加 offPeak: { … } 与 provider 级 schedule:peakWindows 标出贵的时段(区间内按 standard、区间外按 offPeak),days: 'everyday' | 'weekdays',offsetMinutes 指定计时时区,只有套用中国法定节假日的地方才写 holidays: true;旧模型名放该 provider 的 aliases。表里没有的模型不计价。
工作原理
插件分宿主侧与浏览器侧,都是无构建步骤的普通 ESM。宿主侧注册四个本机路由:
| 路由 | 方法 | 作用 |
| /api/deepseek-usage | GET(?lang=zh\|en) | 当前模型提供商的读数、单价与计费区间 |
| /api/deepseek-usage/accounts | GET(?list=1 只回清单) | 每个已配置 / 受支持 / 当前提供商的查询状态 |
| /api/deepseek-usage/token | POST | 写入或清除 OAuth 令牌 |
| /api/deepseek-usage/holidays | GET | 交给浏览器侧的法定节假日表 |
- 宿主侧(lib/index.js、lib/accounts.js、lib/pricing.js)每次请求从 agentDefaultModel 解析当前提供商,经凭据服务解析该提供商的密钥引用,请求对应接口(15 秒超时、64 KiB 响应上限),失败分类成一句简短可行动的话。读数缓存 10 秒并按「提供商 + 端点 + 凭据」分桶、合并在途请求,多标签页或重复点击不会重复打上游。
- 浏览器侧(lib/client.js)把响应渲染进 sidebar.footer.action,把状态表渲染进本插件详情页的 plugins.detail.section。界面自身不做计价逻辑:指示灯与单价都来自同一份响应。每 30 秒重新读一次,点击卡片或模型变化时立即刷新;宿主路由不可用时才用内置的节假日表兜底。
- 只服务本机:Host 必须是回环地址(或服务器绑定的地址),跨站浏览器请求与异源 Origin 一律拒绝,只接受文档声明的方法,令牌路由还要求 JSON 且有 body 上限。凭据从不下发到浏览器——任何响应都不带 Key、令牌或上游错误原文。同一台机器上的本地进程仍能读到这些路由,这是本地工具的固有边界。
常见问题
卡片空白,显示的是原因而不是数字
- 未配置 DEEPSEEK_API_KEY(或其它引用名):在 DSH 设置(模型页)里配置后重启。
- DeepSeek 账号尚未登录:deepseek-account 读的是 DSH 登录留下的 grant,在 DSH 里登录 DeepSeek 账号后卡片就会显示余额。
- Key 里含有 HTTP 头带不了的字符:通常是粘贴时带进一个换行,重新复制并去掉换行。
- 余额接口 HTTP n / 超时 / 无法连接 / 返回了无法解析的内容 / 没有返回余额:点击卡片重试,检查网络与该提供商的状态页。
- 账户当前不可用:余额接口有响应,但 is_available 为 false。
- 本插件不支持 <提供商>:当前提供商没有可查的余额或用量接口(见上文)。
- 尚未填写该提供商的 OAuth 令牌 / OAuth 令牌已失效:到插件页面粘贴或重新粘贴一个。
把 DEEPSEEK_BASE_URL 指向第三方中转时,拿到的是该中转的响应,官方余额接口不再被调用——本插件只支持 DeepSeek 官方平台。这个覆盖只作用于 api-key 路由:deepseek-account 恒用官方源,因为账号 grant 只在那里有效。
卡片不会原样显示上游的错误消息:传输层细节留在宿主日志里,卡片上只放一句简短、能行动的话。
状态页里某个提供商没有读数——看该行的状态:未配置密钥 表示凭据引用缺失,未登录 表示 deepseek-account 还没有账号 grant,不适用 表示这类提供商没有可查接口。既不支持也没配置的提供商不会出现在列表里。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
dougen/dsh-deepseek-usage
DeepSeek Harness 侧边栏插件:账号余额、当前模型单价与峰谷时段指示灯。
相关插件 · 浏览器
智能体插件框架deepseek-ai/deepseek-harness
DeepSeek Harnessdsh是由 DeepSeek AI 开发的开源 agent harness智能体框架。
★ 270,422已汉化DSH
71.9
多设备 Agent 看板YaoApp/yao
✨ 所有 Agent 和工作区集中管理,覆盖你的每一台设备。任务看板追踪进度,桌面端、移动端、浏览器、API…
★ 8,147已汉化DSH
71.2
可扩展侧边栏工作台omdsh-dev/DSH-better-sidebar
DSH 的双工作台:原生右侧栏 + 自绘底部面板,并把 ctx.betterSidebar 服务开放给所有插件
★ 4,761已汉化DSH
71.1
浏览器自动化桥Tencent/BrowserSkill
你的 Agent。你的浏览器。连接,就能协作。
★ 9,928已汉化DSH
71
AI 小说创作工作台EthanYoQ/AI-Novel-Writer
AI 小说作家 / AI Novel Writer
★ 1,591已汉化DSH
70.7
智能体浏览器引擎platonai/Browser4
DeepSeek Harness 集成
★ 1,175已汉化DSH
70.4
这是你的仓库?认领条目