前言¶
在 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