DeepSeek Harness (DSH) 採用了插件化架構,開發者常在後臺運行任務。當任務結束或遇到中斷時,缺乏即時反饋會增加調試成本。dsh-notifier-plugin 旨在解決這一問題,通過系統級通知將關鍵事件反饋給用戶。
插件介紹¶
這是一個由 hotpot-labs 維護的客戶端插件。它提供桌面通知功能,支持在運行完成、模型提問 (ask_user_question) 或等待批准(沙箱升級/工具權限)時觸發通知。
通知內容會反映運行結果(已完成/錯誤/中止/達到 token 上限/被阻塞/被中斷)。在傳輸層面,支持在打包時切換:默認使用瀏覽器原生的 Notification(),也可配置使用 Tauri 的 @tauri-apps/plugin-notification。
核心能力¶
- 桌面通知支持:兼容 macOS、Linux 和 Windows。
- 關鍵事件觸發:支持運行完成、模型提問、批准請求(沙箱升級或工具權限)的即時通知。
- 單次運行單通知:針對頂層運行會話,過濾子代理會話,一次運行僅觸發一次通知。
- 前臺靜默:當頁面或窗口可見且聚焦時,不發送通知,避免打擾。
- Web UI 設置卡片:提供實時配置界面,無需重啓即可調整開關。
- 事件流重連:支持事件流的自動重連機制。
安裝與啓用¶
通過 npm 安裝該插件(推薦):
dsh plugin --profile web add dsh-notifier-plugin
安裝完成後,重啓 web 進程以加載插件:
dsh --profile web web
驗證插件是否正確掛載:
dsh --profile web --dump-config | grep -n dsh-notifier
配置方式¶
有兩種配置方式,Web UI 設置優先級高於配置文件。
Web UI 配置(推薦)¶
- 打開
dsh web。 - 進入 Settings -> Plugins -> Plugin configuration。
- 展開通知卡片,調整開關並保存。
配置文件配置¶
在 profiles 目錄下的 cordis.patch.yml 中聲明配置:
- id: dsh-notifier
name: dsh-notifier-plugin
config:
enabled: true # 總開關
title: DeepSeek Harness
sound: true # 允許系統通知音效;false 則靜默
onBlocked: true # 阻塞通知的總開關
onQuestion: true # 提問通知(僅當 onBlocked 爲 true 時生效)
onApproval: true # 批准通知(僅當 onBlocked 爲 true 時生效)
使用注意¶
- 權限授予:瀏覽器要求用戶手勢才能授予通知權限。建議在設置卡片中點擊 Send test notification 按鈕來觸發授權。
- 前臺運行靜默:通知僅在 dsh web 頁面或 Tauri 窗口打開時觸發。無頁面時無法收到通知(Headless 模式下不生效)。
- macOS 簽名問題:macOS 對 ad-hoc 簽名的應用拒絕通知權限,需使用開發者簽名或通過宿主進程(
osascript)進行中轉。 - Tauri 桌面端配置:Windows / Linux 端需額外安裝
tauri-plugin-notification並配置 capabilities;macOS 端使用特殊的宿主中轉機制。 - pnpm 版本限制:如果使用 pnpm ≥ 10,可能會阻止 git 依賴運行構建腳本。若安裝後跳過構建,需在 profile 的
pnpm-workspace.yaml中允許該插件的構建。
總結¶
dsh-notifier-plugin 爲 DeepSeek Harness 提供了基礎的桌面通知能力,適合需要後臺運行任務並關注狀態變更的開發者。通過系統通知,可以在不打開界面的情況下掌握任務進度。
- 目錄頁: https://www.skillhub.cn/plugins/hotpot-labs/dsh-notifier-plugin
- GitHub: https://github.com/hotpot-labs/dsh-notifier-plugin