Passer au contenu principal
W

dsh-damage-pulse

wssfk12138/dsh-damage-pulse

Suit l'utilisation des jetons DeepSeek, les coûts par appel et par session, ainsi que le solde du compte avec des animations de facturation tenant compte du cache dans l'interface web DSH.

Installer

dsh plugin --profile web add github:wssfk12138/dsh-damage-pulse

README

dsh-damage-pulse

dsh-damage-pulse 实时用量、鲸鱼娘、提醒规则、微信通知与安全更新功能总览

LINUX DO 社区认可 Fastai 模型赞助商 微信 · 赞助本项目

dsh-damage-pulse 是为 DSH(DeepSeek Harness)打造的 DeepSeek 用量、消费与余额监控插件。它按照官方计费规则记录每次调用,通过单次、会话和全局三个层级呈现 Token 与费用,并用鲸鱼娘的动态反馈把抽象的模型消耗变成一眼就能看懂的变化。

FastAI 官方图标 Fastai 模型赞助商
免费不意味着开发没有成本。感谢Fastai的赞助,让我能把功能留给所有用户,把广告留在应用之外。

如果你正在寻找稳定、实惠的 AI 模型中转服务,可以试试 Fastai,Fastai 提供 DeepSeek、GLM、kimi、GPT、Claude、grok 等模型厂商的旗舰模型,同时还提供 image2.5、Seedance 2.0 等最先进的图片和视频生成模型。国模分组采用大厂自部署模型,低延迟高缓存,注册即送 3$ 体验金,欢迎试用。目前 GPT 分组不能完全保证不降智,推荐使用其它分组。 本项目全程使用 Fastai 提供的 GPT、DeepSeek 等模型开发,你的每一笔充值都会使我获得返利和更多 token 来继续维护和开发新功能。 Fastai 点击注册

功能总览

能力你能看到什么
精准计费按 provider、model、缓存类型和北京时间峰谷价格计算每次真实费用
三层用量展示对话内单次明细、输入区会话累计、全局账户余额悬浮卡
历史统计今日、近 7 天、近 30 天和全部历史的消费、请求与 Token 概览
余额与峰谷监控官方余额定时校准、实时扣减、充值恢复及峰谷状态提示
鲸鱼娘动态反馈待机、眨眼、扣费受击、缓存未命中、余额耗尽与充值复活
主动提醒每日预算、峰谷切换、缓存命中异常和鲸鱼娘通知气泡
微信通知在详细设置中登录、管理 ClawBot,并接收少女风业务提醒
模块化管理查看五个功能模块的安装状态、按需卸载或整体卸载,并在插件内检查与安装更新
可编辑计费规则按 provider/model 编辑固定价或峰谷价、阶梯与倍率,并可编写第三方供应商余额查询脚本
详细用量窗口可拖动缩放的明细窗口:时间/供应商/模型/项目/对话筛选、列设置、费用构成与分页
节假日峰谷法定节假日与调休上班的周末整日按空闲时段(谷价)计算
安全更新检查 GitHub Release,验证版本、来源与 SHA-256 后再安装

2026 年 9 月官方计价更新

  • 北京时间 9 月 10 日 12:00 起,deepseek-flash(V4.1 Flash)、deepseek-v4-flash 和 deepseek-v4-flash-vision-exp 共用 Flash 新价。每百万 tokens:空闲时段缓存命中输入 ¥0.02、未命中输入 ¥1、输出 ¥4;高峰时段分别为 ¥0.04、¥2、¥8。
  • 高峰为北京时间工作日 09:00–12:00、14:00–18:00,周末全天空闲。
  • 官方已取消原定北京时间 9 月 14 日 12:00 起 deepseek-v4-pro 按 Flash 价格计费的调整:V4 Pro 继续按原 Pro 价格计费;空闲时段缓存命中输入 ¥0.15、未命中输入 ¥4.5、输出 ¥13.5,高峰时段分别为 ¥0.3、¥9、¥27。如有变动按官网通知另行更新。
  • 会话金额缓存升级后会按可用事件重算;不会重写已持久化的 usage 账本。官方内置价格表按生效时间分段计价:北京时间 8 月 17 日 00:00 之前按旧统一价,8 月 17 日 00:00 至 9 月 10 日 12:00 按旧峰谷价,之后按现行价格。显式自定义价格表整体优先于默认表、不做历史分段;更新价格规则后需重启插件宿主加载。
  • 北京时间 9 月 25 日起,法定节假日整日按空闲时段(谷价)计价:节假日当天不再有 09:00–12:00、14:00–18:00 的高峰价。周末同样整日按空闲时段计价,且不区分是否调休上班——因节假日调休而需要上班的周六、周日也全天按谷价,不进入工作日高峰时段。该口径对 DeepSeek 模型统一生效:官方内置价格表与第三方自定义规则使用同一套峰谷判定。
  • 价格依据:DeepSeek 官方模型与价格。

精准计费与持久账本

  • 同时依据 provider 与 model 判断计费资格,未知或不合格模型不会套用默认价格。
  • 分别统计未缓存输入、缓存读取、缓存写入和输出,并按调用发生时的北京时间选择峰价或谷价。
  • 视觉模型直接使用 DeepSeek 返回的 usage 数据,不对图片 Token 重复估算。
  • 合格调用写入本地持久账本;重启后可恢复历史统计和会话摘要,零成本记录不会污染账本。
  • 使用 sessionId + sourceEventSeq 保证事件幂等,避免重放导致重复扣费。

三层用量与历史统计

  • 单次用量行:每次模型调用结束,在对话流中显示输入、缓存、输出、思考 Token 和精确金额。
  • 会话累计条:输入区持续显示当前会话累计 Token 与费用。
  • 全局悬浮卡:跨会话持续显示 DeepSeek 账户余额;今日消费与历史范围统计集中在详细设置概览中。
  • 统计概览:支持今日、近 7 天、近 30 天和全部时间,汇总消费金额、请求数、Token 总数、缓存命中 Token、缓存命中率和活跃天数。
  • 中文大数单位:概览按“万、千万、亿、万亿”逐级显示,千万级数字不再折算成两位数的“百万”;舍入跨越边界时会自动提升单位。

余额、峰谷与悬浮交互

  • 查询 DeepSeek 官方余额并每 60 秒校准;扣费事件到达时先逐笔更新显示余额,充值后以绿色反馈恢复金额。
  • 余额查询失败或缺少 API Key 时显示明确状态;本地账本统计的今日消费不依赖余额接口成功。
  • 峰谷标识每 30 秒刷新,峰时使用红色、谷时使用绿色提示。
  • 悬浮卡支持鼠标拖动、键盘移动、视口边界限制和位置记忆;右键可隐藏鲸鱼娘或打开详细设置。
  • 右键菜单提供「显示鲸鱼娘」「显示用量概览」「用量明细」「通知设置」「计费规则」和「卸载与更新」六个入口。

没有余额接口时的悬浮卡:只显示本次调用的 Token 与首字/总耗时    带余额的悬浮卡:账户余额、Token 与首字/总耗时

悬浮卡右键菜单:显示鲸鱼娘、显示用量概览、用量明细、通知设置、计费规则与卸载更新

模块化管理

插件把能力拆成五个可以单独卸载的功能模块:桌宠功能区(鲸鱼娘动画、拖动与桌宠资源)、数据概览功能区(数据概览、用量明细与历史查询)、通知功能区(预算、异常、峰谷提醒与桌宠气泡)、计费规则功能区(官方/第三方计费规则、余额查询与扣费动画)、微信通知渠道(微信登录、连接、测试消息与投递)。

  • 在「卸载与更新」面板可以看到当前插件版本、每个模块的安装状态,单独卸载某个模块,或者一次性卸载整个插件。
  • 已卸载的模块会记住状态并禁止自动重装;卸载只移除该模块的代码载荷,不会删除用量账本、设置与历史数据。
  • 「检查更新」读取项目主页的 GitHub Release,比较版本后提供「安装更新」;安装前会校验版本、资产名称、下载来源与 SHA-256,只有识别到可安装的 profile 时才执行安装。
  • 用量采集属于常驻基础能力:卸载整个插件时会一并停止采集,重新安装后恢复。

dsh-damage-pulse 卸载与更新面板:当前插件版本、检查更新、安装更新与五个功能模块的卸载入口

可视化计费规则

计费规则面板把「每条 provider/model 怎么算钱」做成可编辑的表单:官方内置价格表之外,第三方中转商也能按自己的价目表计费。

  • 固定价或峰谷价:每个模型可以选择「固定」或「峰谷」;峰谷模式下自行增删高峰时段,按「时:分」选择开始与结束时间并勾选周几,其余时间为谷价。
  • 法定节假日与调休周末:2026 年 9 月 25 日起,法定节假日整日按空闲时段(谷价)计价;因节假日调休而上班的周六、周日同样整日按空闲时段(谷价)计价,不会因为当天上班而进入高峰时段。只要模型属于 DeepSeek,官方价格表与第三方自定义规则使用同一套峰谷判定。
  • 阶梯与倍率:按最大上下文 Token 配置阶梯单价,倍率用于中转商的加价系数。
  • 模板与来源:可选择官方模板预览对比后一键应用;面板显示规则来源、版本与「已自动保存」状态,模型与供应商都可以单独启停。
  • 供应商余额查询脚本:为第三方供应商写一小段 JavaScript 描述余额接口(请求路径、方法、鉴权方式,以及如何处理返回的 JSON),在沙箱里校验通过后,悬浮卡即可显示该供应商的余额。

计费规则面板:按 provider/model 配置倍率、固定价或峰谷价与高峰时段

供应商余额查询脚本编辑器:用 JavaScript 描述余额接口与解析方式,并提示校验通过

计费规则窗口和用量明细窗口一样支持拖动、八向缩放、最大化与位置记忆;点窗口外的空白处不会关闭,方便一边看对话一边改价格。

详细用量窗口

悬浮卡右键菜单里的「用量明细」会打开一个可以拖动、缩放、最大化的独立窗口。窗口位置与尺寸会被记住,也不会挡住后面的对话操作。

  • 数据概览:消费、请求数、Token 总数、活跃天数、缓存命中 Token、缓存命中率、每亿 Token 费用、活跃日均消费八项指标,可切换时间范围并按供应商筛选。
  • 明细表:模型、对话、Provider、项目、Token(未缓存输入 / 输出 / 缓存命中)、推理 Token、推理强度、本地费用、延迟(首字与总耗时)与记录时间,峰谷标记直接写在时间列。
  • 筛选与分页:开始/结束时间、模型、项目、对话,以及「错误请求」页的错误类型与是否包含已取消请求;每页 20/50/100 条。
  • 列设置:自己勾选要显示的列,或者一键恢复默认列。下拉卡片贴着按钮显示、不会遮住入口,点窗口里任意空白处即可收起。
  • 费用构成:点费用旁的 ⓘ 展开未缓存输入、缓存命中、缓存写入、输出四项费用与 Token 数、对应单价、实际计价模式、命中阶梯上限、倍率与规则标识。

详细用量窗口:数据概览、筛选条件与用量明细表

用量明细的列设置下拉卡片
列设置
数据概览按供应商筛选
按供应商查看

单次费用构成:四项费用与 Token 数、单价、计价模式、阶梯上限与倍率

鲸鱼娘

鲸鱼娘是趴在余额悬浮卡上的桌面伙伴。她会用待机和眨眼动作陪你等待,并根据普通扣费、缓存未命中、连续消费、余额耗尽与充值恢复呈现不同反馈。扣费金额按事件顺序排队飘字,不同费用类型使用不同颜色与反馈强度;普通扣费保持轻量,不会频繁弹出气泡打扰工作。

鲸鱼娘啃手指待机原画
等待任务时:啃手指待机
鲸鱼娘严重扣费原画
缓存未命中时:严重扣费反应

提醒与微信通知

  • 每日预算:设置当日预算金额,首次越过预算线时提醒;提醒不会阻止、取消或限流模型请求。
  • 峰谷切换:进入峰时和进入谷时可分别启用提醒,同一价格边界不会重复通知。
  • 缓存异常:可设置缓存命中率阈值与连续异常次数,恢复后再次异常仍可重新提醒。
  • 鲸鱼娘气泡:只承载预算越线、峰谷切换和缓存异常等需要关注的事件,可独立关闭。
  • ClawBot 微信通知:在详细设置中查看连接、认证与投递状态,完成二维码登录、刷新、重连、安全断开和测试消息发送。
  • 少女风文案:通道测试、预算越线、进入峰时、进入谷时和缓存异常均使用 dsh-damage-pulse 标准项目名;Star 邀请只出现在测试消息中。
  • 所有业务通知开关默认关闭;旧配置从 v0、v1、v2、v3 迁移且缺少通知字段时,也会保守补为关闭。发送测试消息是独立的通道验证,不受业务微信通知总开关限制。

通知设置面板:左侧提醒规则(每日预算、峰谷提醒、缓存命中异常),右侧通知渠道(鲸鱼娘气泡、微信通知与登录状态)

dsh-damage-pulse 通过 ClawBot 发送的微信通知实机截图

详细设置与安全更新

插件提供蓝粉双色的响应式详细设置面板,集中展示今日消费与历史统计,并可配置鲸鱼娘、每日预算、峰谷提醒、缓存异常、气泡和微信通知。设置更新使用 revision 防止多个页面互相覆盖,并兼容旧字段迁移。

更新面板可以打开项目主页、检查最新 Release、比较版本并下载安装包。安装前会校验 Release/tag 版本、资产名称、下载来源、重定向域名和 SHA-256,且只有识别到可安装 profile 时才执行安装。

架构

项目公开品牌为 dsh-damage-pulse。为兼容已安装用户,下列目录名、包名、API 路径、设置命名空间和本地存储键仍沿用 dsh-token-monitor / token-monitor,无需迁移已有配置与历史数据。

部分位置职责
Host 插件plugins/dsh-token-monitor计费资格、价格计算、持久账本、余额、统计、预算/峰谷/缓存提醒、微信与更新 API
Client 包packages/client/ui-token-monitor单次用量、会话累计、余额悬浮卡、鲸鱼娘动画、通知气泡和详细设置
微信能力plugins/wechat-notify / ClawBot连接状态、登录管理与消息投递;不可用时不会阻塞计费和余额监控

安装

本仓库从 0.2.0 起提供标准 DSH Host + Client 组合包和预编译产物。当前版本为 4.2.3,修复通过插件内置更新升级后,版本号已更新、桌面却仍加载旧界面的问题;升级后完整退出桌面程序再启动,即可加载新的右键菜单与前端修复。设置、用量账本和已卸载模块状态保留。

4.2.2 修复晚到用量记录导致已完成回复无法分支的问题,并统一实际计费、工具查询与计费规则界面的规则来源;继承官方价格的账号条目会明确显示共享规则及编辑入口,已有独立账号规则保持优先。亮色主题下的右键菜单使用深色底与高对比度文字,桌面更新入口也已修正。GitHub Release 与 npm 使用同一份预编译包。4.2.1 包含设置兼容、模块卸载与桌面资源加载修复。4.2.0 让 DeepSeek 账号路由(deepseek-account)与官方 API key 路由共用同一套官方计价与资格判定:账号路由下的调用不再落成「未计价」,悬浮卡片的用量概览与用量明细不再显示「未记录」,计费规则面板不再预置账号独立条目:默认快照只保存官方条目,账号路由按规则继承共用官方计价(已保存的旧快照只有官方条目时同样按官方规则回退计价,客户端扣费门禁同口径回退,账号路由的扣费事件不再被丢弃,飘字与鲸鱼娘受击动画恢复);显式保存的账号条目整体优先,某个模型在账号条目里缺失时保持缺规则,不会逐模型混合继承官方价格;同一版按当日决定隐藏设置页的「已停止写入会话日志」提示,并把 ipaddr.js 移入运行时依赖。4.1.3 修掉本插件写入的会话用量记录会让历史对话打不开的问题:宿主读取端只接受「不在已知类型表内但带 ignorable 标记」的事件,而 0.1.7 早期构建的 Session.append 不会把该标记落盘,没有标记的未知事件会让整份会话日志被拒绝解释。现在插件先探测宿主实现是否转发 ignorable 再写入,并在任何一次写入后发现标记丢失时永久停写(会话金额退回本地账本与兜底路由),设置页会给出对应提示。4.1.2 把安装入口收敛到 npm 发布包:README 过去推荐的 github: 源地址装法拿不到只在打包阶段生成的 runtime/ 预编译产物,插件加载时会直接失败(加载器现已补上前置检查,payload 缺失时点名修复方式,而不是抛出无法定位的 ENOENT)。4.1.1 修复 DSH 0.1.7 把会话节点注册表改名为 uiConversation.events 之后、对话流内「单次用量行」不再注册的问题(旧宿主继续走顶层 conversationEvents,两代行为一致)。4.1.0 把插件拆成五个可独立卸载的功能模块(模块管理器内置检查更新与 SHA-256 校验安装),加入可视化计费规则编辑器(含第三方供应商余额查询脚本)、可拖动缩放的用量明细与计费规则窗口,并把法定节假日并入 DeepSeek 峰谷计价的空闲时段(官方 2026-09-25 生效);宿主兼容范围保留 0.1.0-rc.5 之后的全部旧版,并扩展到 DSH 0.1.7-rc.2。

4.0.11 同时支持旧版宿主的 SessionListState.current 与 DSH 0.1.6-alpha.2 的 retainedBy.mainView 主会话标记,避免新版宿主无法定位当前会话并错误隐藏余额卡;公开包的 DSH peer 范围同步扩展到 0.1.6,旧版范围完整保留。4.0.10 修复余额数字可能长时间不更新的问题:卡片显示值过去按「接口快照 + 尚未发射的扣费」合成,飘字发射链一旦抛错停摆,60 秒校准就会把余额的下降原样加回,数字被钉死在某个看似合理的值上且无任何可见报错;扣费游标改为在视觉处理之前推进,避免视觉失败让客户端每秒重放整本账并重复扣减;发射链加入自愈(单条发射失败不再杀死队列、队列非空即可续跑、清理时复位定时器引用),余额校准改为先落快照再做充值动画。4.0.9 跟随官网 2026 年 9 月的计价说明修正 V4 Pro 计价:官方已取消原定 9 月 14 日 12:00 起按 Flash 价格计费的调整,deepseek-v4-pro 继续按 Pro 原价计费,不再在边界时刻切换价格表。4.0.9 同时修复三处历史缺陷(内置价格表的历史分段因对象身份判定而从未生效、余额卡片与鲸鱼娘被右侧栏浮动面板遮挡、无事件序号的历史账本行重复计入),并把鲸鱼娘开关写入失败从静默改为提示;4.0.8 修复 DSH 0.1.5-alpha.2(官方 0.1.5 线)下的两项失效:Host 半兼容 0.1.5 的 SessionHandleReadResult({ eventState, events } 包裹结果),会话历史金额投影不再整体迁移失败;Client 半改用官方席位 conversation.session.header.actions。4.0.3 明确兼容 DSH Desktop 2.0.4(DSH 0.1.2-alpha.1),并继续支持 0.1.0-rc.5 之后的旧版兼容宿主(含 0.1.0-rc.6/rc.7/rc.8 与 0.1.1-rc.2)。无需复制源码、修改 DSH tsconfig、手动传入 --patch 或重建 Client bundle。

Desktop 2.0.4 不再提供旧的 @deepseek-ai/dsh-client-runtime 模块;4.0.3 已将该包从产品 peer 与 Client 注入图中移除,仅在开发环境保留旧宿主回归测试。

旧版或社区自行打包的 DSH 客户端应在其现有项目中沿用宿主自身的 lock 文件和依赖版本安装本插件。不要在一个新建的纯 npm 依赖树中把 rc.5/rc.6/rc.7 宿主包与当前 registry 的 rc.8 上游包混合钉定;这种组合会因上游 peer 版本漂移而解析失败,并不表示插件与原宿主不兼容。

# web 端:
dsh plugin --profile web add dsh-damage-pulse
# 桌面端(示例 profile 名 desktop,换成你实际使用的那个):
dsh plugin --profile desktop add dsh-damage-pulse

需要锁定具体版本时改用 GitHub Release 的预编译 tgz(4.2.3 的两通道使用同一份包)。先分清四种「地址」:npm 包名 dsh-damage-pulse、Release 里打包好的 .tgz 文件、GitHub 仓库页地址、Release 页的 Source code 压缩包——后两种是源码,不含打包阶段才生成的 runtime/,装出来无法启动:

# web 端:
dsh plugin --profile web add https://github.com/wssfk12138/dsh-damage-pulse/releases/download/v4.2.3/dsh-damage-pulse-4.2.3.tgz
# 桌面端:
dsh plugin --profile desktop add https://github.com/wssfk12138/dsh-damage-pulse/releases/download/v4.2.3/dsh-damage-pulse-4.2.3.tgz

不要用源码地址安装。runtime/ 是包内的预编译产物,只在打包阶段由 scripts/prepare-package-runtime.mjs 生成且不入库(.gitignore),所以 dsh plugin add github:wssfk12138/dsh-damage-pulse、GitHub 仓库页地址、Release 页的 Source code 压缩包,以及本地 clone 出来的源码目录,装出来的包都只有 lib/ 没有 runtime/,插件启动时会直接失败(现在的报错会点名修复方式,而不是抛出无法定位的 ENOENT),还可能被宿主侧的启动失败隔离直接停用该行。如果你确实要从源码安装,请先在源码目录完成构建与 runtime/ 生成,再挂载这个构建产物;正确构建过的源码可以正常运行,不能说源码方式绝对不可用。

在桌面版「插件」页添加本插件时同样只认包名或打包好的 tgz 文件路径:仓库地址和本地源码目录都会装出缺载荷的包,把 tgz 解压成文件夹也不等于安装。同一个版本已经装过时,页面会提示「该插件已安装。如需升级,请卸载后重新安装」,请先卸载再装——即使磁盘上那一份已经装坏,它也只按包名判断。安装后要重启对应的 profile 才生效;桌面版若在插件的「卸载与更新」里点「安装更新」失败,也用卸载后按包名重装的方式升级。除上面这些已核实的形式外,桌面版插件页是否接受其它输入形式尚未逐一验证,请以页面实际提示为准。安装完成后要在本插件的「卸载与更新」面板核对当前版本,并完整退出桌面程序再启动。通过内置更新升级时,宿主插件列表可能仍显示最初安装包的版本;也不要仅凭版本数字认定新界面已经加载,4.2.3 的恢复检查见下文。

出错时还要留意第二种表现:如果宿主装了「启动失败隔离」类插件(例如第三方插件控制台),它可能把这条 loader 报错自动写进 profile 的 cordis.patch.yml:

- id: dsh-token-monitor
  disabled: true

这种情况下插件只是从「启动时报错」变成「界面上不出现」,很容易被误判成没装上。改用包含 runtime 的正式预编译包安装后,记得删掉这段(或在插件管理界面点启用),否则装好了也不会挂载。

安装后重启实际安装的那个 profile。web 端:

dsh --profile web

桌面端在界面里重启,或运行(把 desktop 换成你实际的 profile 名):

dsh --profile desktop

标准包提供余额悬浮栏、余额实时扣减、缓存命中/未命中动画、单次用量行和输入区会话累计。升级自早期源码集成版时,请移除原有手工 --patch 或重复挂载项,避免同一插件加载两次。

4.2.3:内置更新后仍显示旧菜单

如果通过插件内的「安装更新」升到 4.2.2 后,亮色模式的右键菜单仍是浅色底、文字发白,可能是旧版更新器只更新了模块,而桌面仍读取旧前端文件。4.2.3 会在启动时校验并同步桌面实际加载的前端入口。

  1. 在余额悬浮卡上右键,打开「卸载与更新」,点击「检查更新」,安装 4.2.3 或更新版本。
  2. 等待安装成功后,完整退出 DeepSeek Harness 桌面程序,再重新打开。如果关闭窗口后程序仍留在托盘,请从托盘菜单退出;仅关闭设置面板不算重启。
  3. 重新打开「卸载与更新」,确认本插件显示 4.2.3 或更新版本;亮色主题下的右键菜单应呈现深色背景、清晰浅色文字。

正常升级无需删除配置、清空账本或重新安装,之前主动卸载的模块也不会自动恢复。若安装或启动仍报错,请保留错误内容和当前版本,便于排查。

本次已在 DeepSeek Harness 0.2.0-rc.2 桌面版验证:4.2.1 通过内置更新升级、模块为 4.2.2 但界面仍旧的安装升级,以及 4.2.3 tgz 全新安装;完整重启后无需手动刷新。其他宿主版本未逐一实机验证。

4.2.1 升级与恢复

  • 支持当前 profile 设置存储,并补齐旧版 namespace 设置的注册、更新事件与冲突处理;数字设置继续自动保存。
  • 修复桌面宿主中的图片路径、动态面板路由、旧宿主原生会话行金额兜底,以及明暗主题、窄窗口和菜单键盘操作。
  • 五个模块执行实际文件卸载;已卸载状态在重启与升级后保留。整体卸载后的清理可以在重启时重试。
  • 4.2.1 使用独立版本的完整清单和模块资产,继续校验文件大小与 SHA-256。升级时保留现有设置、usage.jsonl 账本和模块卸载状态;不要用删除账本、清除卸载标记或跳过摘要检查来解决启动问题。
  • 如需恢复已卸载模块,在“卸载与更新”中显式选择恢复;恢复只针对所选模块。请在更改版本前备份 profile 与插件数据;本版不承诺通过降级自动撤销数据迁移。

本版已在 DSH 0.2.0-rc.2 真实桌面 EXE 的隔离 profile 中验证新装、升级、设置重启保持、资源和模块生命周期;旧设置服务 0.1.0-rc.7 与 0.1.7 profile 的兼容检查另有覆盖。peer 范围不代表其中每个宿主版本都逐一实机测试。微信请求、进程生命周期和通知作用域有自动化覆盖,本轮未重新执行真实微信扫码与插件消息投递。

原生会话金额(标准包能力)

会话金额属于标准包能力,标准包开箱即可提供,无需手工改宿主源码:

  • 官方会话头席位(conversation.session.header.actions):0.1.5-alpha 与 rc.7 的会话头都声明该席位,标准包把金额徽标注册到会话标题旁的操作区;sessionId 与 useSessions 由宿主标准 props 提供,不改任何宿主文件,也无需重建 bundle。
  • 兼容宿主侧栏尾席位(sidebar.workspaces.sessionRow.trailing):该席位由本机侧边栏补丁宿主自行声明,上游 0.1.3 / 0.1.5 都未提供。标准包只在宿主声明后追加注册,会话行在时间前显示金额;未声明时保持等待,不注册也不报错。
  • 旧版 / 社区自行打包或定制客户端(既无官方会话头席位,也无侧栏尾席位):标准包内置严格 fail-closed 的兼容桥,只在能对原生会话行做唯一、无歧义匹配时显示金额;一旦检测到宿主已带正式席位标记、稳定会话标识或既有金额,立即整体停用,不会重复写入。
  • 输入区会话累计条 行为不变,上述所有客户端下都可用。

scripts/apply-sidebar-integration.ps1 保留为完整 DSH 源码部署的开发/历史兼容工具;标准包已自动显示金额时无需运行。如需在完整 DSH 源码上手工挂载,运行:

.\scripts\apply-sidebar-integration.ps1 -HarnessRoot 'C:\path\to\deepseek-harness'
$env:DSH_BUILD_FACE = 'client'
corepack pnpm --dir 'C:\path\to\deepseek-harness\packages\client\ui-workspace' exec tsdown

脚本会先备份三个目标文件,并以幂等方式读取 projectionValues.tokenCost.cost。上游结构不匹配时会停止,不会猜测写入。

宿主侧补丁(平台侧)

patches/ 收录本插件在 DSH 宿主侧需要的补丁,随 npm 包一起发布,目标版本、症状与完整应用步骤见 patches/README.md:

  • @deepseek-ai/dsh-session@0.1.7-alpha.2:让 Session.append 转发 ignorable,插件写入的用量行才能被标记为可忽略。本仓库的 patchedDependencies 会在安装时自动应用,社区重建本仓库不需要额外操作。
  • @deepseek-ai/dsh-session-format-v3-to-v4@0.1.7-rc.2:修复「会话在工具调用过程中被中断」的旧日志无法迁移的问题。缺少该补丁时,这类会话会被整份拒绝迁移并报「历史加载失败」,源日志保持不动,会话完全打不开,其金额与用量也随之缺失;官方 0.1.7-rc.2 及更早的 v3→v4 迁移都不含该修复,源码部署可按 patches/README.md 直接 git apply 后重建该包。

源码开发

corepack pnpm install
corepack pnpm build
corepack pnpm run check:bundle

配置

API Key

通过 DSH 的 credentials 机制配置 DEEPSEEK_API_KEY(~/.dsh/.credentials.yaml),只用于查询账户余额。插件加载、对话用量采集与计费都不依赖它:未配置时悬浮卡显示引导态,token 计量与账本照常记录,也不会因此判定插件「没有加载成功」。

价格表(可选覆盖)

价格表默认内置(见 src/pricing.ts),可通过 settings namespace dsh-token-monitor 的 priceTable 字段覆盖价格和工作日高峰时段。周一至周五默认按北京时间 9:00–12:00、14:00–18:00 为峰价,其余时间为谷价;周六、周日与法定节假日无论时段均按谷价,调休上班的周末同样整日按谷价。内置默认表按生效时间分段:8 月 17 日 00:00 之前按旧统一价,8 月 17 日 00:00 至 9 月 10 日 12:00 按旧峰谷价,之后按上表现行价格。传入自定义 priceTable 时视为整体覆盖,直接用于当年 8 月 17 日及之后的全部历史与新增调用;8 月 17 日之前的调用仍按官方旧统一价计费。官方依据:模型与价格、图像理解 Token 用量。

HTTP 端点

端点说明
GET /api/token-monitor/balanceDeepSeek 账户余额(含 currency / 总余额 / 赠送余额)
GET /api/token-monitor/usage?sessionId=用量明细历史(可过滤会话)
GET /api/token-monitor/usage-summary?range=今日 / 7 天 / 30 天 / 全部时间的聚合统计
GET /api/token-monitor/charge-events?since=<seq>严格递增的扣费事件流,驱动余额变化、飘字和受击动画
GET /api/token-monitor/notification-events?since=<seq>预算、峰谷和缓存异常通知流
GET/PATCH /api/token-monitor/settings带 revision 的统一设置读取与更新
GET /api/token-monitor/wechat/status查询微信连接、认证、投递和短时登录会话状态;设置页“刷新”会重新请求此端点
POST /api/token-monitor/wechat/login创建二维码登录会话
POST /api/token-monitor/wechat/login/confirm确认当前二维码登录状态
POST /api/token-monitor/wechat/reconnect重连由 DSH Host 管理的微信 bridge
POST /api/token-monitor/wechat/disconnect经显式确认后断开由 DSH Host 管理的微信 bridge
POST /api/token-monitor/wechat/test发送独立测试消息,不受业务微信通知总开关限制
GET/POST /api/token-monitor/update*Release 检查与受安全门禁保护的安装流程

微信通知兼容层

插件内置一个不注册 Cordis 工具的轻量 ClawBot 适配器,并按以下优先级选择通知 provider:宿主提供的 wechatNotify 发送服务及 wechatConnection 连接服务 → 内置适配器 → 不可用。两类能力分别选择,服务晚加载时自动复用;每次发送只会调用一个 provider;微信未登录、超时或发送失败不会阻塞余额监控、计费和鲸鱼娘动画。

如果用户已经安装独立 dsh-wechat-notify,本插件会复用它的发送能力;未安装时,只要设置 WECHAT_NOTIFY_CLAWBOT_INDEX,内置适配器即可开箱发送。该变量必须指向本机 ClawBot CLI 的入口文件,例如:

$env:WECHAT_NOTIFY_CLAWBOT_INDEX = 'C:\path\to\clawbot-cli\dist\index.js'
dsh --profile web

兼容层不迁移或删除原插件凭据,也不会重复注册 wechat_notify、扫码工具或 bridge。旧版接口若只能发送,状态面板会明确标注“发送可用,登录管理由原插件负责”。

常见问题

  • 余额卡片显示「未配置」:只说明没有可用于查询余额的 DEEPSEEK_API_KEY;插件本身已加载,token 计量与计费采集不受影响。

  • 会话金额没有显示:标准包把金额徽标注册到官方会话头席位(conversation.session.header.actions,会话标题旁的操作区);旧版 / 定制客户端由标准包内置的 fail-closed 兼容桥在能安全匹配原生侧栏会话行时显示。若仍未出现,先确认重启了目标 profile;完整源码部署可选运行开发兼容脚本,但标准包已显示金额时不要再运行,避免重复写入。输入区会话累计条始终可用。

  • 只有旧会话没有金额:插件加载前结束的旧会话需在下次启动时自动补齐(插件启动时对缺失投影的历史会话触发冷读 fold),启动后请稍等几秒再刷新页面。

  • 窗口启动后仍无动画:确认已重启安装目标 profile;若以前使用过源码集成版,先删除旧的手工 patch 和重复挂载。

  • 插件页显示已安装,但启动报 the installed payload is incomplete: runtime/manifest.json is missing:装进来的包缺 runtime/ 预编译产物。最常见的原因是源码类安装(仓库地址、github: 源、Source code 压缩包、本地源码目录,它们都跳过了打包步骤),下载或解压中断、只复制了部分文件时现象相同。先确认自己用的是哪个 profile,再用该 profile 的包名 dsh-damage-pulse 或 Release 的 .tgz 文件路径重新安装并重启;同一个版本已存在时面板会拒绝重装,必须先卸载。

  • 按包名安装却装到了旧版本:如果你的包管理器启用了「新版本等待期」(pnpm 的 minimumReleaseAge,默认让刚发布的版本等一段时间后才参与版本选择),刚发布不久的版本可能暂时选不到,于是装上了等待期之外的旧版本。这只是一条待核实的排查线索,不是已确认的根因,也不建议为此全局关闭该策略或放宽兼容限制。需要装指定版本时,改用 Release 的 .tgz 或带精确版本号的包地址;显式版本用于选定目标版本,不保证绕过包管理器的策略。

社区与反馈

欢迎在 LINUX DO 社区 交流使用体验、反馈问题和分享改进建议。插件的安装、运行和全部功能均不依赖任何中转服务或充值渠道。

社区提交经复核后会合并进主线,并在发行说明与本文件中署名。已合入:@gurio-wine(PR #17:桌面端卡片位置与鲸鱼娘开关修复,包含在 4.0.9)。

许可证

MIT

赞助商简介
免费不意味着开发没有成本。感谢Fastai的赞助,让我能把功能留给所有用户,把广告留在应用之外。

如果你正在寻找稳定、实惠的 AI 模型中转服务,可以试试 Fastai,Fastai 提供 DeepSeek、GLM、kimi、GPT、Claude、grok 等模型厂商的旗舰模型,同时还提供 image2.5、Seedance 2.0 等最先进的图片和视频生成模型。国模分组采用大厂自部署模型,低延迟高缓存,注册即送 3$ 体验金,欢迎试用。目前 GPT 分组不能完全保证不降智,推荐使用其它分组。 本项目全程使用 Fastai 提供的 GPT、DeepSeek 等模型开发,你的每一笔充值都会使我获得返利和更多 token 来继续维护和开发新功能。 下图是我的 Fastai 账户使用记录,重度使用一个月,亲测好用。

Fastai 账户使用记录

Fastai 模型调用明细

赞助本项目
使用微信扫码支付以赞助本项目的开发。

微信赞赏码

Plugins associés