DeepSeek Harness Token 余额监控插件:鲸鱼娘待机/扣费/复苏动画、峰谷计费、连续扣费飘字与会话费用统计。
64.6/100
综合分
282
GitHub 星标
2,498
npm 周下载
—/5
用户评分
数据截至 2026/11/1 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-damage-pulsenpm 源 · dsh-damage-pulse 的发布者账号已校验与本仓库一致
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · model
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 3 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包dsh-damage-pulse @ 4.3.0
✓Node 引擎要求 ^22.19.0 || >=24.0.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/29 15:34:30
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件读取剪贴板或密钥环境变量发起外部网络请求
查看扫描证据(共 94 处,展示前 63 条)
- 读取本地文件lib/index.js:65
if ((await lstat(current)).isSymbolicLink()) throw new Error("ARTIFACT_LINK_REFUSED"); - 删除本地文件lib/index.js:75
await unlink(target); - 读取本地文件lib/index.js:82
const stat = await lstat(target); - 读取本地文件lib/index.js:84
const bytes = await readFile(target); - 写入本地文件lib/index.js:89
await mkdir(dirname(file), { recursive: true }); - 写入本地文件lib/index.js:92
await writeFile(temp, JSON.stringify(value, null, 2) + "\n", { - 写入本地文件lib/index.js:96
await rename(temp, file); - 删除本地文件lib/index.js:98
await unlink(temp).catch((error) => { - 读取本地文件lib/index.js:118
if (!(await lstat(file)).isFile()) throw new Error("ARTIFACT_NOT_FILE"); - 删除本地文件lib/index.js:127
await unlink(file); - 删除本地文件lib/index.js:147
await rmdir(directory); - 写入本地文件lib/index.js:154
await mkdir(dirname(target), { recursive: true }); - 写入本地文件lib/index.js:156
await copyFile(source, temp, constants.COPYFILE_EXCL); - 写入本地文件lib/index.js:157
await rename(temp, target); - 读取本地文件lib/index.js:179
const stat = await lstat(path); - 读取本地文件lib/index.js:181
const journal = JSON.parse(await readFile(path, "utf8")); - 删除本地文件lib/index.js:553
await unlink(await confinedPath(dataDir, name)); - 删除本地文件lib/index.js:559
await unlink(await confinedPath(dataDir, name)); - 发起网络请求runtime/host/billing.mjs:1982
const raw = await this.dependencies.request(script.request, identity.baseURL, identity.apiKey, current.controller.signal); - 发起网络请求runtime/host/billing.mjs:2875
const raw = await this.dependencies.request({ - 读取本地文件runtime/host/core.mjs:777
source: readFileSync(entry, "utf8"), - 写入本地文件runtime/host/core.mjs:1140
writeFileSync(temporary, content, { - 写入本地文件runtime/host/core.mjs:1144
renameSync(temporary, file); - 删除本地文件runtime/host/core.mjs:1147
unlinkSync(temporary); - 写入本地文件runtime/host/core.mjs:1219
mkdirSync(this.dataDir, { recursive: true }); - 读取本地文件runtime/host/core.mjs:1228
const text = readFileSync(join(this.dataDir, "usage.jsonl"), "utf8"); - 写入本地文件runtime/host/core.mjs:1297
appendFileSync(join(this.dataDir, "usage.jsonl"), `${JSON.stringify(record)}\n`, "utf8"); - 写入本地文件runtime/host/core.mjs:1417
mkdirSync(dir, { recursive: true }); - 读取本地文件runtime/host/core.mjs:1418
for (const line of readFileSync(this.file, "utf8").split("\n")) try { - 写入本地文件runtime/host/core.mjs:1433
appendFileSync(this.file, JSON.stringify({ - 读取本地文件runtime/host/core.mjs:1969
text = await readFile(this.path, "utf8"); - 读取密钥环境变量runtime/host/core.mjs:8253
if (node_process.env.LOG_TOKENS) console.log("|", cst.prettyToken(source)); - 读取本地文件runtime/host/core.mjs:9122
source = await readFile(join(home, filename), "utf8"); - 读取本地文件runtime/host/manager.mjs:111
if ((await lstat(current)).isSymbolicLink()) throw new Error("ARTIFACT_LINK_REFUSED"); - 删除本地文件runtime/host/manager.mjs:121
await unlink(target); - 读取本地文件runtime/host/manager.mjs:128
const stat = await lstat(target); - 读取本地文件runtime/host/manager.mjs:130
const bytes = await readFile(target); - 写入本地文件runtime/host/manager.mjs:135
await mkdir(dirname(file), { recursive: true }); - 写入本地文件runtime/host/manager.mjs:138
await writeFile(temp, JSON.stringify(value, null, 2) + "\n", { - 写入本地文件runtime/host/manager.mjs:142
await rename(temp, file); - 删除本地文件runtime/host/manager.mjs:144
await unlink(temp).catch((error) => { - 读取本地文件runtime/host/manager.mjs:165
if (!(await lstat(file)).isFile()) throw new Error("ARTIFACT_NOT_FILE"); - 删除本地文件runtime/host/manager.mjs:174
await unlink(file); - 删除本地文件runtime/host/manager.mjs:194
await rmdir(directory); - 写入本地文件runtime/host/manager.mjs:201
await mkdir(dirname(target), { recursive: true }); - 写入本地文件runtime/host/manager.mjs:203
await copyFile(source, temp, constants.COPYFILE_EXCL); - 写入本地文件runtime/host/manager.mjs:204
await rename(temp, target); - 读取本地文件runtime/host/manager.mjs:226
const stat = await lstat(path); - 读取本地文件runtime/host/manager.mjs:228
const journal = JSON.parse(await readFile(path, "utf8")); - 删除本地文件runtime/host/manager.mjs:1093
await unlink(temporary).catch((error) => { - 读取本地文件runtime/host/wechat.mjs:280
access(this.options.clawbotIndex), - 读取本地文件runtime/host/wechat.mjs:281
access(join(dirname(this.options.clawbotIndex), "ilink", "auth.js")), - 读取本地文件runtime/host/wechat.mjs:282
access(join(dirname(this.options.clawbotIndex), "config.js")) - 删除本地文件runtime/host/wechat.mjs:384
await unlink(join(this.dataDirectory, "pending_qrcode.json")); - 写入本地文件runtime/host/wechat.mjs:396
await mkdir(this.dataDirectory, { - 写入本地文件runtime/host/wechat.mjs:403
await writeFile(temporary, "{}\n", { - 写入本地文件runtime/host/wechat.mjs:409
await rename(temporary, target); - 写入本地文件runtime/host/wechat.mjs:411
await writeFile(target, "{}\n", { - 删除本地文件runtime/host/wechat.mjs:417
await unlink(temporary).catch(() => void 0); - 读取本地文件runtime/host/wechat.mjs:484
buffer = await readFile(path); - 执行外部命令来自配置/变量runtime/host/wechat.mjs:506
execFile(invocation.command, [...invocation.args], { - 写入本地文件runtime/host/wechat.mjs:551
await writeFile(messageFile, message, { - 删除本地文件runtime/host/wechat.mjs:578
await rm(privateDirectory, {
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-atomic-write@deepseek-ai/dsh-home-paths@deepseek-ai/cordis@deepseek-ai/cordis-plugin-include@deepseek-ai/cordis-plugin-loader@deepseek-ai/cordis-plugin-timer@deepseek-ai/cosmokit@deepseek-ai/dsh-agent@deepseek-ai/dsh-agent-default-model@deepseek-ai/dsh-agent-loop@deepseek-ai/dsh-api-session-controller@deepseek-ai/dsh-app-boot给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
界面预览
6 张 · 点击查看大图功能亮点
- 余额监控
- 待机扣费复苏动画
- 峰谷计费与会话费用统计
最近更新
在 GitHub 查看全部 →v4.3.22026-10-31
· dsh-damage-pulse 4.3.2
修复 4.3.1 遗漏 DeepSeek Harness 0.2.1-rc.4 兼容声明的问题。
· 4.3.0 与 4.3.1 的 peer 范围从 0.2.1-rc.3 直接跳到 rc.5,中间漏了上游实际发布过的 0.2.1-rc.4。rc.4 宿主按精确版本逐条校验,会把整包判为不兼容并拒绝安装。
· 4.3.2 在 13 条 @deepseek-ai/dsh-* peer 声明中补上 0.2.1-rc.4,现在覆盖 0.2.1-rc.1 到 rc.5。
· 运行代码没有变化,与 4.3.1 相比只有版本常量、peer 声明和 README 说明不同。
安装提示:
· 4.3.2 刚发布时会受 pnpm 默认约 24 小时「新版本等待期」影响。只写包名可能仍选到旧版本并被拒,请指定精确版本 dsh-damage-pulse@4.3.2,或直接安装 Release 里完整的 .tgz。
· 已在 0.2.1-rc.5 桌面版隔离 profile 中安装实际 tgz 验证:插件加载、余额查询、Plan 额度页签均正常。rc.4 的兼容声明通过宿主同一套 semver 规则逐条核对。
· 安装或升级后请完整退出程序(含托盘)再启动,在悬浮卡右键的「卸载与更新」核对版本。
v4.3.12026-10-31
· dsh-damage-pulse 4.3.1
本版跟进 DeepSeek Harness 0.2.1-rc.5,并重写中英文 README。
· 兼容 DeepSeek Harness 0.2.1-rc.5。rc.5 会按精确 peer 版本加载插件,4.3.0 会被跳过;4.3.1 只追加该宿主版本,保留此前已验证的兼容段。
· README 收敛为安装、功能介绍、常见问题和社区支持,详细用法保留主图,辅助截图按需展开。
· 高级配置、HTTP 接口、微信兼容层、旧版恢复和源码开发移到 docs/REFERENCE.zh-CN.md 与 docs/REFERENCE.en.md。
· README 截图全部换为 rc.5 桌面版画面;赞助商使用记录与微信赞赏改为直接展示。
· 安装说明改为以 Release 完整包为准,并说明 rc.5 需要 4.3.1。
运行文件与本次 rc.5 桌面验收所用的安装目录逐字节相同。与 4.3.0 发布包相比,客户端只存在换行符差异(Windows 检出的 CRLF),归一化后内容一致;其余运行文件未变。已在 rc.5 桌面版隔离 profile 中安装实际 tgz 验证:插件加载、余额查询、Plan 额度页签和 Esc 关闭层级正常。安装或升级后请完整退出程序再启动。
v4.3.02026-10-25
· dsh-damage-pulse 4.3.0
本版让订阅额度只在确实开通套餐时出现,并跟进 DeepSeek Harness 0.2.1-rc.3。
· 详细用量的「Plan 额度」页签现在只在宿主确认已开通套餐时显示。只有 API key、没有订阅的供应商不再留下空卡片或失败查询。
· 401 / 403 / 404 以及「没有任何额度窗口」的应答都按未接入处理,30 分钟内不重复探测;5xx 与网络故障仍照常报错,不会被误判成「没有套餐」。
· 页签每次打开用量明细时探测一次,肯定结果缓存 5 分钟,否定结果不缓存:刚开通套餐后重新打开窗口即可看到。
· 兼容 DeepSeek Harness 0.2.1-rc.3,peer 范围同时保留此前已验证的版本。
· 保留 4.2.9 的 GLM Coding Plan 额度窗口、自定义余额脚本 display 文案与额度型供应商的滚动窗口布局,以及 4.2.8 的余额查询连接错误修复。
已在 DeepSeek Harness 0.2.1-rc.3 桌面版以实际 tgz 在隔离 profile 中验证:无套餐时页签隐藏、只有消费概览;注入合成套餐快照后页签出现并渲染 5 小时 / 每周的已用、剩余与下次刷新时间;Esc 只关闭最上层窗口。套餐判定使用合成应答,未请求真实套餐接口。安装或升级后请完整退出程序再启动。
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。
README
由 DeepSeek 最新模型翻译生成dsh-damage-pulse
为 DeepSeek Harness 提供用量、费用与余额监控:查看单次调用、会话累计和历史统计,让鲸鱼娘陪你观察每次 Token 消耗。
安装 · 功能介绍 · 常见问题 · 高级配置与接口 · 更新记录
感谢模型赞助商 Fastai 支持开发。赞助说明
安装
当前源码版本:4.3.2,适配 DeepSeek Harness 0.2.1-rc.1 至 rc.5。 4.3.0 与 4.3.1 缺少 0.2.1-rc.4 的兼容声明,会被该宿主的兼容检查跳过。4.3.2 刚发布时会受包管理器约 24 小时的新版本等待期影响;需要立即安装时请指定版本,或使用 Release 里完整的 .tgz。
在桌面版「插件」页添加包名 dsh-damage-pulse,或下载 Release 中完整的 .tgz 后添加其文件路径。也可用命令行安装 npm 当前发布版:
dsh plugin --profile desktop add dsh-damage-pulse
将 desktop 换成实际使用的配置档名。安装后完整退出桌面程序(含托盘)再启动,在悬浮卡右键的「卸载与更新」核对版本。
展开完整文档(README 剩余 1 节)
dsh-damage-pulse 为 DeepSeek Harness 提供用量、费用与余额监控:查看单次调用、会话累计和历史统计,让鲸鱼娘陪你观察每次 Token 消耗。 安装 · 功能介绍 · 常见问题 · 高级配置与接口 · 更新记录 感谢模型赞助商 Fastai 支持开发。赞助说明 安装 当前源码版本:4.3.2,适配 DeepSeek Harness 0.2.1-rc.1 至 rc.5。 4.3.0 与 4.3.1 缺少 0.2.1-rc.4 的兼容声明,会被该宿主的兼容检查跳过。4.3.2 刚发布时会受包管理器约 24 小时的新版本等待期影响;需要立即安装时请指定版本,或使用 Release 里完整的 .tgz。 在桌面版「插件」页添加包名 dsh-damage-pulse,或下载 Release 中完整的 .tgz 后添加其文件路径。也可用命令行安装 npm 当前发布版: dsh plugin --profile desktop add dsh-damage-pulse 将 desktop 换成实际使用的配置档名。安装后完整退出桌面程序(含托盘)再启动,在悬浮卡右键的「卸载与更新」核对版本。 - 需要指定版本时,使用对应 Release 的预编译 .tgz;不要直接安装仓库 URL、github: 地址、Source code 压缩包或未打包的源码目录,它们缺少运行载荷。 - 页面提示已安装时,先移除再添加完整包;保留配置和历史数据,不用清空账本解决启动问题。 - 官方 API 余额通过 DSH 凭据机制配置 DEEPSEEK_API_KEY;没有余额凭据也可记录用量和费用。 旧版宿主兼容说明保留 0.1.0-rc.5、0.1.1-rc.2、Desktop 2.0.4(0.1.2-alpha.1)、0.1.5-alpha.2 等旧版兼容段,实际范围见 package.json。声明兼容不等于每个版本都逐一实机验收;本次验收使用 rc.5 桌面版。 标准包自带会话金额:优先使用 conversation.session.header.actions;宿主提供 sidebar.workspaces.sessionRow.trailing 时追加注册。旧客户端使用严格 fail-closed 的兼容桥,只有唯一匹配原生会话行时才显示,检测到已有金额或正式席位即停用,避免重复。 旧宿主沿用自身 lock 与依赖,不混装不同预发行版本。更多恢复与源码部署说明见参考文档。 功能介绍 本轮 rc.5 桌面截图使用合成示例数据;Plan 额度与部分 Token 概览使用接口替身展示,不代表真实供应商查询结果。 余额悬浮卡与鲸鱼娘 显示余额、本次输入/输出/缓存 Token、首字与总耗时,以及峰谷状态。余额每 60 秒校准;查询不可用时不显示金额,本地统计继续工作。支持拖动、键盘移动和位置记忆,右键进入各功能面板。 鲸鱼娘会待机、眨眼,并对扣费、缓存未命中、余额耗尽和充值恢复作出反应;可以单独隐藏。动画默认按卡片宽度的 80% 显示,已有自定义比例保留。 查看无余额状态、右键菜单、工作区与角色细节 用量明细、历史统计与 Plan 额度 对话流显示单次用量,输入区显示会话累计;独立明细窗口支持拖动、缩放、时间/模型/项目/对话筛选、列选择及费用构成查询。统计概览提供今日、近 7 天、近 30 天与全部历史的消费、请求、Token 和缓存指标。 「Plan 额度」显示订阅的 5 小时/每周窗口、剩余额度和下次刷新时间;只有确认存在套餐时才出现,仅有 API key 不会显示空页签。 查看统计概览、列设置、费用构成与 Plan 额度 费用浮层为便于阅读已展开完整内容,日常界面内可滚动查看。 计费规则与供应商余额 按 provider + model 判断计费资格,未知模型不套用 Flash 价格;输入、缓存与输出分项计费,推理 Token 不重复叠加。历史保存在本地持久账本,重启后恢复,事件重放不会重复扣费。 可编辑固定价、峰谷价、阶梯与倍率,也可为第三方供应商配置余额查询脚本,显示金额、自定义文字或额度窗口。DeepSeek 默认高峰为北京时间工作日 09:00–12:00、14:00–18:00;周末(含调休上班)与法定节假日全天按谷价。内置价格按生效时间分段,具体价格以官方说明及已加载规则为准。 查看余额脚本与高级设置 脚本返回格式、历史计价和动画比例配置见高级参考。 提醒与微信通知 可设置每日预算、峰谷切换和连续缓存命中异常提醒,通过鲸鱼娘气泡或 ClawBot 微信发送。预算提醒不会阻止或取消请求。业务通知默认关闭,测试消息可独立发送;设置面板提供扫码登录、连接状态、刷新、重连与断开操作。 查看提醒规则与微信示例 模块管理与更新 桌宠、数据概览、通知、计费规则和微信渠道五个模块可独立卸载,状态在重启与升级后保留。默认保留配置和历史;取消保留选项会清除对应模块的数据。整体卸载会停止用量采集。 「卸载与更新」可检查 GitHub Release,并在校验版本、下载来源与 SHA-256 后安装。正常升级保留设置、账本和已卸载模块状态。 常见问题 - 没有余额? 先检查对应供应商凭据与连接;缺少余额凭据不影响用量统计。支持 IPv4 TUN/Fake-IP(198.18.0.0/15),暂不支持 IPv6 或 IPv4-mapped Fake-IP;查询失败时不显示金额或错误码。 - 安装后不出现或仍是旧界面? 完整退出并重启目标 profile,核对插件自身版本;旧源码集成用户检查是否重复挂载。若宿主因启动失败禁用了插件,修复安装后需重新启用。 - 缺少 runtime/manifest.json? 换用 npm 包或 Release 的完整 .tgz,不要直接安装源码。包名安装版本偏旧时,核对 registry 和包管理器新版本等待策略,或使用目标 Release 的 tgz。 - 旧会话没有金额? 重启后等待历史投影补齐;标准包已有会话金额能力,无需手工改宿主源码。异常时附宿主版本、插件版本和错误内容到 Issues。 接口、ClawBot 配置、旧版恢复及源码开发见高级参考。历史修复见 Releases。 社区与支持 欢迎在 LINUX DO 交流。感谢社区贡献者,包括 @gurio-wine(PR #17,桌面卡片位置与鲸鱼娘开关修复)。MIT 许可证。 模型赞助商 Fastai 支持本项目开发,提供多家模型服务。链接含邀请标记,符合条件的充值会为作者提供返利和 Token,用于持续维护。GPT 分组不能保证不降智,建议优先考虑其他分组。 插件安装和全部功能均不依赖中转服务或充值。 微信赞赏,支持项目开发
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
wssfk12138/dsh-damage-pulse
DeepSeek Harness Token 余额监控插件:鲸鱼娘待机/扣费/复苏动画、峰谷计费、连续扣费飘字与会话费用统计。
相关插件 · 模型接入
API 中继安全审计toby-bridges/api-relay-audit
面向 AI API 中转与 LLM 代理的本地安全审计。
★ 897已汉化DSH
69.4
免费搜索插件DDDMUC/dsh-free-search
DeepSeek Harness 免费搜索插件 —— 无需 API key,零成本,多引擎可切换。 一个插件,给…
★ 814已汉化DSH
68.8
免费联网搜索liustack/modsearch
在官方 App 里模型能联网,切到 API 就不能了。ModSearch 把联网补回来:网页搜索、X…
★ 863已汉化DSH
68.5
OpenCode 免费模型FishBottle7/opencode2dsh
在 DSHDeepSeek Harness里原生使用 OpenCode Zen 的免费匿名模型。
★ 385已汉化DSH
67.9
AI 模型网关tingly-dev/tingly-box
Tingly Box Web UI 演示
★ 373已汉化DSH
67.4
WorkBuddy 账号池XDTrees/dsh-xdpool
把你能白嫖的模型额度接进 DSH 同一个池:WorkBuddy 多账号自动容错、十三家扫码登录、76…
★ 359已汉化DSH
67.1