dsh-whale-widget

uitested: passnpmMIT

A fixed-corner whale widget for the DSH web GUI — balance, today's usage and per-turn cost with peak/off-peak pricing, editable balance-alert and daily-budget bubbles, a module-based custom bubble queue with A/B weighted choices and random lines or images, 30+ vendor templates (OpenAI, OpenRouter, K

下载量 / Downloads
391,332
依赖体积 / node_modules
6.89 MB
测试时间 / Tested
2026-11-06

Install

dsh plugin --profile web add dsh-whale-widget

Sandbox test results

StageResult
1 install✓
2 list✓
3 mount—
4 boot—

Four stages run in an isolated sandbox: install (network on) → list → mount → boot (last three with no network).

README

DSH 小鲸鱼记账挂件(DeepSeek Balance Whale Widget)

DeepSeek Harness(DSH)Web 界面右下角的常驻挂件:小鲸鱼气泡图 + DeepSeek API 余额 + 今日已用 + 每轮对话消耗,并且泡泡内容可以完全自定义(点击序列、模块化排版、并列加权出泡、随机语句/随机图片)。标准 DSH bundle 插件,dsh plugin 一键安装,无需任何会话令牌。

⚠️ Codex 版小鲸鱼已迁至独立仓库 → <https://github.com/Yang-huai406/Codex-Whale-Public>(已安装用户无需重装;详见下方「两条分支怎么选」)

<!-- 迁移横幅(v0.3.19 起):迁移稳定后(约 2026-11,或发过 1–2 个版本)可只删这一行 blockquote,保留下方分支表与「致谢」——别让它长期占着第一屏 -->

两条分支怎么选

本仓库现在只维护一条产品线(main,同一个包同时支持 DSH Web 与官方桌面客户端)。按你要挂在哪里选:

你要挂在哪 · 用哪条分支 · 安装方式

DSH Web 界面右下角(就是这个 README 描述的插件) · main(默认分支) · dsh plugin --profile web add dsh-whale-widget(推荐,装 npm 已发布版);也可以从本仓库装 dsh plugin --profile web add github:MeteorNOX/DeepSeek-Balance-Whale-Widget,但那样装的是 main 当前状态、不跟随已发布版本

官方桌面客户端(Electron)右下角 · main(同一个包) · ⚠️ 不能用 --profile web(桌面端读的是 desktop profile,CLI 也拒绝 --profile desktop)—— 在桌面端会话里让 DSH 自己装,见下方「官方桌面端(Electron 客户端)请先看这一节」

Codex 桌面应用(跟随 Codex 窗口、无独立网页) · ⚠️ 已迁出本仓库 · 新仓库 · 最新版下载 · 已安装用户无需重装<br>Codex 版迁移公告:本次迁移保留了开发历史、历代版本与作者贡献,并清理了旧图片中的非必要元数据(贡献者致谢见文末「致谢」)。后续更新、问题反馈与版本发布都在新仓库;反馈问题时请注明版本、系统和复现步骤,勿上传密钥、完整配置或未脱敏日志。

⚠️ 两条线互不兼容:Codex 版不能用 dsh plugin … add 装进 DSH 网页,本仓库的插件也不能在 Codex 桌面里运行。

⚠️ 安装方式二选一、别混用(npm 名 / github:)—— 它们是同一个包名,先后安装会并存冲突;已经是 github: 装的,要换 npm 名请先 dsh plugin --profile web remove dsh-whale-widget。

特性

记账与显示

  • 🐋 常驻自启:随 DSH Web 界面每次打开自动出现(标准 DSH bundle 插件)
  • 💰 余额:60 秒自动刷新 + 点击鲸鱼手动刷新;余额变化时数字滚动动画;瞬时网络抖动自动沿用最近余额不报错。两种取数方式,API key 优先:① DSH 凭据里的 DEEPSEEK_API_KEY;② DSH 账号登录态 —— 通过「设置 → 账号与余额」登录了 DeepSeek 账号、又没配 API key 时自动使用(不需要去 platform 建 key)
  • 📊 今日已用(小鲸鱼记账):不需要任何令牌。余额下降按观测累计为消费,余额上升(充值 / 赠金)单独记录、不会冲掉已有消费;检测到余额增加会提示「待核对余额调整」,可在「小鲸鱼记账 → DeepSeek(内置)→ 设置 → 余额校正」按实际累计到账金额与非调用扣减校正 —— 「已观测消费」与「余额校正」都是 DeepSeek 账户口径(由该 API key 的余额观测得出,不含其它厂商;「本机模型费用」才是所有模型的本地估算)(逐轮明细保留 90 天或最多 2 万条、逐日归档保留 365 天,超期数据归档到 .dshw-usage-archive.json);金额按 8 位小数记账、显示保留两位
  • 💬 每轮对话消耗:监听 DSH 本机会话事件,按模型真实 usage(input / cache / output / reasoning tokens)换算金额,每轮结束弹出消耗泡泡;可开关、自动关闭秒数可设(0 = 不自动关闭),泡泡内容可自定义(模块化,金额用 {cost} 引用),入口:菜单 → 「音效与提示」→ 「全局设置」→ 展开「每轮消耗提示」→「编辑提示内容」
  • ⛰️ 峰谷定价:工作日高峰 9:00–12:00、14:00–18:00(北京时间),其余空闲;2026-08-23 起周末全天谷价。峰谷模块支持状态文字、倒计时、"梁文峰谷 / !?强强?! / 简洁"等多种样式
  • 📒 用量记录窗口:今日模型消费、近 7 天、全部记录;模型占比条;按日期展开逐条明细(含时间与金额);支持按日期或模型名搜索;模型名带友好标注(deepseek-flash → DeepSeek-V4.1-Flash,旧名标注"同 V4.1 Flash")

交互

  • 🖱️ 拖拽 + 吸附:四边吸附区可自定义(按比例或像素),角落可组合;可关闭吸附自由摆放。顶部吸附默认值为 0,表示关闭;想开启请到「菜单 → 吸附与翻转 → 自定义」,选择「比例吸附」或「绝对吸附」,把上侧数值调为正值后点「确认」。上吸附以挂件盒中心进入吸附区为判据,大尺寸挂件需要相应扩大上侧区域;改回 0 可关闭顶部吸附(#152)。
  • 🔄 贴左吸附时整体水平镜像翻转(文字同步反向、带动画)
  • 🧸 按压 Q 弹玩偶效果(按压时底部坐标不变)
  • 🎚️ 主菜单:角色、大小滑块、音效与提示(这行只剩入口按钮「全局设置」,音效总开关已搬进面板)、气泡全局开关 + 「按压泡泡设置」、避让滚动条、吸附设置、隐藏菜单按钮、资源管理(含余额预警、今日预算、小鲸鱼记账)
  • 🔊 提示与音效设置(主菜单 → 「音效与提示」→ 「全局设置」):四个入口行 —— 按压音效(音效组、音量)、每轮消耗提示(冒泡提示、自动关闭秒数、任务结束音、提示音量)、提问提示、授权提示。入口行上就是该事件的总开关与当前值摘要(如 默认音效组 · 100%、自动关 180s · 叮~),点一行才展开该区的设置项(可同时展开多个)。每个音效都有独立音量,每行带「试听」;音效行左侧的 [✓] 决定该音效响不响(不响 = 仍可冒泡)。底栏 取消 / 恢复默认 / 保存 —— 面板内的改动只落内存,点「保存」才生效,点「取消」完整还原(「恢复默认」之后点取消同样能撤销)
  • 🙈 可隐藏菜单按钮:隐藏后,电脑端右键鲸鱼、手机端长按鲸鱼约 1.5 秒唤出菜单
  • 📱 移动端友好:鲸鱼可触摸拖动(自研触摸接管,不会把页面手势判成滚动导致拖不动);泡泡编辑器支持长按 0.4 秒进入拖拽排序;去掉了浏览器默认的点击高亮方块

泡泡系统(核心)

  • 💬 点击序列:第一次点击显示"首次点击泡",再点进入"再次点击"队列;队列可任意增删排序,还能把两泡并列为 A/B 加权选择(每轮按权重抽一个)
  • 🔁 点按角色推进队列(可选,在「自定义泡泡」窗口里开):开启后点一下角色=往后推进一项(第 1→2→3…,走到最后一项再点收起泡泡,下次点按从第 1 项重新开始);关闭时是原来的行为 —— 点角色回到"首次点击泡"。设置只在这个窗口里,随窗口的「保存」一起生效
  • 🧩 模块化内容:一个泡泡由若干模块按行组成,支持类型
  • 文本、超链接
  • 随机语句(多条句子带权重,每次显示抽 1 条且不连续重复)
  • 图片/动图(从泡泡图库选,独占一整行)
  • 随机图片(多张图带权重,抽 1 张且不连续重复,同样独占一行)
  • 总余额(充值金额+赠金)、赠金、充值余额、今日已用、峰谷时段、对话名(内置数值,内容自动获取,可调占位符与样式;对话名可设「保留长度」,超出部分显示为 ...,0 = 不截断)
  • 三个余额类模块的分工:总余额(充值金额+赠金) = 充值余额 + 赠金({balance_ds},老配置里的模块照旧显示,无需重配);赠金({bonus_ds})与充值余额({recharge_ds})是单独拆出来的两个模块,取不到数时显示 —(真的为 0 才显示 0.00)
  • 🎨 逐模块样式:字体(含自定义字体)、字号、加粗/斜体/下划线、纯色或跑马灯渐变配色、底色;文本与随机语句支持悬浮快捷编辑
  • 🖐️ 拖拽排版:桌面端原生拖拽、移动端长按拖拽;模块可并入某行首/尾、可拆行、整行可排序;每行最多 6 个模块、泡泡最多 6 行,图片类模块独占一行且一个泡泡只允许一个
  • 📚 模块库:把常用模块"另存"进库,之后在任意泡泡里点击或拖入复用
  • 🏷️ 菜单底部显示当前版本(居中在最下方按钮与菜单底边之间的空隙里,一行 9px 小字;这行不改变菜单高度 —— 按钮下边距与菜单下内边距各让出一部分、正好等于这行高度。开发版显示"下一个版本号 + beta",例如 v0.3.19-beta)

提醒

  • 🔔 余额预警:余额低于设定值时弹提醒,内容可编辑(含图片/随机图片模块)
  • 💸 今日预算:今日已用达到设定金额时弹提醒,内容同样可编辑
  • 💬 每轮消耗提示:一轮对话结束后弹消耗泡泡,内容同样可编辑(模块化,金额用 {cost});开关、自动关闭秒数、提示音量、任务结束音效与内容编辑入口都在「音效与提示 → 全局设置」面板的「每轮消耗提示」区(主菜单不再单列这一行)
  • ⏳ 等待交互音效:DSH 需要你回答提问、或需要你批准授权时会响一声并在气泡里提示(默认都是关闭的;打开后与任务结束音共用同一套音效库)。提示内容里的 {session} 会替换成当前对话名(读不到就显示「当前对话」,超长自动截断为 12 字符 + ...)。同一个未回答的提问只响一次(刷新页面也不会重复响)
  • 三者都支持自动关闭秒数设置;气泡模式不可用时自动退化为居中卡片(卡片内也会渲染图片模块)

音效 / 角色 / 图片

  • 🔊 按压 & 松开音效:内置「小黄鸭」「音效1」两套预置;也可导入音频片段并自由组合成自定义音效组(槽位可留空 = 该事件静音)
  • 🎵 任务结束音:一轮回复完成时播放;内置两个预设音效 —— 默认 Minecraft·经验球(assets/minecraft-exp-orb.wav)与 A(assets/task-end-a.wav),也可选任意片段或音效组
  • ⏳ 提问音 / 授权音:DSH 需要你回答或批准时播放;与任务结束音共用同一套音效库,各自可调音量,音效行左侧的 [✓] 决定「响不响」(不响 = 仍会冒泡提示)
  • 🔉 音量:一条全局 + 三条按事件:①区「按压音效」的音量是全局基准(按压 / 松开音用它);②③④ 区(每轮消耗提示 / 提问提示 / 授权提示)各有一条自己的音量滑块,每行都带「试听」。没动过某个事件的滑块时,它跟随①区音量(入口行摘要会写明 跟随按压音量 N%);一旦你拖过那个滑块,就按你设的值播(摘要只显示百分比)。这样既能"一个总音量管全局",也能单独压低某类提示音。
  • ✂️ 音频片段管理:导入时可视化裁剪、试听;资源管理窗口(菜单 → 资源管理 → 「管理」)按 图片 / 音频 两个可折叠入口统一查看/试听/删除 —— 入口行右侧直接显示数量(如 角色 1 · 泡泡图 2、音效组 3 · 片段 4),点一行才展开明细;「导入片段」在音频那一区里;收起/展开时会顺带停掉正在试听的那一段
  • 🐳 自定义角色:上传自己的鲸鱼图片(图库管理,可回退默认)
  • 🖼️ 泡泡图库:内置 petpet、money1 两张图,也可上传 png/gif,供图片/随机图片模块使用

自定义 API(多厂商余额 / 额度)

除内置的 DeepSeek 余额外,可在「小鲸鱼记账 → 模型」里添加任意厂商;每个模型独立配置余额预警 / 今日预算 / 额度:

  • 🧩 厂商模板(34 个,选完自动带好凭据名 / 币种 / 接口 / 字段路径 / 事件匹配 / 探活地址):
  • 可直接查到余额或额度:DeepSeek(内置)、OpenRouter、Kimi / Moonshot(CN / 国际)、阶跃星辰 StepFun、Nov

…(truncated)

Rendered from the README published on npm. Formatted only, not edited.

Versions

Published on npm::31,最后更新 2026-11-05

Links

GitHub · Homepage · npm

Same category