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 / 2 | 0.025 / 3 / 6 |
| 涨价后 · 高峰 | 0.09 / 4.5 / 9 | 0.1125 / 13.5 / 27 |
| 涨价后 · 空闲 | 0.045 / 2.25 / 4.5 | 0.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。需要先安装
git、node(≥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
安装器自动完成:
- 在
$DSH_HOME/profiles/<profile>/package.json添加dsh-survival-cost的link:本地依赖; - 运行
pnpm install把包链接进 profile 的node_modules(nodeLinker: hoisted); - 向
$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 # (本脚本无卸载命令)
手动步骤:
- 删除
$DSH_HOME/profiles/<profile>/node_modules/dsh-survival-cost; - 从
$DSH_HOME/profiles/<profile>/cordis.patch.yml移除survival-cost组合行; - 从
$DSH_HOME/profiles/<profile>/package.json移除dsh-survival-cost依赖; - 重启 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.nodes按messageId取每条助手消息的usage与provenance.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)