前言¶
用 DSH(DeepSeek Harness)跑任務,常見的工作方式是把任務交給智能體後切去做別的事。麻煩在於你不知道任務什麼時候結束:有時早就跑完在等你反饋,有時中途被阻塞需要審批,一直盯着頁面又浪費注意力。
dsh-complete-notify 解決的就是這件事:任務結束時播放提示音並彈出通知,頁面在前臺用 toast,頁面在後臺改用系統通知。下面介紹它的定位、功能、安裝與配置。
這是什麼¶
dsh-complete-notify 是 kaixinbaba 維護的 DSH 插件,MIT 許可。一句話定位:任務完成時播放提示音並彈出小通知(頁面內 toast + 後臺時系統通知)。
它是純瀏覽器方案:音效用 Web Audio API 合成,彈窗是頁面內 toast,頁面在後臺時走 Web Notification API 發系統通知。不調用 osascript、notify-send、PowerShell 等系統命令,沒有音頻文件、零系統依賴,Windows / macOS / Linux 通用。通知權限是瀏覽器站點級授權,授權一次即可。
當前版本 0.6.2,要求 node >= 22.19.0、dsh >= 0.1.0-rc.6,平臺爲 web。
核心功能¶
提示音¶
任務完成時播放提示音,音效由瀏覽器 Web Audio API 合成。每個結果狀態可以獨立選擇音效,也可以單獨設爲靜音。
頁面內 toast¶
頁面在前臺時,任務完成會在右上角彈出小卡片,按結果狀態着色:綠爲任務完成、黃爲等待你的反饋、紅爲任務中斷或失敗、橙爲達到 token 上限。卡片附一句話小結(recap,不超過 50 字)和運行統計(時長 / tokens / 步驟),5 秒自動消失,點擊跳轉對應會話。多會話同時完成時,toast 棧最多 3 條,先進先出。
後臺系統通知¶
頁面切到後臺或其他標籤頁時完成任務,改用系統通知,附帶小結與統計,點擊通知會聚焦窗口並打開對應會話,同時標籤頁標題閃爍。系統通知權限被拒時,降級爲 30 秒的長時 toast 加標題閃爍。
小結與運行統計¶
小結先顯示降級版本(最終回答前 50 字的清洗版),隨後由 Host 端異步調用 LLM 生成一句話小結並自動替換,每次運行結束調用一次。
注意兩者口徑不同:運行統計取「最後一輪」(turn 號最大的已結束輪次),小結覆蓋整輪運行,多輪任務取最終回答。
結果狀態判定¶
結果狀態以 Host 端 turn/end 的 reason.kind 爲權威來源,客戶端兜底推斷(turn-error / turn-max-tokens 節點、被打斷的 assistant 消息):
| reason.kind | 顏色 | 含義 |
|---|---|---|
| completed | 綠 | 任務完成 |
| blocked | 黃 | 等待你的反饋 |
| aborted | 紅 | 任務已中斷 |
| error | 紅 | 任務失敗 |
| max-tokens | 橙 | 達到 token 上限 |
完成檢測與官方運行指示燈同源:會話列表快照的 running / completed 狀態。
安裝與啓用¶
從 npm 安裝(推薦):
dsh plugin --profile web add dsh-complete-notify
或鎖定 GitHub 版本:
dsh plugin --profile web add "github:kaixinbaba/dsh-complete-notify"
重啓 dsh web 生效(launchd 託管時):
launchctl kickstart -k gui/$(id -u)/com.dsh.dsh-web
本地開發可以用源碼安裝,link: 指向本地目錄:
dsh plugin --profile web add link:/path/to/dsh-complete-notify
開發調試用 node –test 運行單測,npm run check 做語法檢查:
node --test
npm run check
卸載:
dsh plugin --profile web remove dsh-complete-notify
配置¶
全部設置在「設置 → 任務完成通知」面板裏,保存在瀏覽器 localStorage(鍵名 dsh.completeNotify.v1)。可配置項包括:
- 啓用提醒 / 提示音 / 系統通知(頁面在後臺時)開關,以及音量滑塊。
- 分別爲綠色完成、黃色阻塞、紅色中斷選擇不同音效。
- 音效下拉框按當前瀏覽器識別的操作系統分組:macOS / Windows / Linux 推薦預設 + 通用預設 + 靜音。預設名稱是對應系統提示音的風格,實際仍由 Web Audio 合成,不讀取系統音頻文件。
- 「測試音效」「測試通知」按鈕。首次點「測試通知」會請求瀏覽器通知權限,需要點允許。
典型用法¶
- 頁面在前臺,任務完成:聽到提示音,右上角彈出狀態着色的小卡片,含小結、運行統計與「點擊打開會話」提示,點擊卡片跳轉對應會話。
- 頁面切到後臺或其他標籤頁時完成任務:收到系統通知(帶小結與統計)+ 提示音 + 標籤頁標題閃爍。
- 首次使用:在「設置 → 任務完成通知」裏點「測試通知」,允許瀏覽器的通知權限請求。
提醒按會話去重:一個會話一次完成只提醒一次,重新運行後再完成會再次提醒。子代理(subagent)會話不提醒。
適用場景與注意事項¶
適合多會話並行跑任務、長時間後臺運行、需要審批或反饋的阻塞場景——這些情況下人不在頁面前,也能第一時間知道該回來了。
幾個限制需要知道:
- 標籤頁必須開着,這是瀏覽器限制。關閉標籤頁後系統通知也收不到;如需關頁推送,需要接 Push API(需要推送服務器)。
- 瀏覽器自動播放策略:首次用戶交互(點擊/按鍵)後音效纔可用。在 DSH 裏發第一條消息時即自然解鎖,一般無感。
- toast 爲深色樣式,暫未跟隨明暗主題切換。
最後提醒一點:插件以當前 dsh 進程的權限運行,安裝前建議自行查看源碼與許可證。這個倉庫是 MIT 許可,源碼在 GitHub 上可以完整審閱。
結尾¶
dsh-complete-notify 用純瀏覽器方案補上了 DSH 任務完成提醒這一環:不裝系統依賴、不用系統通知命令,跨 Windows / macOS / Linux 可用,狀態着色和一句話小結讓你不用切回頁面就能判斷要不要處理。
- GitHub:https://github.com/kaixinbaba/dsh-complete-notify
- 插件目錄頁:https://www.skillhub.cn/plugins/kaixinbaba/dsh-complete-notify
順帶說明:skillhub.cn 是社區維護的插件目錄,獨立站點,與 DeepSeek / 幻方無官方從屬關係。