bowenliang123/dsh-context
bowenliang123/dsh-contextDSH 上下文洞察面板:Context 仪表盘 + /context命令 + Context 浏览器,查看 Context的分类组成、内容详情、演进趋势、压缩/注入事件、统计等一站式 Context 全生命周期管理。
在 DSH Web 界面追踪 DeepSeek Token 用量、单次与会话费用及账户余额,并显示缓存感知的扣费动画。
English | 简体中文
dsh-damage-pulse 是为 DSH(DeepSeek Harness)打造的 DeepSeek 用量、消费与余额监控插件。它按照官方计费规则记录每次调用,通过单次、会话和全局三个层级呈现 Token 与费用,并用鲸鱼娘的动态反馈把抽象的模型消耗变成一眼就能看懂的变化。
Fastai 模型赞助商免费不意味着开发没有成本。感谢Fastai的赞助,让我能把功能留给所有用户,把广告留在应用之外。
如果你正在寻找稳定、实惠的 AI 模型中转服务,可以试试 Fastai,Fastai 提供 DeepSeek、GLM、kimi、GPT、Claude、grok 等模型厂商的旗舰模型,同时还提供 image2.5、Seedance 2.0 等最先进的图片和视频生成模型。国模分组采用大厂自部署模型,低延迟高缓存,注册即送 3$ 体验金,欢迎试用。目前 GPT 分组不能完全保证不降智,推荐使用其它分组。 本项目全程使用 Fastai 提供的 GPT、DeepSeek 等模型开发,你的每一笔充值都会使我获得返利和更多 token 来继续维护和开发新功能。
能力 · 你能看到什么 精准计费 · 按 provider、model、缓存类型和北京时间峰谷价格计算每次真实费用 三层用量展示 · 对话内单次明细、输入区会话累计、全局账户余额悬浮卡 历史统计 · 今日、近 7 天、近 30 天和全部历史的消费、请求与 Token 概览 余额与峰谷监控 · 官方余额定时校准、实时扣减、充值恢复及峰谷状态提示 额度窗口 · GLM Coding Plan 等额度型供应商的 5 小时 / 每周剩余额度,随余额卡显示 鲸鱼娘动态反馈 · 待机、眨眼、扣费受击、缓存未命中、余额耗尽与充值复活 主动提醒 · 每日预算、峰谷切换、缓存命中异常和鲸鱼娘通知气泡 微信通知 · 在详细设置中登录、管理 ClawBot,并接收少女风业务提醒 模块化管理 · 查看五个功能模块的安装状态、按需卸载或整体卸载,并在插件内检查与安装更新 可编辑计费规则 · 按 provider/model 编辑固定价或峰谷价、阶梯与倍率,并可编写第三方供应商余额查询脚本 详细用量窗口 · 可拖动缩放的明细窗口:时间/供应商/模型/项目/对话筛选、列设置、费用构成与分页 节假日峰谷 · 法定节假日与调休上班的周末整日按空闲时段(谷价)计算 安全更新 · 检查 GitHub Release,验证版本、来源与 SHA-256 后再安装
deepseek-flash(V4.1 Flash)、deepseek-v4-flash 和 deepseek-v4-flash-vision-exp 共用 Flash 新价。每百万 tokens:空闲时段缓存命中输入 ¥0.02、未命中输入 ¥1、输出 ¥4;高峰时段分别为 ¥0.04、¥2、¥8。deepseek-v4-pro 按 Flash 价格计费的调整:V4 Pro 继续按原 Pro 价格计费;空闲时段缓存命中输入 ¥0.15、未命中输入 ¥4.5、输出 ¥13.5,高峰时段分别为 ¥0.3、¥9、¥27。如有变动按官网通知另行更新。sessionId + sourceEventSeq 保证事件幂等,避免重放导致重复扣费。198.18.0.0/15 时,插件照常查询余额,并在核对该地址的 TLS 证书身份后才发送密钥。代理通过 IPv6 或 IPv4-mapped 形式返回的 Fake-IP 答复暂不支持,表现与查询失败相同——卡片回到无余额显示,不出现错误码或错误文案。
插件把能力拆成五个可以单独卸载的功能模块:桌宠功能区(鲸鱼娘动画、拖动与桌宠资源)、数据概览功能区(数据概览、用量明细与历史查询)、通知功能区(预算、异常、峰谷提醒与桌宠气泡)、计费规则功能区(官方/第三方计费规则、余额查询与扣费动画)、微信通知渠道(微信登录、连接、测试消息与投递)。
.tgz,重启当前 profile;新包的全部文件通过校验后恢复。缺失或损坏的包不会自动恢复,启动日志会提示重新安装。计费规则面板把「每条 provider/model 怎么算钱」做成可编辑的表单:官方内置价格表之外,第三方中转商也能按自己的价目表计费。
windows 数组(label + used/remaining/percent + total,resetAt 支持 epoch 毫秒或 ISO 字符串,最多 8 项),悬浮卡会逐窗口显示「剩余/共」,额度型供应商(currency 不是三位货币代码,如默认 credits)只显示窗口、不再显示余额数字;有 windows 时 currency 与 totalBalance 可省略,默认 credits 与首个窗口的剩余量。脚本也可以返回可选的 display 字符串(去除首尾空白后最多 48 个字符),存在时悬浮卡用它整段替代「货币符号 + 金额」,适合百分比或组合额度等非货币形态。清空脚本并保存即删除该供应商的自定义脚本:已知网关(DeepSeek、fastaitoken、GLM Coding Plan)会自动回落到内置适配器,其余供应商进入「未配置」状态;DELETE /api/token-monitor/balance-script?provider=&expectedRevision= 提供同等的删除入口。计费规则窗口和用量明细窗口一样支持拖动、八向缩放、最大化与位置记忆;点窗口外的空白处不会关闭,方便一边看对话一边改价格。
悬浮卡右键菜单里的「用量明细」会打开一个可以拖动、缩放、最大化的独立窗口。窗口位置与尺寸会被记住,也不会挡住后面的对话操作。
列设置 按供应商查看
鲸鱼娘是趴在余额悬浮卡上的桌面伙伴。她会用待机和眨眼动作陪你等待,并根据普通扣费、缓存未命中、连续消费、余额耗尽与充值恢复呈现不同反馈。扣费金额按事件顺序排队飘字,不同费用类型使用不同颜色与反馈强度;普通扣费保持轻量,不会频繁弹出气泡打扰工作。
鲸鱼娘与扣血反馈共用后台配置 animationScale,默认 0.8(卡片宽度的 80%),允许 0.5–1 的数字。卡片宽度变化时两者同比缩放,角色保持原宽高比;此项没有新增前端设置控件。旧配置未写此字段时使用 80%,已明确写入的自定义值会保留。
可直接请模型:“将 dsh-damage-pulse 的全局 animationScale 改为 0.65,保留其他设置,并验证保存后读回。”模型应通过当前桌面应用已认证的 GET /api/token-monitor/settings 读取 revision,再向同一路径发送 PATCH,正文为 {"expectedRevision":读取到的revision,"patch":{"animationScale":0.65}};不要添加 provider 参数,比例属于全局设置。接口沿用宿主鉴权与 profile 配置持久化,保存后应再 GET 核对;409 冲突时重新读取后重试。切回应用会触发刷新,应用活动时最迟约 5 秒生效,重启后保留。恢复默认使用同一路径将值设回 0.8。无法访问认证接口时,模型应先核对宿主当前配置入口,不猜测 profile 路径或覆盖整份配置。
等待任务时:啃手指待机 缓存未命中时:严重扣费反应
dsh-damage-pulse 标准项目名;Star 邀请只出现在测试消息中。插件提供蓝粉双色的响应式详细设置面板,集中展示今日消费与历史统计,并可配置鲸鱼娘、每日预算、峰谷提醒、缓存异常、气泡和微信通知。设置更新使用 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.9:新增内置的 GLM Coding Plan 额度窗口(5 小时 / 每周积分)、自定义余额脚本的 display 文本,以及额度型供应商只显示滚动窗口的卡片布局;余额脚本删除后自动回落到内置适配器;插件版本改为以 package.json 为单一来源。4.2.8 的余额查询连接错误修复、4.2.7 的 DeepSeek Harness 0.2.1-rc.2 精确兼容适配与 4.2.5 的 TUN / Fake-IP 快退避修复继续保留。
4.2.4 修复余额卡右键菜单继承卡片悬停说明、菜单标记不统一的问题;拖动后的卡片使用窗口内相对位置记忆,窗口和卡片尺寸变化后继续保持位置;修复整体卸载后完整重装仍被旧卸载记录阻止恢复的问题。新增子会话用量聚合与显示修复,移除卡片悬停说明,鲸鱼娘动画默认缩放为 80%(保留已有自定义值)。右键菜单不新增恢复默认位置入口。
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-pulse4.2.9 通过 GitHub Release 提供预编译 tgz。 npm 包名 dsh-damage-pulse 安装的是 registry 上的最新版本:如果本版本已同步到 npm,用包名即可;如果 registry 尚未更新到 4.2.9,请使用下面的 GitHub Release 预编译 tgz,或通过插件内的 GitHub 更新入口升级。
需要锁定具体版本时改用 GitHub Release 的预编译 tgz。先分清四种「地址」: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.9/dsh-damage-pulse-4.2.9.tgz
# 桌面端:
dsh plugin --profile desktop add https://github.com/wssfk12138/dsh-damage-pulse/releases/download/v4.2.9/dsh-damage-pulse-4.2.9.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.2 后,亮色模式的右键菜单仍是浅色底、文字发白,可能是旧版更新器只更新了模块,而桌面仍读取旧前端文件。4.2.3 会在启动时校验并同步桌面实际加载的前端入口。
正常升级无需删除配置、清空账本或重新安装,之前主动卸载的模块也不会自动恢复。若安装或启动仍报错,请保留错误内容和当前版本,便于排查。
本次已在 DeepSeek Harness 0.2.0-rc.2 桌面版验证:4.2.1 通过内置更新升级、模块为 4.2.2 但界面仍旧的安装升级,以及 4.2.3 tgz 全新安装;完整重启后无需手动刷新。4.2.6 另在 0.2.1-rc.1 桌面版以实际 tgz 验证加载、合成非零余额与用量、设置保存及完整重启保持、明细和窄窗口;4.2.7 在 0.2.1-rc.2 桌面版复验同一条路径。4.2.8 在 0.2.1-rc.2 桌面版以注入连接错误复验:同一注入下 4.2.7 复现宿主致命退出,4.2.8 宿主保持运行并回到原有短退避;正常合成链路仍返回非零余额。其他宿主版本未逐一实机验证。4.2.9 在 0.2.1-rc.2 桌面版以实际 tgz 复验宿主加载、余额、菜单、用量明细与额度窗口布局;额度窗口使用合成响应,未请求真实 GLM 接口。
4.2.1–4.2.6 已在 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 都未提供。标准包只在宿主声明后追加注册,会话行在时间前显示金额;未声明时保持等待,不注册也不报错。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 后重建该包。