搓了一个 dsh 插件,用于统计会话的 Token 费用消耗明细

uruana 2026-08-19 20:55 1

dsh 插件:Token 计费明细


大家好,最近在使用 dsh 感觉挺好玩的,我发现一个比较实际的问题:


模型请求越来越多,但很难在当前会话里快速知道:



  • 这次请求大概花了多少钱?

  • 当前会话累计费用是多少?

  • 哪些 Token 命中了缓存?

  • 不同模型、不同阶段的费用如何比较?

  • 重启 dsh 之后,历史费用还能不能保留?


所以我做了一个本地插件:dsh-cost-meter 。


项目地址:


https://github.com/uruana33/dsh-cost-meter


npm:


https://www.npmjs.com/package/@mymeter/dsh-cost-meter


它能做什么


安装后,会在 dsh Web profile 中提供一个 Token 计费浮窗和独立的 Token 计费页面。


主要功能包括:



  • 请求生成过程中实时显示 Token 和费用估算

  • 最终收到 provider usage 后,用实际 usage 校正估算值

  • 区分输入 Token (无缓存)、输入 Token (缓存)和输出 Token

  • 按会话、阶段、轮次查看费用明细

  • 记录本地费用账本,重启后可以恢复历史聚合结果

  • 展示预算进度、缓存命中节省和 DeepSeek 峰谷计费倒计时

  • 支持费用趋势、异常分析以及 CSV / JSON 安全导出

  • Host / Client 分离,API Key 和账本只在 Host 侧处理


目前价格目录已经覆盖 DeepSeek 、xAI 、OpenAI 、Anthropic 、Google Gemini 、Moonshot/Kimi 、MiniMax 、Mistral 、Groq 、Together 、Fireworks 和 Cerebras 等 provider 。


安装


需要 Node.js 22.19+,并且已经配置好 dsh Web profile 。


直接从 npm 安装:


dsh plugin --profile web add @mymeter/dsh-cost-meter


安装后重启或重新加载对应的 dsh Web profile ,打开一个会话即可看到浮动小票。


隐私边界


这是一个本地插件:



  • API Key 只在 Host 侧使用

  • 不会进入浏览器 Client bundle

  • 不会写入浏览器 localStorage

  • 导出功能只包含安全字段,不包含 prompt 、completion 、工具正文或 API Key

  • 默认不会自动联网更新价格目录


目前余额适配只接入了 DeepSeek ,其他 provider 暂时不会显示余额。


当前状态


现在发布的是 0.1.0 早期版本,项目已经开源到 GitHub ,npm 包也已经发布。


还存在一些已知限制:



  • 尚未用真实 DeepSeek 账户完成完整的生产 usage 和金额对账

  • 多进程不能同时写入同一个账本文件

  • 部分 gateway 、代理和订阅 route 只能按可识别的底层模型做等价估算

  • 远程价格更新能力目前还没有接入生产插件


效果图


Token 计费页
Token 计费浮窗


欢迎反馈


如果你也在使用 dsh ,或者有类似的本地 LLM 成本统计需求,欢迎反馈:



  • 还需要支持哪些 provider 或 route alias ?

  • 你更关心会话费用、预算提醒,还是长期趋势?

  • 本地账本和导出格式是否符合你的使用习惯?

  • 哪些地方需要改进交互或展示?


欢迎提 issue 或 PR ,也欢迎直接在下面交流。

最新回复 (4)
  • dy1945 08-20 00:39
    1
    支持一下,昨天还想搞一个来着
  • uruana 楼主 08-20 09:50
    2
    @dy1945 欢迎体验哈,可以随便提 PR ,共建完善
  • williampan 08-20 12:14
    3
    是按照工作区计算合计,还是每个会话单独计算?因为有些模型是本地的无需考虑 token 。
  • uruana 楼主 08-20 14:00
    4
    @williampan 目前都是按会话的,根据 session id
* 帖子来源V2EX
返回