在 DeepSeek Harness (DSH) 的開發或使用流程中,模型完成一輪迴復後,通常需要手動切換窗口或等待狀態變化。如果正在處理其他任務,很容易錯過這一時機。dsh-done-notifier 插件解決了這個問題。
它是一個客戶端插件,由 tdeluna024-ui 維護。當模型完成回覆並進入 idle 狀態時,它會彈出 macOS 系統通知並播放提示音。
核心功能¶
- 狀態觸發:監聽宿主事件
agent/status,僅在狀態從running回到idle時觸發一次。 - 系統通知:彈出 macOS 橫幅,標題爲
DeepSeek,正文爲模型已完成,等你回覆。 - 音頻提示:使用系統命令
afplay播放隨包攜帶的童聲提示音(真人神經語音合成)。 - 對話過濾:只通知頂層對話,忽略子代理(subagent)的結束,避免通知轟炸。
- 防重複觸發:單輪內模型連續調用多個工具期間,狀態保持
running,不會重複觸發。 - 零依賴:純 JS 實現,無需構建授權,從 GitHub 直裝即可。
安裝¶
推薦使用官方 CLI 進行安裝:
dsh plugin --profile <你的 profile 名> add github:tdeluna024-ui/dsh-done-notifier
安裝完成後,需要重啓 DSH 生效。
若 dsh 命令未配置在 PATH 中,可使用完整路徑:
node <dsh 安裝根目錄>/apps/cli/lib/bin.js plugin --profile <name> add github:tdeluna024-ui/dsh-done-notifier
配置與自定義¶
- 提示音替換:插件內置了童聲提示音。若需更換,替換
assets/notify-kid.mp3即可。afplay支持的格式包括 mp3、aiff、m4a 和 wav,保持文件名一致即可。 - 橫幅文案:如需修改通知標題和正文,可在
index.js頂部修改TITLE和BODY常量。
注意事項¶
- 環境依賴:插件依賴系統自帶的
osascript與afplay(macOS 原生支持)。DSH 的 profile 需包含提供agents與shell服務的宿主組合(@deepseek-ai/dsh-base即滿足)。 - 平臺限制:非 macOS 平臺會打印警告並跳過通知功能,不會影響 DSH 的正常運行。
- 權限說明:插件以當前 DSH 進程的權限運行,安裝前建議檢查源碼與許可證。
結語¶
該插件通過簡單的系統級反饋,解決了在多任務場景下漏掉模型回覆的問題。相關代碼與文檔位於: