Back to home

ZhaYi-Miao

dsh-survival-cost

Survival-mode token cost tracker for DeepSeek Harness: session/message cost, whale-girl token bubble, pricing plans. / DeepSeek Harness 生存模式 Token 花费统计插件

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

Introduction

dsh-survival-cost

生存模式 · Token 花费统计 —— 为 DeepSeek Harness 打造。

一个「省 token + 花销透明」的插件:侧边栏底部实时显示本会话的 Token 用量与费用(缓存命中 / 未命中输入 / 输出 分别计价),每条助手消息下方附加该段对话的 Token 与花费小字,并在每一轮 AI 回复完成后让 dsh-pet 桌宠旁弹气泡告诉你这轮花了多少。配套的「生存模式」Agent 预设(~/.dsh/.agent-presets/survival/)通过精简提示、更早压缩上下文来降低每次请求的 token 消耗,同时保留 Shell、文件、检索、Skills、计划等核心编码能力。

✨ 功能

功能位置说明
侧边栏花费sidebar.footer.action本会话累计:缓存命中 / 未命中输入 / 输出 Token 数 + 各自花费 + 总花费(金额右对齐);折叠侧边栏时仅显示总花费
每段对话小字conversation.chat.assistant-actions每条已完成的助手消息下方:入 230.3k · 出 629 · 花费 ¥0.0059
桌宠 token 气泡shell.overlay每轮回复完成后在 dsh-pet 鲸鱼娘旁弹同款气泡:「这轮我吃了 X tokens · 花了 Y 元~」;跟随鲸鱼娘位置;仅鲸鱼娘可见时提示,关掉桌宠或隐藏则完全静默
设置页设置 → 生存模式切换计价方案、模型假设、填写自定义价格
自动跟随模型按最近请求的模型(deepseek-v4-flash / deepseek-v4-pro)自动取对应价格表

💰 计价方案

价格单位为 元 / 每百万 tokens。内置三套方案(设置页可切换),以及完全自定义模式:

方案flash 命中 / 未命中 / 输出pro 命中 / 未命中 / 输出
涨价前(默认)0.02 / 1 / 20.025 / 3 / 6
涨价后 · 高峰0.09 / 4.5 / 90.1125 / 13.5 / 27
涨价后 · 空闲0.045 / 2.25 / 4.50.05625 / 6.75 / 13.5
自定义用户填写用户填写

「涨价前」为 DeepSeek 官方 2026-08-17 调价前的公开价格。「涨价后」按官方调价公告推算:高峰时段(北京时间 9:00–12:00、14:00–18:00)约为涨价前 4.5 倍(pro 输出最高 ¥27/百万),空闲时段为高峰的一半。公告细节有限,数字为推算值,请以官方价格页为准,或切换到「自定义价格」精确填写。

参考:DeepSeek API Pricing · 调价公告 · V4 Pro 价格报道

📦 安装

支持 Windows / macOS / Linux。需要先安装 gitnode(≥18)与 pnpm

# 1. 克隆并进入插件目录
git clone https://github.com/ZhaYi-Miao/dsh-survival-cost.git
cd dsh-survival-cost

# 2. 一键安装(安装到默认 web profile)
node scripts/install.js
# 或指定 profile
node scripts/install.js --profile web --force

安装器自动完成:

  1. $DSH_HOME/profiles/<profile>/package.json 添加 dsh-survival-costlink: 本地依赖;
  2. 运行 pnpm install 把包链接进 profile 的 node_modulesnodeLinker: hoisted);
  3. $DSH_HOME/profiles/<profile>/cordis.patch.yml 幂等写入组合行:
- insert:
    - id: survival-cost
      name: dsh-survival-cost

完成后 重启 dsh,刷新浏览器页面即可看到侧边栏与消息下方的统计;桌宠气泡需要已开启 dsh-pet 桌宠并保持可见。

⚠️ 不要手动把包装进 $DSH_HOME/profiles/node_modules/ —— 那是 dsh 自身的扁平依赖 fallback,dsh 每次启动都会重写它,写在里面的包会被覆盖丢失。

🗑️ 卸载

# 从 profile package.json 移除 link 依赖
node scripts/install.js --help   # (本脚本无卸载命令)

手动步骤:

  1. 删除 $DSH_HOME/profiles/<profile>/node_modules/dsh-survival-cost
  2. $DSH_HOME/profiles/<profile>/cordis.patch.yml 移除 survival-cost 组合行;
  3. $DSH_HOME/profiles/<profile>/package.json 移除 dsh-survival-cost 依赖;
  4. 重启 dsh。

(也可以保留组合行,在 Harness 设置的插件清单里禁用本插件。)

🧠 数据来源

  • Host 半lib/index.js)监听 session/event,按回合(turn)累计 assistant/message 的用量,在 turn/end(completed)时结算写入,提供两个路由:
    • /survival-cost/session:该会话 tokenUsage 投影(由 host 的 @deepseek-ai/dsh-token-meter 提供,为 provider 上报的真实用量)+ 最近模型 → 驱动侧边栏;
    • /survival-cost/last-turn:最近一轮完成消息的 seq / usage / model → 驱动桌宠气泡。
  • Client 半lib/client.js)从会话快照 ConversationSnapshot.nodesmessageId 取每条助手消息的 usageprovenance.model 逐条计价;桌宠气泡轮询 /survival-cost/last-turn 检测新回合,通过 getBoundingClientRect 锚定鲸鱼娘位置。
  • 价格配置保存在浏览器 localStorage(键 dsh.survivalCost.v1)。

🧩 结构

survival/
├── lib/
│   ├── index.js      # Host 半:会话 token 聚合 + 两个 HTTP 路由
│   └── client.js     # Client 半:侧边栏、每段小字、桌宠气泡、设置页
├── scripts/
│   └── install.js    # 一键安装器
├── package.json      # dsh.client 声明 + pnpm 元数据
└── README.md

💻 开发

npm run check          # 语法检查各 JS 文件
npm run install:local  # 从本地目录安装(--force)

📄 许可

MIT