tuoluofusijiyang
dsh-cost-monitor
屏幕顶部实时显示当前对话的估算费用
- Stars
- 0
- Language
- JavaScript
- Created
- Aug 16, 2026
- Updated
- Aug 16, 2026
Introduction
dsh-cost-monitor
DSH 费用监控插件:屏幕顶部实时显示当前对话的估算费用,按模型单价与峰谷时段计价。
踩中 AI 圈最大的痛点——费用焦虑。DeepSeek 把 API 价格最高上调 11 倍并引入峰谷定价后,每个用 agent 干活的人都想知道"这一轮烧了多少钱"。这个插件让费用透明可见。
效果
屏幕最上方正中央固定一条胶囊,实时显示:
💰 当前对话估算费用 ¥0.552 · 本轮 ¥0.000 · 上轮 ¥0.158 · ⚡ 高峰 · 5 次调用
| 字段 | 含义 |
|---|---|
| 当前对话估算费用 | 当前会话累计,只增不减 |
| 本轮 | 正在进行的这一轮实时产生的费用,回合结束归零 |
| 上轮 | 刚结束那一轮的花费,保留到下一轮结束 |
| 高峰 / 闲时 | 当前时刻的官方计价时段(高峰 9:00-12:00、14:00-18:00,闲时半价) |
| N 次调用 | 插件激活以来监听到的模型调用次数 |
三个金额都是估算:真实 token 用量 × 官方单价,非对接 API 现查的账单。
能力表
| 能力 | 说明 |
|---|---|
| Host 事件监听 | 订阅 llm/stream 水流,捕获每次模型调用的真实 usage(input/output/cache token) |
| 回合边界 | 订阅 session/event 的 turn/end,按回合切分"本轮/上轮"费用 |
| 峰谷计价 | 内置官方峰谷价目表,按北京时间判断高峰/闲时,自动切换单价 |
| Client UI | 注册 shell.overlay,顶部固定胶囊,每 2 秒刷新,随会话切换 |
安装
纯 Cordis 插件,配置 HMR 实时生效,无需重启 web:
dsh plugin --profile web add dsh-cost-monitor
然后在 profile 的 cordis.patch.yml 中加入:
- insert:
- id: dsh-cost-monitor
name: dsh-cost-monitor
也支持从 git 源安装(不依赖 npm):
dsh plugin --profile web add github:tuoluofusijiyang/dsh-cost-monitor#main
使用
装好后,任意会话的屏幕顶部就会出现费用胶囊,随对话实时更新。每个会话独立统计。
已知边界
- 状态是进程内存的:插件 update 或 DSH 重启后累计归零。这是动态/纯 Cordis 插件的固有特性;要跨重启保留历史费用需额外做持久化(本插件未做)。
- 费用是估算:价格表手写在
index.mjs的PRICES,官方调价或换模型需自行更新。 - 费用在每次模型调用结束时入账,不是流式逐字增长——因为 DSH 的 token 用量在调用结束才返回。
开发
npm install # 安装 esbuild
npm run build:client # 构建 client/client.js(__ModuleLoader__ 包装)
结构:
dsh-cost-monitor/
├── index.mjs # Host half:Cordis 插件(name/inject/apply)
├── client/src/index.js # Client half 源码(React + shell.overlay)
├── client/client.js # 构建产物(dsh.client web 通道)
├── cordis.patch.yml # 组合行示例
└── scripts/build-client.mjs
修改价目表
index.mjs 顶部的 PRICES,格式为每百万 token 人民币:
{
hit: [高峰, 闲时], // 缓存命中输入
miss: [高峰, 闲时], // 未命中输入(含缓存写入)
out: [高峰, 闲时], // 输出
}
新增模型按同样格式追加即可。
插件管理
已装插件用 plugin-registry 的薄控制台管理(浏览器面板):管理 profile 插件安装态(bundle 层栈 + insert 行 + 启停),无需手改配置。安装:
dsh plugin --profile web add <plugin-registry>/packages/plugin/console
License
MIT