dsh-cost
luyquan/dsh-cost
DSH web plugin: a real-pricing usage-cost line beside the official token stats — per-model cost breakdown with a verified price table. / DSH 费用统计行:在官方 Token 用量行旁按模型显示真实费用(按模型分别标注,价格均来自官方定价页)。
Instalar
dsh plugin --profile web add github:luyquan/dsh-costREADME
dsh-cost-line · DSH 费用统计行
在 DeepSeek Harness Web 界面的 官方 Token 用量统计行下方,新增一行按模型分别标注的真实费用统计——格式与官方统计行完全一致(管道分隔、自动截断、悬停显示全量明细)。
仓库:https://github.com/LuYquan/dsh-cost · 开源协议:MIT

价格来源保证真实:内置价格表全部逐条核对自官方定价页(每条注明来源 URL 与核对日期
checkedAt),绝不虚构;未收录的模型一律显示"价格未知",绝不估算。
特性
- 按实际路由追溯:优先使用
request/context中解析完成后的真实 provider/model(request/header仅作旧日志兜底);流式 usage 与最终消息按 turn/step 替换去重,失败但已上报 usage 的请求也不会漏算; - 格式与官方一致:12px 次级文本、管道分隔统计组、超长省略号截断、延迟悬停 Tooltip 展示全量(含每个模型的输入/输出/缓存 token 明细);
- 价格真实:DeepSeek 的人民币与美元官方价分别保存、分别计费,不再用单一汇率近似人民币账单;其他仅发布美元价的模型才通过
usdToCnyRate换算; - 按时间自动计价:DeepSeek 自北京时间 2026-08-17 00:00 起切换峰谷计费,插件按请求实际发生时间自动选择高峰/空闲价(高峰 09:00–12:00、14:00–18:00 北京时间),无需手动切换;
- 峰谷切换提醒:Web 页面保持打开时,跨过峰谷边界会使用 DSH 官方 Toast 显示“进入高峰/空闲”消息;初次打开页面保持静默,休眠恢复后最多补一条当前状态提醒;除 DeepSeek 默认时钟外,已使用模型的自定义峰谷
schedule也会提醒; - 多模型 / 多套餐:内置 DeepSeek、OpenAI、Anthropic、Google 的现行官方价格;支持任意套餐名、按模型选择套餐、版本号通配和长上下文分段价;
- 价格审计可见:悬停明细显示请求套餐→实际生效套餐、价格核验日期、DeepSeek 当前时段和下一切换时间;套餐回退、过期或未提供核验日期的价格会在费用行直接警告;
- 双数据路径:宿主侧以官方投影机制(
sessionProjections)计算,可跨分页/压缩存活;投影注册表缺失时客户端自动降级为节点折叠(与官方统计行的兜底模式一致); - i18n:中文 / English 双语文案,随界面语言自动切换。
安装
通过官方 CLI(推荐):
dsh plugin --profile web add dsh-cost-line@latest
或手动安装:把 dsh-cost-line 加入 profile 的 package.json 依赖与 dsh.profile.bundles,然后重启 dsh web。
安装并重启后,会话输入框下方会出现费用行,例如:
… 官方统计行(turn · 时长 · token)…
费用 ¥2.36 | DeepSeek-V4-Flash ¥2.36
悬停费用行可查看每个模型的完整明细(每模型一行,含输入/输出/缓存 token 与缓存命中率):DeepSeek-V4-Flash ¥2.36(输入 46.9M · 输出 260K · 缓存 46.4M · 缓存命中率 98%)。
配置
插件配置通过 loader(cordis.patch.yml 中对应行的 config 字段):
- insert:
- id: cost-line
name: 'dsh-cost-line'
config:
showPerModelInLine: true # 行内显示各模型费用(默认 true)
maxInLine: 3 # 行内最多显示几个模型,超出显示 …(默认 3)
peakReminders: true # 峰谷切换时显示 DSH Toast(默认 true)
priceStaleAfterDays: 90 # 超过多少天提示价格需复核;0 关闭警告
currency: 'CNY' # 显示币种:'CNY'(默认,人民币)或 'USD'
usdToCnyRate: 6.7878 # 仅用于未发布人民币价的模型(默认:CFETS 2026-08-14 中间价)
billingTier: 'standard' # 全局套餐名;也支持 fast 等提供商自有名称
billingTierByModel: # 可选:按实际路由选套餐;支持 *,最具体规则优先
'openai/gpt-5.5*': priority
'anthropic/claude-opus-*': fast
'anthropic/*': batch
priceOverrides: # 真实价格;键支持 provider/model 的 * 通配
'acme/acme-1':
inputPerM: 0.5 # USD / 每百万 token 输入(缓存未命中)
outputPerM: 1.5 # USD / 每百万 token 输出
cacheReadPerM: 0.05 # 可选:缓存命中
cacheWritePerM: 0.1 # 可选:缓存写入
displayName: 'Acme-1' # 可选:模型显示名(默认 model id)
source: 'https://provider.example/pricing'
checkedAt: '2026-08-17' # 建议填写;缺失时费用行提示复核
tiers: # 可选:任意名称的套餐价
reserved: { inputPerM: 0.4, outputPerM: 1.2 }
bands: # 可选:按本次请求总输入 token 选择整单费率
- aboveInputTokens: 200000
rate: { inputPerM: 1.0, outputPerM: 2.0 }
schedule: # 可选:为该模型配置峰谷/调价调度(任意模型均可)
effectiveAt: '2026-09-01T00:00:00Z'
kind: peak-off-peak # 或 rate(到期整体换价)
peak: { inputPerM: 0.8, outputPerM: 2.4 }
offPeak: { inputPerM: 0.4, outputPerM: 1.2 }
peakWindows: [[9, 18]] # UTC 时段(半开区间)
source: 'https://provider.example/pricing'
checkedAt: '2026-08-17'
priceOverrides 用于:① 未收录模型的官方价格;② 你的部署提供商自有价格(例如网关代理价);③ 任意新模型。键可以是精确路由,也可以用 *,例如 'openrouter/openai/gpt-5.5*';用户规则始终优先于内置表,同层规则以更具体者优先。数值单位固定为 USD / 百万 token;覆盖内置 DeepSeek 项后,CNY 显示也会按 usdToCnyRate 换算这套自定义 USD 价。未附 schedule 的覆盖项代表一套完整的固定价格,会替代内置调价计划。自定义数字不会继承内置价格的核验日期,请同时填写自己的 source / checkedAt。请填写真实价格——插件只会照实计算,不会替你编造。
加载时会校验套餐名、有限非负费率、日期、长上下文阈值以及 0..24 的非重叠整数 UTC 峰谷窗口;无效片段会被安全丢弃并写入 dsh-cost-line 宿主警告。套餐名前后空格会自动去除。
模型支持
token 用量与模型追溯对任意模型开放(宿主投影按 request/context 的实际解析路由精确归因,无需配置);费用显示取决于价格表——内置表 + priceOverrides 共同决定哪些模型有价。
内置价格表(每条以 checkedAt 为准,新增条目核对于 2026-08-17):
- DeepSeek:
deepseek-v4-flash/deepseek-v4-pro(含官方峰谷调度,自动生效) - OpenAI:
gpt-5.5、gpt-5.5-pro、gpt-5.4、gpt-5.4-mini及其官方固定快照 ID;5.5/5.4 自动处理>272K输入的整单长上下文费率,并内置适用的 Batch / Flex / Priority 价格; - Anthropic:Claude Fable 5、Opus 5/4.8/4.7/4.6/4.5、Sonnet 5/4.6/4.5、Haiku 4.5;内置 Batch,Opus 5/4.8 另有 Fast;4.5 的 API 别名和日期快照通过安全通配共同覆盖;
- Google(Standard 档):
gemini-3.7-flash、gemini-3.6-flash(2026 促销价,2027-01-01 起自动翻倍)、gemini-3.5-flash、gemini-3.5-flash-lite、gemini-3.1-flash-lite、gemini-2.5-flash、gemini-2.5-flash-lite——以上模型同时内置 Batch / Flex / Priority 三档价格(见下方套餐说明)
套餐与档位(billingTier)
- 会话日志不含档位信息,部署通过
billingTier选择默认套餐(默认standard),再通过billingTierByModel为不同实际路由选择套餐;两处均接受提供商自有名称,例如 Anthropicfast; billingTierByModel和priceOverrides都支持*,精确/更具体的规则优先,可一次覆盖版本化模型或同一网关下的一组模型;- 未内置档位数据的模型(如 DeepSeek)在非 standard 档下回退 standard(绝不猜测);
- 内置套餐均保存官方公布的明确数值,不用统一倍率猜测;用户自定义模型可在
priceOverrides.*.tiers中添加任意套餐; - 缓存存储费(Gemini
$1/百万 token/小时)按小时计费、无法从用量推算,不计入(需要精确对账请用priceOverrides自行折算); - 分段输入定价可通过
priceOverrides.*.bands精确配置;内置 GPT-5.5/5.4 已使用该机制,尚未核验的模型仍保持“价格未知”。
通过配置添加任意模型(示例:免费模型与带调度的模型):
priceOverrides:
'opencode/deepseek-v4-flash-free': # 免费模型:价格为 0(请先核验你的提供商)
inputPerM: 0
outputPerM: 0
displayName: 'DeepSeek V4 Flash Free'
'opencode/mimo-v2.5-free':
inputPerM: 0
outputPerM: 0
displayName: 'MiMo V2.5 Free'
不内置的情形(价格真实性原则):
- 无法由会话 token 用量推导的额外费用(服务器工具调用、缓存按小时存储、Scale Tier 固定容量、区域/数据驻留溢价等);
- 无官方公开价格可核验的模型与第三方网关自有价格(如 opencode 免费档)——显示“价格未知”,用
priceOverrides填真实价格。
价格来源
所有内置价格均于 checkedAt 当日逐条核对自官方页面。DeepSeek 同时内置官方人民币与美元价(每百万 token):
| 模型 / 时段 | 输入(未命中) | 输出 | 缓存命中 | 来源 |
|---|---|---|---|---|
| deepseek-v4-flash 空闲 | ¥1.5 / $0.22 | ¥4.5 / $0.66 | ¥0.05 / $0.007 | 中文定价 / USD pricing |
| deepseek-v4-flash 高峰 | ¥3 / $0.44 | ¥9 / $1.32 | ¥0.10 / $0.014 | 同上 |
| deepseek-v4-pro 空闲 | ¥4.5 / $0.66 | ¥13.5 / $1.98 | ¥0.15 / $0.022 | 同上 |
| deepseek-v4-pro 高峰 | ¥9 / $1.32 | ¥27 / $3.96 | ¥0.30 / $0.044 | 同上 |
其他内置模型目前使用官方 USD 价:
| 模型 | 输入(未命中) | 输出 | 缓存命中 | 来源 |
|---|---|---|---|---|
| gpt-5.5(Standard,≤272K 输入) | $5.00 | $30.00 | $0.50 | OpenAI model pricing |
| gpt-5.4(Standard,≤272K 输入) | $2.50 | $15.00 | $0.25 | OpenAI model pricing |
| gpt-5.4-mini(Standard) | $0.75 | $4.50 | $0.075 | OpenAI model pricing |
| Claude Opus 5 / 4.8 / 4.7 / 4.6 / 4.5 | $5.00 | $25.00 | $0.50 | Claude pricing |
| Claude Sonnet 5 | $2.00 | $10.00 | $0.20 | 同上 |
| Claude Sonnet 4.6 / 4.5 | $3.00 | $15.00 | $0.30 | 同上 |
| Claude Haiku 4.5 | $1.00 | $5.00 | $0.10 | 同上 |
| gemini-3.7-flash / 3.6-flash(Standard,2026 促销价) | $0.75 | $3.75 | $0.075 | Google AI pricing |
| gemini-3.5-flash | $1.50 | $9.00 | $0.15 | 同上 |
| gemini-3.5-flash-lite | $0.30 | $2.50 | $0.03 | 同上 |
| gemini-3.1-flash-lite | $0.25 | $1.50 | $0.025 | 同上 |
| gemini-2.5-flash | $0.30 | $2.50 | $0.03 | 同上 |
| gemini-2.5-flash-lite | $0.10 | $0.40 | $0.01 | 同上 |
- DeepSeek 自 2026-08-16 16:00 UTC(北京时间 2026-08-17 00:00) 起执行峰谷计费;生效前的历史调用仍按旧价重放,生效后按请求时间选择高峰/空闲价。
- GPT-5.5 / GPT-5.4 在单次请求总输入
>272K时,Standard、Batch、Flex 自动按官方规则对整单应用 2× 输入与 1.5× 输出;未公布的 Priority 长上下文倍率不会猜测,仍使用已核验的 Priority 费率。 - Claude 缓存写入使用官方默认 5 分钟缓存价;若部署明确使用 1 小时缓存、区域端点或其他溢价,请通过精确/通配
priceOverrides覆盖。 - Google 的 3.7/3.6 Flash 促销价至 2026-12-31,2027-01-01 起翻倍,插件同样按时间自动适用;其余 Google 模型为现行价。
- 未收录模型和第三方网关价格显示“价格未知”,请用
priceOverrides填入真实价格。 - 无专属缓存单价的提供商,缓存读取/写入按输入价计(可在
priceOverrides中单独指定)。 - 币种与汇率:DeepSeek 的 CNY / USD 账单直接使用对应官方价;Google 等仅有 USD 价的模型在 CNY 显示时才使用
usdToCnyRate。默认值为 2026-08-14 人民币对美元中间价 6.7878,可按部署需要更新。也可将currency设为'USD'。
最近价格核对:DeepSeek、OpenAI、Anthropic 2026-08-17;Google 各条以 checkedAt 为准。
数据链路与局限
- 主路径(持久):宿主
sessionProjections注册usageCost投影单元,按实际request/context路由折叠 usage chunk / final sample;同一 turn/step 后值替换前值(分页与压缩不影响); - turn/step 替换缓存是最多 512 项的有界映射,即使多个流交错也能正确替换,同时避免投影检查点无限增长;
- 兜底路径(窗口):投影缺失时,客户端折叠当前可见的会话节点(仅覆盖已加载窗口,与官方兜底行为一致);
- 费用按请求发生时间结算;投影
stateVersion使用“状态结构第 4 代 + 价格/套餐/币种策略指纹”,安装升级或修改计费配置后都会自动从日志重算缓存,避免一个小计混用新旧价格; - 子代理(subagent)有独立会话日志,其费用归入各自会话,不计入父会话行;辅助标题生成等日志外请求不计(README 说明即文档);
- 非法/负用量记录会被守卫丢弃(与官方 session-stats 一致)。
部署注意(社区插件规范)
- 无 config 行也能启动:本插件的宿主与客户端入口都会在
config缺失时套用默认值(resolveCostLineConfig)——Loader 不会自动应用 schemastery 默认值,社区插件必须在apply(ctx, config)内自行兜底,否则整棵插件树启动崩溃; - 建议在 profile 的
cordis.patch.yml显式给出配置(幂等且便于维护),例如以同 id 条目覆盖(见上);显式配置与内置默认值等效,插件对两者都安全。
开发
pnpm install
pnpm check # typecheck + 88 tests + build + 客户端包冒烟 + 价格门禁
pnpm prices:audit # 内置路由/来源/核验日期审计(默认最长 120 天)
pnpm dsh:doctor # 本机 Node、DSH CLI 与关键运行时包兼容性检查
CI 除每次 push/PR 的完整检查外,还会每月运行一次价格新鲜度审计。测试套件包含真实 Cordis Context + SessionProjectionRegistry 接线测试,并会加载最终客户端 bundle 检查模块交接形状;正式发布前仍应在目标 DSH Web 中完成一次真实请求与 UI 冒烟测试。
src/pricing.ts—— 价格表与折算(纯函数,无依赖)src/peak-reminder.ts—— 峰谷状态与下一切换边界(纯函数)src/usage-cost.ts—— 折叠状态机(宿主投影与客户端兜底共用)src/index.ts—— 宿主插件(投影注册 + schemastery 配置)src/client/—— 客户端插件(slot 注册、组件、i18n)tests/—— 价格完整性(防虚构门禁)、折叠归因、组件渲染三套测试
构建产物:lib/index.js(宿主 ESM)+ lib/client.js(浏览器 bundle,window.__ModuleLoader__.load 格式,遵循 DSH 社区插件规范 dsh.bundle.patch / dsh.client.inject)。
License
MIT © 2026 dsh-cost-line contributors