deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
PROJECT README
Token usage & cost monitor for DeepSeek Harness — floating widget with multi-dimensional stats, time-series charts, auto-detected billing plans (Code/Token) and estimated spend.
dsh 用量与计费仪表盘:token 调用量、按模型 / 供应商 / 时间统计、预计费用,自动识别订阅制(Code)与按量(Token)计费计划。
简体中文 | English
在 dsh Web UI 右下角显示一个悬浮用量窗口:实时查看 token 调用量、多维度统计与预计计费金额,零配置自动识别计费计划并直读订阅商真实额度/余额。
usdCnyRate,默认 7.2)

| 层级 | 内容 |
|---|---|
| 悬浮胶囊(右下角) | 始终显示预计费用与总 Token(超预算变黄/变红告警) |
| hover | 摘要预览:费用、Token、输入 / 输出 / 缓存读、调用次数、今日小计 |
| 点击展开 | 四标签页详情面板;顶部工作区筛选下拉(按项目限定统计、逐级下钻子目录),标签栏右侧 $ / ¥ 货币切换按钮(悬停预览同款;汇率由服务端实时拉取,失败回退 usdCnyRate 固定值) |
插件内置供应商知识库(lib/knowledge.js,2026-08-14 官方文档核实):17 个供应商 / 131 个模型价格。provider id 自动归一化别名:glm→zhipu、kimi→moonshot、dashscope→qwen、gemini→google、grok→xai、claude→anthropic、copilot→github-copilot、minimax-cn→minimax、deepseek-official→deepseek 等。日志中出现的提供商自动匹配知识库生成计划与价格(UI 标记"自动识别");显式 plans / pricing 配置始终覆盖自动识别。
| 供应商 | 默认档 | 档位 | 额度口径 |
|---|---|---|---|
OpenCode Go(opencode-go) |
$10/月 | — | 实时额度(官方 GET /zen/go/v1/usage:5h/周/月 实际已用百分比 + 重置时间);接口不可用时回退周 $30(V4 Flash 约 79,050 请求/周) |
OpenAI Codex(openai-codex) |
Plus $20/月 | Plus / Pro 5x $100 / Pro 20x $200 / Business | 实时额度(chatgpt.com/backend-api/wham/usage,需本机 ~/.codex/auth.json 登录态;未登录回退 ~100 请求/周) |
GitHub Copilot(github-copilot) |
Pro $10/月 | Free / Pro / Pro+ $39 / Max $100 / Business / Enterprise | 实时额度(api.github.com/copilot_internal/user,需 GH_TOKEN/GITHUB_TOKEN 或 gh auth login;未登录回退 AI Credits 月 $15) |
Claude Code(claude-sub) |
Pro $20/月 | Pro / Max 5x $100 / Max 20x $200 | 实时额度(api.anthropic.com/api/oauth/usage,需本机 ~/.claude/.credentials.json 登录态;未登录回退档位表 5h 1x/5x/20x) |
智谱 Coding Plan(zhipu) |
官方套餐 | — | 实时额度(官方 bigmodel.cn/api/monitor/usage/quota/limit:5h/周 已用百分比 + 重置时间、MCP 月度次数;凭据缝 ZHIPU_API_KEY;国际站 z.ai 可用 usageEndpoints 换 URL) |
MiniMax Token Plan(minimax) |
官方套餐 | — | 实时额度(官方 minimaxi.com/v1/token_plan/remains:5h/周 剩余百分比 + 重置时间;凭据缝 MINIMAX_API_KEY,兜底 MINIMAX_CN_API_KEY;国际站 minimax.io 可用 usageEndpoints 换 URL) |
ClinePass(clinepass) |
官方套餐 | — | 实时额度(官方 api.cline.bot/v1/users/me/plan/usage-limits:300 分钟/周/月 已用百分比 + 重置时间;凭据缝 CLINEPASS_API_KEY) |
Google AI / Gemini CLI(google-ai-sub) |
AI Pro $19.99/月 | AI Pro / Ultra 5x $99.99 / Ultra 20x $199.99 | 无公开用量接口,按官方每日上限(1,500 / 2,000 请求/天)展示 |
| 供应商 | 已收录模型 |
|---|---|
OpenAI(openai) |
gpt-5.6 sol/terra/luna、gpt-5.5、gpt-5.4 系、gpt-5 系、gpt-5.2、o3/o4-mini/o1 |
Anthropic(anthropic) |
claude-opus-5、sonnet-5、haiku-4-5、fable-5、opus/sonnet-4.x |
Google(google) |
gemini-3.7/3.6/3.5 flash、3.1-pro、2.5 pro/flash/lite |
xAI(xai) |
grok-4.6、4.5、4.3、build-0.1 |
Mistral(mistral) |
large-3、medium-3.5、small-4、ministral-3 |
Moonshot(moonshot) |
kimi-k3、k2.7-code |
智谱(zhipu) |
glm-5.2、5.1、5 |
阿里(qwen) |
qwen3.8-max、3.7-max/plus/flash |
MiniMax(minimax) |
m3、m2.7 |
OpenRouter(openrouter) |
实时目录 50 个热门模型 |
OpenCode Zen(opencode-zen) |
PAYG 网关价(Claude/GPT/Gemini/Grok/DeepSeek) |
DeepSeek(deepseek) |
v4-flash、v4-pro |
内置适配器(lib/providers/,端点与鉴权 2026-08-25 核实):
凭据只读复用本机登录态与凭据缝:
| 供应商 | 凭据来源 |
|---|---|
| OpenCode Go / DeepSeek / 智谱 / MiniMax / ClinePass / Moonshot | 环境变量或凭据缝:OPENCODE_GO_API_KEY / DEEPSEEK_API_KEY / ZHIPU_API_KEY / MINIMAX_API_KEY(兜底 MINIMAX_CN_API_KEY) / CLINEPASS_API_KEY / MOONSHOT_API_KEY |
| OpenAI Codex | 本机 ~/.codex/auth.json 登录态 |
| Claude Code | 本机 ~/.claude/.credentials.json 登录态 |
| GitHub Copilot | GH_TOKEN / GITHUB_TOKEN / gh 配置 |
余额卡自动出现:只要凭据缝($DSH_HOME/.credentials.yaml)配置了 DEEPSEEK_API_KEY / MOONSHOT_API_KEY,即使该 provider 未出现在会话日志中(例如经 OpenCode Go 网关使用),也会自动生成 token 计划卡展示真实账户余额。登录态缺失或接口失败时卡片显示原因并回退本地配额行。Codex/Claude/Copilot 为非公开/逆向接口(chatgpt.com、api.anthropic.com、api.github.com),随时可能变化,失败不崩溃。
费用口径:Code 计划按订阅费、Token 计划按估算用量计入「预计花费(月)」;"按 token 估算"仍单独展示用于对比。官方未公布额度的计划(如 Claude Code)显示档位表而非进度条;额度按官方周期(天/周/月)计量。
lib/index.js)注册为 Typert Remote 服务 usageStats(通过网关的 SRC 发现机制,无需生成描述符文件)。lib/client.js)不走 typert 命名空间,直接以 ctx.connection.rpc.call("/api", "usageStats/query", ...) 调用宿主网关(与生成的 Remote 命名空间同一载体),因此无需在 inject 中声明由插件自身创建的命名空间。document.body 上(position: fixed; right: 20px; bottom: 20px),卸载时自动移除。$DSH_HOME/sessions 下所有会话的持久化日志(zstd 分帧逐帧解码),按 token-meter 语义聚合:assistant/chunk 的 usage 为早期样本,assistant/message 的 usage 为同一 (turn, step) 的最终样本并替换早期样本,因此不会重复计数;当前内存中的活动会话事件也会合并进来。request/header)→ 首个内容 chunk;生成时长 = 首 → 末内容 chunk;tokens/s = 输出 token ÷ 生成时长。工具调用后的续写步骤没有独立请求日志,其 TTFT 以 step/start 为起点估算(样本带 ttftEstimated 标记)。插件包声明了 dsh.bundle 清单,dsh plugin add 后由 CLI 自动挂载进 profile 层——无需手动编辑任何配置文件:
# 1. 安装到 web profile(pnpm 转发,支持 npm 包 / github:owner/repo / 本地路径)
dsh plugin --profile web add dsh-spend
# 2. 验证已挂载(组合配置中出现 usage-stats 行)
dsh --profile web --dump-config | grep usage-stats
# 3. 重启 dsh web(改动需要重启加载,HMR 对插件不生效)
dsh web
也可以从源码安装:dsh plugin --profile web add github:nonewind/dsh-spend(或本地路径 -w /path/to/dsh-spend)。
覆盖默认配置:插件内置供应商知识库自动识别价格与计费计划(见上),一般无需配置。需要覆盖时,在 ~/.dsh/profiles/web/cordis.patch.yml 中加入同 id(usage-stats)的 insert 行即可——用户层在 bundle 层之后应用,同名行覆盖生效。配置项见下节。
cordis.patch.yml 中 usage-stats 行的 config(当前已写入官方价,见「价格来源」):
config:
currency: USD # 服务端基准货币(费用按 USD 计算;UI 内可自由切换 $ / ¥ 展示)
usdCnyRate: 7.2 # USD→CNY 固定汇率(实时汇率拉取失败时的回退值)
liveRate: true # 服务端实时拉取 USD→CNY 汇率(6h 缓存);false 时始终用固定值
pricing: # 按模型精确匹配的单价(每百万 token)
- model: deepseek-v4-flash
inputPerMillion: 0.14
outputPerMillion: 0.28
cacheReadPerMillion: 0.0028
cacheWritePerMillion: 0
defaultPricing: # 未知模型的回退单价
inputPerMillion: 0.14
outputPerMillion: 0.28
cacheReadPerMillion: 0.0028
cacheWritePerMillion: 0
maxSessions: 20 # 按会话统计最多展示行数
maxRecentCalls: 50 # 最近调用最多展示行数
seriesHours: 168 # 时间曲线窗口(小时,服务端按此出 0 填充连续序列;UI 可切换 24h/72h/7d)
refreshSeconds: 30 # 悬浮窗自动刷新间隔(秒,>= 5)
monthlyBudget: 50 # 可选:月度花费预算(单位同 currency),UI 显示已用/剩余并告警
plans: # 计费计划:判断 Token Plan / Code Plan 并展示使用量与剩余量
- provider: opencode-go
type: token # token 计费:已用费用(估算);balance 为充值余额(可选)
# balance: 100
- provider: openai-codex
type: code # 订阅额度制:使用量取近 periodDays 天的实际消耗
quotaRequests: 100 # 周期请求额度(也可用 quotaTokens 按 token 额度)
periodDays: 7
usageEndpoints: # 订阅商实时额度接口(内置 opencode-go 默认值;其余内置适配器见注释)
- provider: opencode-go
url: https://opencode.ai/zen/go/v1/usage # 官方额度端点(非公开文档 API)
apiKeyEnv: OPENCODE_GO_API_KEY # 可选:凭据名(默认 <PROVIDER>_API_KEY)
timeoutMs: 15000 # 可选:超时毫秒
实时额度/余额:Code 计划按内置适配器(
lib/providers/)直读订阅商接口——opencode-go(凭据缝OPENCODE_GO_API_KEY)、openai-codex(本机~/.codex/auth.json)、claude-sub(~/.claude/.credentials.json)、github-copilot(GH_TOKEN/GITHUB_TOKEN/gh配置)、zhipu(ZHIPU_API_KEY)、minimax(MINIMAX_API_KEY,兜底MINIMAX_CN_API_KEY)、clinepass(CLINEPASS_API_KEY);卡片显示各窗口实际百分比与重置时间。Token 计划余额直读:deepseek(DEEPSEEK_API_KEY)、moonshot(MOONSHOT_API_KEY)。usageEndpoints可覆盖内置地址/超时,或为自定义供应商走通用 Bearer-key 通道(<PROVIDER>_API_KEY)。仅当登录态缺失、超时或非 200 时回退本地配额行并提示原因。
计价行可加可选
provider字段做提供商精确匹配(如provider: openai-codex),不带 provider 的行对任意提供商的同名模型生效;未匹配到任何行时回退defaultPricing。Token Plan 的「剩余」= 配置的充值余额 − 累计已用费用;Code Plan 的「剩余」= 额度 − 周期内实际消耗。未配置plans的提供商不显示计划卡片(默认按 token 计费口径展示费用)。
单价均来自厂商官方定价页(2026-08-14 查证),已写入本地配置;费用 = Σ(各桶 token × 对应单价 / 1e6)。下表为 2026-08-17 前的 legacy 价;8/17 起 DeepSeek 自动按峰谷价计价(见下方 ⚡ 说明,provider 为
deepseek或deepseek-official时均生效):
| 模型 | 输入(未命中) | 输入(缓存命中) | 缓存写 | 输出 |
|---|---|---|---|---|
| deepseek-v4-flash | $0.14 | $0.0028 | 0* | $0.28 |
| deepseek-v4-pro | $0.435 | $0.003625 | 0* | $0.87 |
| gpt-5.6-sol | $5.00 | $0.50 | $6.25 | $30.00 |
| gpt-5.6-terra | $2.00 | $0.20 | $2.50 | $12.00 |
| gpt-5.6-luna | $0.20 | $0.02 | $0.25 | $1.20 |
cacheWritePerMillion: 0。schedule(effectiveAt + peakHours + peak/offPeak 价格),每条调用按自身发生时刻与时段计价——8/17 前按上表 legacy 价,之后按峰谷价,历史调用不重算(计费单价表中带"峰谷计价"徽章)。费用为按官方单价的估算值,仅作参考,非账单;页面底部亦有免责说明。
dsh-spend/
├── package.json # 双端声明:dsh.client(web 平台 + 注入边)、dsh.bundle 清单
├── cordis.patch.yml # bundle 补丁:向 profile 插入 usage-stats 配置行
├── lib/
│ ├── index.js # 服务端插件:UsageStatsService(Typert Remote)
│ ├── knowledge.js # 供应商知识库:计划自动识别(Code/Token)
│ ├── stats.js # 纯回放/聚合/计费逻辑(可独立测试)
│ ├── providers.js # 实时额度/余额适配器门面(历史导入面兼容)
│ ├── providers/ # 适配器实现(每厂商一个文件,共享 common.js)
│ │ ├── index.js # 注册表:PROVIDER_USAGE(额度)/ PROVIDER_BALANCE(余额)
│ │ ├── common.js # 共享工具(请求、鉴权、归一化)
│ │ ├── opencode.js # OpenCode Go 实时额度(官方端点)
│ │ ├── oauth-codex.js # OpenAI Codex 实时额度(逆向接口)
│ │ ├── oauth-claude.js # Claude Code 实时额度(逆向接口)
│ │ ├── oauth-copilot.js # GitHub Copilot 实时额度(逆向接口)
│ │ ├── quota-zhipu.js # 智谱 Coding Plan 实时额度(官方端点)
│ │ ├── quota-minimax.js # MiniMax Token Plan 实时额度(官方端点)
│ │ ├── quota-clinepass.js # ClinePass 实时额度(官方端点)
│ │ ├── balance-deepseek.js # DeepSeek 账户余额(官方端点)
│ │ └── balance-moonshot.js # Moonshot 账户余额(官方端点)
│ └── client.js # 浏览器 bundle(手写 __ModuleLoader__ 格式)
├── docs/screenshots/ # 界面截图
├── README.md # 本文件(中文)
├── README.en.md # 英文版
└── LICENSE # MIT
reasoningTokens)。decodeErrors 并在页脚提示。CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。