dsh-usage-ledger
Manifest valid★ 3dsh-usage-ledger (Token Cost Tracking) — Automatically records how many Tokens and how much money each conversation costs (queryable per conversation, per day, or cumulatively). Prices automatically follow the latest official rates and support multiple domestic providers. Off-peak hours are automatically billed at discounted rates, budget overruns trigger automatic alerts and can block further calls, plus a visual dashboard.
dsh-usage-ledger ( Token费用统计 )
中文 | English
DeepSeek Harness 的 Token / 用量统计与成本控制插件:按对话聚合消耗、动态跟随官方定价、支持预算拦截,并内置 Web 仪表盘。
功能特性
- 按会话统计:监听
session/event,把每次assistant/message的usage(输入 / 输出 / 缓存读写 Token)折算为费用,按会话、按北京日、按生命周期三个维度聚合,并持久化到账本文件。 - 动态官方定价:定期抓取官方定价页,自动解析并热更新价格,官方调价 / 上新模型时无需改代码即可生效。
- DeepSeek 峰谷分时:识别官方「高峰 / 空闲」时段表与生效日期,按调用发生的北京时间实时取价。
- 多厂商价格目录:覆盖 DeepSeek、智谱 GLM、月之暗面 Kimi、阿里通义、字节豆包、MiniMax、百度文心等主流国产模型,新模型上线官方定价页后自动导入。
- 预算控制:支持日 / 总 / 单会话三级预算,达到阈值进入告警,超限可通过
llm/stream钩子直接拦截模型调用。 - Web 仪表盘:通过
dsh-host-webserver注册/usage-ledger路由,提供用量可视化与 JSON API。 - 用户覆盖价:
customPrices设置可为任意模型(含自定义模型)覆盖或补充价格,优先级最高。
安装
一键安装
dsh plugin add beijingwahw/dsh-usage-ledger --profile web
常用进阶命令:升级
dsh plugin upgrade dsh-usage-ledger --profile web;卸载dsh plugin remove dsh-usage-ledger --profile web;本地路径安装dsh plugin add ./dsh-usage-ledger --profile web。
Harness 通过 dsh.plugin.json 与 cordis.patch.yml 自动加载插件,lib/ 随仓库分发,无需本地构建。
配置
在 Harness 的 cordis.yml 中挂载并配置:
- name: dsh-usage-ledger
config:
ledgerPath: '' # 留空则使用 $DSH_HOME/usage-ledger.json
saveIntervalMs: 5000 # 账本落盘防抖
pricingTimeoutMs: 10000 # 单次定价抓取超时
usage-ledger 命名空间的用户设置(可在运行时热更新):
| 设置 | 默认 | 说明 |
|---|---|---|
dailyBudget | 0 | 日预算(元),0 关闭 |
totalBudget | 0 | 总预算(元),0 关闭 |
sessionBudget | 0 | 单会话预算(元),0 关闭 |
warnRatio | 0.8 | 进入告警的预算占比 |
enforceBudget | true | 超预算时拦截模型调用 |
pricingUrl | DeepSeek 官方页 | 定价刷新来源 |
refreshIntervalMin | 60 | 定价刷新间隔(分钟) |
customPrices | {} | 按模型 id 覆盖价格(最长前缀匹配) |
customPrices 示例:
{
"glm-4.6": { "inputCacheHit": 1, "inputMiss": 5, "output": 5 }
}
价格单位为 元 / 百万 tokens。
价格解析优先级
用户覆盖 > DeepSeek 实时表 > 各厂商实时抓取表 > 内置目录精确匹配 > 最长前缀匹配
各厂商抓取方式(fetchKind):
| 厂商 | 通道 |
|---|---|
| DeepSeek | 官方定价页 HTML(含峰谷表) |
| 智谱 GLM | SPA app.*.js 内嵌价格 + 公开运营位接口 |
| Kimi | Next.js RSC flight payload 子页 |
| 通义千问 | 官方定价页表格 |
| 豆包 | 火山文档中心服务端 Markdown |
| MiniMax | 官方定价页表格 |
| 文心 | 百度 CDN Gatsby page-data |
抓取失败时沿用上一次成功的价格,网络异常不影响记账。
提供的工具
usage_report:输出当前用量 / 费用 / 预算状态报表。
HTTP 接口
GET /usage-ledger:仪表盘页面。GET /usage-ledger/api/...:用量与定价 JSON API。
开发
pnpm run build # 编译到 lib/
pnpm run typecheck # 仅类型检查
目录结构:
src/
index.ts # 插件入口:事件折叠、预算门、工具与路由注册
ledger.ts # 用量聚合、持久化、预算评估
pricing.ts # 定价抓取、解析、变更检测
catalog.ts # 厂商元信息与内置价格目录
scrapers.ts # 通用 / 专用定价页解析器
types.ts # 共享类型
参与贡献
欢迎提交 Issue 与 Pull Request。请保持改动聚焦,提交前运行 pnpm run typecheck。
从源码构建安装(贡献者 / 离线场景):
git clone https://github.com/beijingwahw/dsh-usage-ledger.git
cd dsh-usage-ledger
pnpm install
pnpm run build
dsh plugin add ./dsh-usage-ledger --profile web
许可
dsh-usage-ledger
中文 | English
A token usage & cost ledger plugin for DeepSeek Harness: per-session cost aggregation, dynamic official pricing, budget gating, and a built-in web dashboard.
Features
- Per-session accounting: listens to
session/event, prices everyassistant/messageusagerecord (input / output / cache read & write tokens), and aggregates it per session, per Beijing-time day, and per lifetime, persisting everything to a ledger file. - Dynamic official pricing: periodically scrapes official pricing pages, parses and hot-reloads prices — official price changes and newly published models take effect without any code change.
- DeepSeek peak/off-peak: understands the official peak/off-peak schedule and its effective date, resolving the price in force at the exact Beijing time of each call.
- Multi-vendor catalog: covers DeepSeek, Zhipu GLM, Moonshot Kimi, Alibaba Qwen, ByteDance Doubao, MiniMax and Baidu ERNIE; new models are imported automatically once they appear on an official pricing page.
- Budget control: daily / total / per-session budgets with a warning threshold, optionally blocking model calls through the
llm/streamgate when exceeded. - Web dashboard: registers the
/usage-ledgerroute viadsh-host-webserver, with usage visualization and a JSON API. - User price overrides: the
customPricessetting can override or add prices for any model (including custom ones) and takes top priority.
Installation
One-liner
dsh plugin add beijingwahw/dsh-usage-ledger --profile web
Common follow-ups: upgrade
dsh plugin upgrade dsh-usage-ledger --profile web; uninstalldsh plugin remove dsh-usage-ledger --profile web; local-path installdsh plugin add ./dsh-usage-ledger --profile web.
Harness loads it automatically through dsh.plugin.json and cordis.patch.yml. lib/ ships in the repo — no local build step needed.
Configuration
Mount and configure it in Harness's cordis.yml:
- name: dsh-usage-ledger
config:
ledgerPath: '' # empty = $DSH_HOME/usage-ledger.json
saveIntervalMs: 5000 # ledger persistence debounce
pricingTimeoutMs: 10000 # wall-clock budget for one pricing fetch
User settings in the usage-ledger namespace (hot-reloadable at runtime):
| Setting | Default | Description |
|---|---|---|
dailyBudget | 0 | Daily cost budget (CNY); 0 disables |
totalBudget | 0 | Lifetime cost budget (CNY); 0 disables |
sessionBudget | 0 | Per-session cost budget (CNY); 0 disables |
warnRatio | 0.8 | Ratio at which budgets enter the warning state |
enforceBudget | true | Block model calls once any budget is exceeded |
pricingUrl | DeepSeek official page | Pricing refresh source |
refreshIntervalMin | 60 | Pricing refresh interval (minutes) |
customPrices | {} | Price overrides by model id (longest-prefix match) |
customPrices example:
{
"glm-4.6": { "inputCacheHit": 1, "inputMiss": 5, "output": 5 }
}
All prices are CNY per 1M tokens.
Price Resolution Priority
user overrides > DeepSeek live sheet > vendor live tables > built-in catalog exact match > longest-prefix match
Per-vendor fetch channels (fetchKind):
| Vendor | Channel |
|---|---|
| DeepSeek | Official pricing page HTML (incl. peak/off-peak table) |
| Zhipu GLM | Prices embedded in the SPA app.*.js bundle + public operation API |
| Kimi | Next.js RSC flight payload subpages |
| Qwen | Official pricing page tables |
| Doubao | Volcano doc-center server-side Markdown |
| MiniMax | Official pricing page tables |
| ERNIE | Baidu CDN Gatsby page-data |
On fetch failure the last good prices are kept, so network issues never break accounting.
Provided Tool
usage_report: reports current usage / cost / budget status.
HTTP Endpoints
GET /usage-ledger: dashboard page.GET /usage-ledger/api/...: usage and pricing JSON API.
Development
git clone https://github.com/beijingwahw/dsh-usage-ledger.git
cd dsh-usage-ledger
pnpm install
pnpm run build # compile to lib/
pnpm run typecheck # type check only
Layout:
src/
index.ts # plugin entry: event folding, budget gate, tool & route registration
ledger.ts # usage aggregation, persistence, budget evaluation
pricing.ts # pricing fetch, parsing, change detection
catalog.ts # vendor metadata and built-in price catalog
scrapers.ts # generic / vendor-specific pricing page parsers
types.ts # shared types
Contributing
Issues and pull requests are welcome. Please keep changes focused and run pnpm run typecheck before submitting.
License
Compatibility
Versions
| Latest version | Published | Size |
|---|---|---|
| 0.9.0 | — | — |
Comments
Loading…
Similar plugins
by xiaml666
DSH 花费显示:每轮对话花了多少钱、整个会话累计多少钱,按官方价格表精确计价(自动刷新、高峰/低谷自动同步、多供应商多币种),并附带账户余额与可视化设置面板;余额与会话累计始终同币种。
★ 0
MIT
JavaScript
Sep 11, 2026
dsh plugin --profile web add dsh-plugin-costby Coco-king
DeepSeek Harness 会话计费 + 通用提供方用量查询插件:会话费用角标(峰谷两档精确计费、刷新后依然准确)、按模型提供方配置的用量面板(DeepSeek 官方余额 / OpenCode Go 5小时·周·月套餐额度 / 自定义 HTTP 用量查询),官方价格一键同步,双币种(USD/CNY)价格表。
★ 0
MIT
JavaScript
Sep 28, 2026
dsh plugin --profile web add dsh-monitor极简匹配DSH官方风格的计费卡片. 会话与轮次费用估算插件,支持多价格源、模型独立币种和 DeepSeek 峰谷计费。
★ 1
MIT
JavaScript
dsh plugin --profile web add @guojinpeng/dsh-cost-meterby 7gzgn
See what a conversation actually costs: how many model requests, how big the system prompt and tool table are, cumulative tokens, estimated spend, and how far you are from automatic context compaction
★ 0
JavaScript
Oct 24, 2026
dsh plugin --profile web add dsh-frameby AGImentu
DSH (DeepSeek Harness) Web 插件:每条助手消息旁的费用胶囊 + 设置里的「费用统计」页(逐条计费项、回复与上下文压缩分开、官方 CNY/USD 价目表、高峰/空闲感知)
★ 0
MIT
TypeScript
Oct 22, 2026
dsh plugin --profile web add dsh-cost-statsby juhe291
A corner HUD for DeepSeek Harness that shows your session's token pressure, per-model cost, and daily/monthly usage at a glance, with an editable budget and balance that tracks spending for you. 右下角常驻
★ 6
↓ 127/wk
MIT
TypeScript
Aug 17, 2026
dsh plugin --profile web add dsh-token-panel