Back to home

ruozhi5067

dsh-cost-tracker

DSH 侧边栏任务花费统计插件:总花费、当前项目、token 明细与 DeepSeek 官方人民币单价,自动更新,重启自动恢复。

Stars
0
Language
JavaScript
Created
Aug 16, 2026
Updated
Aug 16, 2026

Introduction

dsh-cost-tracker

DSH(DeepSeek Harness)侧边栏任务花费统计插件:在侧边栏底部显示总花费、当前项目花费、token 明细,以及 DeepSeek 官方人民币单价(自动随官方定价页更新,进程重启后自动恢复)。

功能

  • 侧边栏底部卡片(位于 cordis 插件面板上方,独占一行)
    • 折叠态:
      已花费:¥0.57 当前项目:¥0.30
      输入命中:1.2k 输入未命中:3.4k 输出:5.6k
      展开 ▸
      
    • 展开态:逐项目明细(显示项目名称、总花费、输入命中/未命中/输出 token 数),以及官方模型单价
  • 覆盖全部项目,无需逐个打开:除了内存中的活跃会话,还增量读取持久化的会话日志(sessionPersistence.readFrom),因此侧边栏里未打开的其他项目也会自动显示花费,不需要点击切换项目
  • 官方人民币单价自动更新:抓取 DeepSeek 官方中文定价页(api-docs.deepseek.com/zh-cn/quick_start/pricing)的「元」价格,启动时、每 12 小时、超过 6 小时未更新时自动刷新;↻ 可手动刷新;抓取失败时回退到内置人民币价格
  • 重启自动恢复:作为宿主组合插件,每个根会话启动时自动重建侧边栏组件
  • 可在插件管理页管理:宿主插件行出现在「设置 → 插件 → 全部」清单;动态组件在侧边栏 Cordis 插件面板中可批准/停止/移除

工作原理

组件由两层组成:

  1. 宿主插件 cost-widget-auto(本包,src/index.mjs):监听 agent/created,为每个根会话调用动态插件运行器的 define() + run(),自动创建/恢复侧边栏组件。浏览器端 UI 只能以动态插件形式运行,因此由这一行承担“持久化”职责。
  2. 动态组件「任务花费统计」widget/host.js + widget/client.js):实际的费用统计与界面代码,随会话自动加载。

费用计算直接使用会话日志中 provider 上报的 TokenUsage(输入命中=缓存命中输入、输入未命中=非缓存输入、输出=输出),按官方人民币单价折算,(turn:step) 去重、不重复计费。

安装

方式 A:作为 profile bundle(推荐)

  1. 安装包到 profile(在 profile 目录 ~/.dsh/profiles/<profile>/ 下):

    cd ~/.dsh/profiles/<profile>
    pnpm add dsh-cost-tracker
    
  2. 将该包加入 profile 的 bundle 列表(~/.dsh/profiles/<profile>/package.jsondsh.profile.bundles):

    {
      "dsh": {
        "profile": {
          "bundles": ["@deepseek-ai/dsh-base", "...", "dsh-cost-tracker"]
        }
      }
    }
    

    其自带 cordis.patch.yml 会自动插入插件行。

方式 B:用户补丁层(无需改 bundle)

  1. 安装包到 profile 的 node_modules(同上第一步)。

  2. ~/.dsh/profiles/<profile>/cordis.patch.yml 中插入:

    - insert:
        - id: cost-widget-auto
          name: dsh-cost-tracker
    

    该补丁层热加载,无需重启即可生效。

使用

  • 安装后,侧边栏底部(cordis 插件面板上方)出现花费卡片;点击卡片折叠/展开
  • 窄侧栏(56px 图标栏)下显示紧凑的 花费 ¥x 按钮,点击自动展开侧边栏
  • 展开后 ↻ 可手动刷新官方单价;每 5 秒自动刷新花费数据
  • 组件管理:侧边栏 Cordis 插件面板(批准/停止/移除);宿主插件状态见「设置 → 插件 → 全部」

卸载

  1. 删除 bundle 列表中的 dsh-cost-tracker,或删掉补丁中的 insert 块(热加载生效)
  2. 在 Cordis 插件面板中移除动态组件「任务花费统计」
  3. 可选:pnpm remove dsh-cost-tracker

自定义

  • 修改组件界面/格式:编辑 widget/client.js(界面)与 widget/host.js(统计与价格逻辑),保存后重启生效
  • 价格来源:默认抓取官方中文定价页;仅英文页可用时按官方两版价格交叉推导的汇率折算
  • 模型适配:内置价格表包含 deepseek-v4-flash / deepseek-v4-pro,官方页面结构变化后解析器会按表格结构自适应;若新增模型未命中,费用按 0 计并标记

已知限制

  • 浏览器端授权不跨进程:每次重启后首次加载动态组件时,需要在 Cordis 插件面板点击一次「允许」(这是 DSH 批准机制的设计,插件不绕过)
  • 仅对会话日志中带 usage 的模型调用计费;费用按官方单价估算,实际以官方账单为准
  • 峰值/谷值分时价仅展示(展开详情),费用计算使用官方主表价格

隐私与安全

  • 所有数据在本机计算:从官方定价页只读取价格数字,不发送任何会话数据
  • 插件不收集、不上传任何个人或会话信息

License

MIT