前言¶
DeepSeek API 的定价按时段区分:北京时间 9:00–12:00、14:00–18:00 是高峰,其余为空闲时段(半价)。跑任务一忙起来就容易忘看表,峰里跑了一下午才反应过来,这类事在调 API 的人身上不算少见。已有做法是自己定闹钟,或者在终端挂个 cron 脚本,但它们不跟着你工作的界面走。
dsh-liangwengu 把这件事做成了 DSH(DeepSeek Harness)插件:到点在界面上弹卡通弹窗、发系统通知、播放提示音,直接告诉你「峰来了快跑、峰走了开薅」。下面介绍它的播报机制、界面能力和安装方式。
这是什么¶
dsh-liangwengu 是一个 DSH/Cordis bundle 插件,按 DeepSeek API 定价的高峰/空闲时段到点播报。名字来自一个梗:梁文峰 = 峰 = 高峰时段;梁文谷 = 谷 = 空闲时段(半价)。
定价依据见 DeepSeek 官方文档:https://api-docs.deepseek.com/zh-cn/quick_start/pricing。当前版本 0.7.1,许可证 MIT(README 的 License 节与 package.json 均明确)。代码仓库在 https://github.com/mozhuanzuojing/dsh-liangwengu。
所有播报时间钉死在 Asia/Shanghai 时区,与机器本地时区无关,换机器、改系统时区都不影响判断。
播报时间表¶
插件在一天的这些时间点播报(北京时间):
| 时刻 | 播报内容 |
|---|---|
| 08:30 / 08:40 / 08:50 | 高峰倒计时:距 09:00 还有 30 / 20 / 10 分钟 |
| 08:55 | 梁文峰要来了,块跑啊! |
| 12:00 | 乡亲们,梁文峰走了!!可以出来了!+ 梁文谷 启动~~~ |
| 13:30 / 13:40 / 13:50 | 高峰倒计时:距 14:00 还有 30 / 20 / 10 分钟 |
| 13:55 | 梁文峰要来了,块跑啊! |
| 18:00 | 乡亲们,梁文峰走了!!可以出来了!+ 梁文谷 启动~~~ |
也就是说,两个高峰段(09:00 和 14:00 开始)各有一轮峰前倒计时加峰前提醒,两个峰走点(12:00 和 18:00)各有一次开谷播报。
提醒的三种形式¶
到点时,插件通过三种渠道提醒,全部使用同一套卡通形象(assets/cartoon.jpg,同时也是通知图标):
- 卡通弹窗:右下角 bounce 跳入,气泡台词加卡通形象,8 秒自动收起,点击即关。
- 浏览器系统通知:首次触发时请求授权,授权后到点弹系统通知,带卡通图标。
- 提示音:基于 Web Audio 合成,峰来是急促下行音,开谷是上行音。受浏览器自动播放策略影响,可能被静音。
游戏化 HUD¶
胶囊与详情面板¶
右上角有一个常驻胶囊:图标 + 阶段名 + 生命值血条 + 距下一事件倒计时。可拖动,位置记忆存在 localStorage;点击展开详情面板,内含当前阶段卡、今日时间表、HP 规则和今日播报记录。
主题按北京时间自动切换:06:00–18:00 为白天浅色日光胶囊,18:00–06:00 为月夜深蓝月光胶囊,切换在 1 秒内完成,详情面板同主题(v0.2.1)。
生命值 = 安全剩余量¶
插件用一条血条表示「离峰还有多安全」:谷中满血 100,进入倒计时后按距离掉血(距峰 30 分→70 / 20 分→40 / 10 分→10),峰中回血爬升,到 18:00 满血。
v0.5.1 起血条本身即「水」:宽度等于血量,颜色和气泡表示水温(倒计时阶段水蓝渐白,气泡随 HP 掉血增多),谷启动瞬间蒸汽从血条喷发并伴随咕噜水声;HP 数字低于 20 变红提示危险。
修仙等级¶
v0.4.0 加入了凡人修仙传九境:炼气→筑基→金丹→元婴→化神→炼虚→合体→大乘→真仙,修为翻倍递增。修为来源有两种:
- 渡劫:12:00 / 18:00 结算点在线则 +1,每日上限 2 次;
- 闭关:谷时段每在线 1 小时 +1。
突破时有金光动画、台词和升级音,到达真仙有全屏飞升彩蛋。胶囊显示境界徽标,详情面板有修为卡。
彩蛋与血雾¶
两个 v0.3.0 加入的细节:
- 隐藏彩蛋:HP 归零瞬间(即 09:00 / 14:00)卡通放大弹跳 + 随机梗台词 + 屏幕轻震,每天限 2 次。
- 血雾氛围:屏幕四周红色 vignette 随 HP 降低渐显,峰值时最浓,纯 CSS 实现,不挡操作。
打扰度配平与错过补偿¶
如果每个时间点都弹窗,一天下来反而没法用。插件做了配平:
- 弹窗每天仅 6 次:4 个主触发(08:55 / 12:00 / 13:55 / 18:00)+ 2 次彩蛋,全部为响亮模式(通知 + 声音);
- 6 次倒计时不再弹窗,改由胶囊血条下滑和「距下一事件」倒计时实时承载(v0.3.0 / v0.4.3)。
错过补偿方面:页面打开时如果距最近主触发点不超过 15 分钟,补播该口号(过期的倒计时不补播,避免陈旧信息);否则弹一次性的当前阶段播报——高峰时是「梁文峰还在盯场」,空闲时是「梁文谷进行时」。
安装与启用¶
安装命令如下,<name> 换成你的 profile 名:
# 本地目录
dsh plugin --profile <name> add ./dsh-liangwengu
# npm 包
dsh plugin --profile <name> add dsh-liangwengu
# tarball(README 中的示例文件名)
dsh plugin --profile <name> add ./dsh-liangwengu-0.1.1.tgz
其中 tarball 那行的 dsh-liangwengu-0.1.1.tgz 是 README 的示例写法,package.json 当前版本为 0.7.1,实际文件名以你 pnpm pack 的产物为准。
装完后重启 profile 即生效。浏览器首次弹出时允许「通知」权限,之后才能收到系统通知。
调试时,在浏览器 devtools 控制台执行下面的命令可手动触发弹窗:
window.__lwgTest('warn' | 'good' | 'cd' | 'phase')
包结构与 DSH 适配¶
对想参考它写 DSH 插件的人,这个包的结构值得一看。它是纯 JS、零依赖(仅 peer @deepseek-ai/cordis ^4.0.2),从 git/npm 安装都不需要 allowBuilds:
dsh-liangwengu/
├── package.json # dsh.bundle.patch → cordis.patch.yml;dsh.client → 浏览器半
├── cordis.patch.yml # 插件行:- insert: id liangwengu / name dsh-liangwengu
├── src/index.js # 宿主半:读 assets/cartoon.jpg,挂 /liangwengu/cartoon.jpg 路由供图
├── lib/client.js # 浏览器半:调度 + 弹窗 + 通知 + 声音(ModuleLoader bundle)
└── assets/cartoon.jpg # 卡通形象(弹窗头像 + 通知图标)
v0.7.1 适配了 DSH 0.1.2-rc.1:客户端胶囊改为在 shell.overlay 槽位的 slots.inject 注册,并给客户端 plugin 加 inject: ['slots'],避免 ctx.get('slots') 一次判定因时序拿到 undefined 而走 fallback、胶囊不渲染;cordis 升到 ^4.0.2。该版本已实测在 DSH 0.1.2-rc.1 下胶囊和弹窗正常挂载。
适用场景与注意¶
适合的人:经常在浏览器里调 DeepSeek API、想把跑批任务挪到半价空闲时段、又不想自己记时间表的人。它解决的就是「峰谷切换靠记忆」这个问题。
使用前注意几点:
- 系统通知需要浏览器授权,首次触发时会请求;提示音可能被浏览器自动播放策略静音;
- 时段判断钉死 Asia/Shanghai,机器时区不影响,但如果你完全不在北京时间的工作节奏里,播报对你意义有限;
- 插件以当前 dsh 进程的权限运行,安装前建议先阅读仓库源码并确认许可证(本插件为 MIT)。
小结¶
dsh-liangwengu 用卡通弹窗、系统通知、提示音和一条会掉血的血条,把 DeepSeek API 的峰谷时段变成随时可见的信息,成本控制的提醒不再靠自觉。仓库地址:https://github.com/mozhuanzuojing/dsh-liangwengu;社区目录收录页:https://www.skillhub.cn/plugins/mozhuanzuojing/dsh-liangwengu。