前言¶
在 DeepSeek Harness(DSH)里跑会话的人,通常已经有一套自己的工作节奏:几点开工、午休扣不扣薪、这个班已经赚了多少钱。目前没有现成的插件把这些信息常驻在界面上,只能在会话里让代理现算,或者自己开一个浏览器标签盯着表。dsh-offwork(SnowBeatRain 维护)就是针对这个缺口的插件:它是一个可拖动的悬浮计时条,附带页面陪伴角色,在 Harness 的 Web 界面里显示下班倒计时、本班已赚金额,并支持喝水提醒。
下面介绍这个插件的定位、功能、安装方式和典型用法。
这是什么¶
一句话定位:DSH 插件,在 Harness 页面内提供下班倒计时、实时工资估算、喝水提醒,以及一个可选的页面陪伴角色。维护者是 SnowBeatRain,开源许可为 MIT License,运行时无第三方依赖。
它解决的是「上班过程中反复看时间、猜收入」这类重复劳动:把班次状态、进度和金额常驻在页面里,配置一次后按时间自动计算,不需要让代理每次重新推理。
当前版本以 npm 包 dsh-offwork 发布,package.json 中版本为 1.1.1,仓库内聚了 Web 客户端、Host 侧命令与代理工具三部分。
核心功能¶
插件由三部分组成:悬浮小条与陪伴角色、独立功能卡片、Host 侧配置与命令。
悬浮小条与陪伴角色。 主界面是一个可拖动的计时小条,显示待开工、工作中、休息中、班次完成、休息日等状态;方向键可微调位置,Home 复位。角色方面提供长裙 / 短裙两套动态形象和对应的静态立绘,支持预览、大小调整、拖动、挥手与喝茶动作;动作可以关闭,关闭后不移除内置资源。角色不可用时可回退到原有计时小条,继续使用计时功能。
喝水提醒。 默认关闭,开启后按有效工作分钟设置 5–240 分钟间隔,支持手动打卡、稍后提醒、本班暂停和 30/60 分钟免打扰。默认关闭是因为提醒本身容易变成噪音,需要的用户自行开启。
独立功能卡片。 右键角色可分别打开倒计时、喝水、收入、外观、作息与薪资五张卡片,卡片自适应窗口宽度,并在关闭前提示未保存的修改。
实时工资。 收入卡片显示本班已赚金额、计薪进度、日薪和有效时薪,支持月薪或日薪输入。金额默认遮住,用眼睛按钮一键显示或隐藏;设置界面里的薪资输入和折算预览也会同步遮蔽。
作息配置。 支持自定义上下班时间、工作日、时区,以及一段可选的无薪休息;下班时间早于上班时间时视为次日下班,可覆盖夜班场景。时间依赖配置中的时区,不使用操作系统时区。
双语言与低动态模式。 提供中文与 English 界面,并响应系统的「减少动态效果」设置。
安装与启用¶
插件对 Harness 版本有要求:>=0.2.1-rc.5 <0.3.0-0,并使用 Harness 的 Web 界面。安装后需要刷新页面以加载客户端。
插件管理器安装,从 npm 包安装,target 填包名:
plugin_manager → install_bundle → target: dsh-offwork
也可以直接通过命令行装到 web 配置(这是配置名称,使用其他配置时替换):
dsh plugin --profile web add dsh-offwork
从 GitHub 安装:
plugin_manager → install_bundle → target: github:SnowBeatRain/dsh-offwork
从本地源码安装,先克隆并构建,再在插件管理器里填绝对路径:
git clone https://github.com/SnowBeatRain/dsh-offwork.git
cd dsh-offwork
npm run build
plugin_manager → install_bundle → target: /绝对路径/dsh-offwork
源码安装适合需要改动客户端行为、或想先读代码再决定的情况。
首次使用¶
- 安装后刷新 Harness 页面,打开或创建一个会话。
- 在首次设置引导中选择月薪或日薪,填写税前薪资;月薪模式还需填写月计薪天数。
- 设置上下班时间、班次开始日和时区;如有无薪休息,启用扣除并填写休息时段。
- 点击「保存」开始计时。引导中的初始数值只是示例,保存前不会作为你的实际收入展示。
如果希望配置的读写结果记入指定会话,可在「高级设置 → 操作记录会话」中选择;这个选择不影响工资计算。
常用操作集中在角色右键菜单:
- 打开喝水卡片:右键菜单 → 喝水
- 查看下班倒计时卡片:右键菜单 → 下班倒计时(角色脚下徽标只显示计时)
- 修改形象、大小与透明度:右键 → 外观,预览后点「应用外观」
- 修改薪资和作息:右键 → 作息与薪资
- 使用原计时小条:在外观中关闭「宠物模式」并应用
- 显示 / 隐藏工资:收入卡片中的眼睛按钮
- 移动角色:按住拖动;聚焦角色后按
Enter/Space可互动,方向键微调,Home复位
悬浮窗只显示在 Harness 页面内,切换到其他应用后不会作为桌面置顶窗口出现。同一浏览器同一站点的多个标签页会同步显示偏好;薪资与作息配置由 Harness Host 共享。
计薪规则¶
金额一律以人民币(CNY)显示,表示按配置估算的税前收入:
| 项目 | 计算方式 |
|---|---|
| 月薪模式的日薪 | 月薪 ÷ 月计薪天数 |
| 日薪模式的日薪 | 直接使用填写的日薪 |
| 有效时薪 | 日薪 ÷ 扣除无薪休息后的班次时长 |
| 本班已赚 | 日薪 × 已完成的有效计薪比例 |
例如月薪 10,000 元、月计薪天数 21.75 天、班次 09:00–18:00 且扣除 12:00–13:00 无薪休息时,日薪约为 459.77 元,有效时薪约为 57.47 元。
实现上有几处细节值得说明:金额按分截断、不四舍五入,计薪比例使用十进制有理数计算,减少浮点误差导致的丢分;无薪休息期间收入暂停增长,下班倒计时照常走,关闭「扣除无薪休息」即按整段班次计薪;工作日按班次开始日判断,因此周五 22:00 到周六 06:00 的班次归属周五;夜班完成后,上一班金额保留到新一班开始。
当前每班只支持一段可选的无薪休息,不含税费、加班费、法定节假日调班、多段休息或复杂轮班规则。
命令与代理工具¶
除了界面,插件还暴露了 Host 侧的命令和代理工具,方便在会话里直接读写配置:
/offwork-clock get
/offwork-clock set {"monthlySalary":10000}
代理可调用 offwork_clock 工具。读取配置:
{ "action": "get" }
更新配置只需传入要修改的字段,其他字段保留:
{
"action": "set",
"settings": {
"payMode": "monthly",
"monthlySalary": 10000,
"workdaysPerMonth": 21.75,
"start": "09:00",
"end": "18:00",
"breakStart": "12:00",
"breakEnd": "13:00",
"weekdays": [1, 2, 3, 4, 5],
"timezone": "Asia/Shanghai"
}
}
weekdays 用 0–6 表示周日到周六;日薪模式改用 "payMode": "daily" 和 dailySalary。把 breakStart 与 breakEnd 设为相同时间即可关闭休息扣除。成功返回 { "ok": true, "settings": { ... }, "configured": true },尚未保存配置时读取结果中的 configured 为 false;失败返回 { "ok": false, "error": "..." }。界面、命令和工具共用同一套配置校验与持久化逻辑。
数据与隐私¶
薪资与作息保存在运行 Harness Host 的机器插件目录下的 data.json 中;如果 Harness 部署在服务器上,配置也在那台服务器上。保存时采用原子替换,文件权限为 0600,且该文件已被 Git 忽略、不包含在 npm 发布包中。
悬浮窗位置、角色、展开状态、工资隐藏和透明度保存在浏览器本地存储;浏览器禁止存储时,这些偏好只对当前页面访问有效。喝水设置与当前班次记录保存在浏览器 IndexedDB,不写入 Host 薪资文件或 Harness 会话。清除站点数据会清除这些本地记录。
需要留意的是,配置读取和保存通过 Harness 命令执行,返回的配置内容会进入所选会话记录;代理工具 offwork_clock 的调用及结果同样进入会话记录。工资隐藏只控制界面显示,不会清除配置文件或会话中已有的薪资信息。
适用场景与注意¶
适合需要长时间运行会话、希望界面里一直有班次进度和收入估计的人,尤其是跨午夜班次或需要扣除午休的用户;只想偶尔看一眼的人用起来会觉得卡片偏多。
安装前建议先读一遍源码,重点关注 index.js(配置校验与保存)、clock.js(班次与工资计算)和 client.source.js(界面逻辑),许可证为 MIT。插件以当前 dsh 进程的权限运行,薪资数据写在 Host 所在机器上,部署在共享服务器时要注意文件归属。仓库内用户提供的鲸系少女图片随插件分发,单独使用图片需参阅素材说明。功能上目前只有一段无薪休息、不含税费与加班费规则,正式薪酬核对仍应使用公司口径。
结尾¶
dsh-offwork 的价值在于把计时、收入估算和提醒放进 Harness 页面内,配置一次性完成,之后按时间自动推进,界面和代理工具共用同一份配置逻辑。它不改变班次计算规则本身,只做个人参考用的估算,适合愿意先读源码再安装的用户。
目录页与仓库:
- 目录页:https://www.skillhub.cn/plugins/SnowBeatRain/dsh-offwork
- GitHub:https://github.com/SnowBeatRain/dsh-offwork
- npm:https://www.npmjs.com/package/dsh-offwork