Overview
dsh-cost-lite
README / EN
Package documentation
dsh-cost-lite
DeepSeek Harness 会话费用统计插件——dsh-cost-meter 的精简 fork。
原版功能繁多(预算、Go 额度、7 家 Coding Plan、自定义 Provider 余额、11 个设置面板、双语大文案),本 fork 只保留轻度用户真正用到的部分,并做了合并精简。
功能
左下角合并卡片(整卡为点击入口,点击打开「费用统计」浮层)
| 行 | 内容 |
|---|---|
| 行 0 | 当日余额条:当日起始余额(零点基准或充值后重置)的消耗进度 |
| 行 1 | 余额 + 今日费用 |
| 行 2 | 今日当前会话 费用 + 手动刷新按钮 |
| 行 3 | 峰谷时间条(北京时间真实窗口,当前时刻白色短线标记) |
当日余额条分段(左→右):充值余额(浅灰)→ 赠送余额(DS 蓝) → 今日已消费(深灰,右端)。
官方扣费顺序为先扣赠送、后扣充值,因此深灰消耗段向左增长时先"吃掉"蓝色赠送段,再吃充值段。
基准来自账本的 balanceRef(每天零点后首次拉官方余额时打基准;当日充值/赠送变动会重置基准)。
刷新按钮:点一下立即拉官方余额 + 本会话费用,不必等轮询(数据自动更新节奏见下)。
「费用统计」浮层(单页,无标签)
- 汇总卡片:今日费用 / 月度费用(最近 30 天滚动)/ 累计费用(账本建立以来);卡片数据项(输入/缓存/输出/调用)逐行居中显示,悬浮说明为计费时间口径(今日以北京时间 UTC+8 为准、月度以最近 30 天计算、累计自账本建立以来计算)
- Token 用量统计(最近 26 周热图)
- 按日期统计(折叠面板,日期行可展开当日会话明细)
- 按会话统计(全部历史,排序/条数可切换)
- 底部操作区(居中):同步官方价格 + 重置本地统计
卡片数据何时更新
没有推送通道,全是轮询:
- 余额/今日:每 60s(页面可见时)拉一次;页面重新可见立即刷新;断线重连刷新
- 今日当前会话:每 30s 轮询账本当日记录
- 官方余额本体:按
balance.refreshMinutes(默认 5 分钟)访问官方接口 - 点卡片上的刷新按钮可立即全部刷新
同步官方价格(重要)
本地价格表不会自动与官方同步。官方调价后请尽早点击浮窗底部的「同步官方价格」,否则:
- 本地继续按旧价记账,账本与官方账单产生偏差(官方涨价 → 本地记少;降价 → 记多)
- 偏差超过
max($0.3, 15% × 较大值)时,浮窗顶部出现黄色 ⚠ 对账警示 - 同步只影响之后的记账,历史账目不追溯修改,当天早先的调用仍按旧价保留
交叉对账
- 默认开启,无需配置(浮层内已移除开关)
- 机制:每次拉官方余额(默认每 5 分钟)时,对比官方余额当日变动(零点基准 → 现在)与本地账本今日官方渠道费用
- 偏差超阈 → 浮窗顶部黄色 ⚠ 警示行;每天零点基准自动重置,警示随新一天口径归零(账本历史数字不会回改)
- 只对 DeepSeek 官方渠道对账;第三方模型不动官方余额,不参与
数据口径
- 所有统计(今日/本月/累计/按日期/按会话)只来自本地账本
$DSH_HOME/storages/cost-meter/ledger.json——每笔调用在发生时由插件拦截llm/stream按"当时本地价格表"记账 - 官方侧只使用两种数据:余额接口(
/user/balance,返回 总/赠送/充值 余额,无消费历史)与官方定价页(同步价格用) - 因此「累计费用」= 账本建立(且本插件生效)以来经本地记账的累计;官方没有消费历史接口可对照,唯一对照物是余额变动
配置
设置面板已裁剪,配置直接编辑 ledger.json 的 config(改完重启 DSH 生效):
| 键 | 说明 | 默认 |
|---|---|---|
balance.display |
余额显示位置:both / sidebar / settings / off |
both |
hideOfficialBalance |
隐藏官方余额(卡片行 1 与浮层整体不渲染) | false |
hideTodayCost |
隐藏今日费用 | false |
sidebar |
左下角卡片开关 | true |
balance.refreshMinutes |
官方余额刷新间隔(分钟) | 5 |
decimals |
金额小数位数(0–10),固定显示、不去尾零 | 4 |
symbol / exchangeRate |
金额符号 / 展示汇率(USD → 符号) | ¥ / 7.2 |
locale |
auto(跟随浏览器语言)/ zh / en |
auto |
peakEnabled / peakStyle |
峰谷时段显示 / 样式(compact 简洁 / classic 经典) | true / compact |
position |
会话费用徽章位置:dock / header / off |
dock |
balance.reconcile |
交叉对账(建议保持开启) | true |
裁剪说明(相对 dsh-cost-meter v1.5.44)
| 项 | 状态 |
|---|---|
| 设置面板「费用」分节 | 移除 → 左下角卡片点击打开自绘浮层 |
| 浮层三页(概览/用量/价格)标签 | 合并为单页「费用统计」(价格页自定义编辑移除,同步按钮保留在底部操作区) |
| 官方余额面板(总/赠/充明细 + 刷新) | 移除(总余额见卡片行 1;对账保持默认开启,警示移到浮层顶部) |
| 预算 / Go 额度 / Coding Plan / 自定义余额 | 移除 |
| 设置页「额度」「显示」分节 | 移除 |
| 安装前历史导入 | 移除(历史回填/清洗逻辑一并移除) |
| 会话费用徽章(输入区/标题栏) | 保留(position 配置) |
| 价格表 + 官方同步 | 保留(仅底部同步按钮,无编辑页) |
| 中英双语 | 保留 |
host 侧 backfill.js / coding-plans.js / custom-balance.js 已删除,costMeter 服务只保留
getState / updateConfig / fetchPrices / refreshBalance / resetHistory / getDaySessions / getTopSessions。
安装
dsh plugin --profile web add ~/file/dsh/plugin/dsh-cost-lite
替换原 dsh-cost-meter(两者都记账会重复计费):
dsh plugin --profile web remove dsh-cost-meter
然后重启 DSH。客户端改动按 Ctrl+Shift+R 刷新页面。
数据
账本仍写 $DSH_HOME/storages/cost-meter/ledger.json(与原版共用,历史记录无缝保留)。
卸载插件不会删除账本。重置本地统计 会清空账本所有按天/按会话统计(不影响官方余额)。
许可
MIT。上游 dsh-cost-meter © 2026 dsh-cost-meter contributors。
