DeepSeek Harness(DSH)在處理多會話或長時間運行任務時,開發者常需要在終端窗口和瀏覽器窗口間頻繁切換,以確認 Agent 的狀態或響應權限請求。cc-dsh-notifier 通過原生 Windows 通知系統解決了這個問題:當智能體需要用戶介入(如請求權限、提問、等待輸入)且當前窗口未聚焦時,系統會彈出 Toast 提醒,並支持點擊直接跳轉回會話窗口。
該插件由 baobaolaodie 維護,採用 MIT 許可證。它通過 Claude Code 的 Hook 機制和 DSH 插件接口接入,共享一套本地的通知管道,無需額外的第三方 npm 依賴。
核心功能¶
插件覆蓋了從事件捕獲到用戶交互的全鏈路:
- 中斷事件通知:在權限請求、用戶提問或等待輸入時觸發通知。
- 聚焦感知:當會話窗口處於激活狀態時自動靜默;只有切換走窗口後纔會觸發通知。
- 點擊跳轉:點擊通知可嘗試將焦點帶回會話窗口。對於瀏覽器標籤頁,支持通過 Chrome DevTools Protocol (CDP) 激活;若失敗則回退到 UI Automation (UIA)。
- 多會話管理:每個 DSH 會話(Web 或 TUI)綁定獨立的窗口句柄,通知攜帶會話身份。
- 本地化支持:通知文本默認跟隨 Windows 顯示語言,或通過配置指定
zh/en。 - 統一安裝:一套命令同時支持 Web 和 TUI 兩個 Profile。
安裝與前置要求¶
安裝前請確保環境滿足以下條件:
- 操作系統:Windows 10 或 11。
- Node.js:18 或更高版本。
- Python 3:需安裝
winrt-runtime及相關包。
pip install winrt-runtime winrt-Windows.UI.Notifications winrt-Windows.Data.Xml.Dom
下載最新版本的 tarball 包(插件包版本 0.1.5,根包版本 0.1.2),執行以下命令安裝:
dsh plugin --profile web add ./baobaolaodie-cc-dsh-notifier-0.1.5.tgz
dsh plugin --profile dsh-tui add ./baobaolaodie-cc-dsh-notifier-0.1.5.tgz
版本說明:插件包版本爲 0.1.5,根包版本爲 0.1.2,兩者是獨立的發佈單元。
典型用法¶
安裝完成後,啓動對應的 Profile 即可自動啓用。
- 啓動會話:
dsh web # 或使用 dsh --profile web
dsh-tui # 或使用 dsh --profile dsh-tui
-
測試通知:
將焦點切換到其他窗口。當智能體觸發中斷事件(如詢問是否繼續)時,屏幕右下角會出現原生 Toast 通知。 -
手動觸發:
用於驗證通知管道是否正常工作:
node scripts/test.mjs permission-request
可選的觸發類型包括:`permission-request`、`ask-user-question`、`stop`、`session-start`。
架構與運行機制¶
插件運行一個事件驅動的本地管道:
- 通知代理:運行在後臺的守護進程(
daemon.mjs),負責維護會話狀態、檢測窗口焦點、去重以及觸發 Python 側的通知。 - Python 執行器:使用
winrt調用 Windows Toast API 渲染通知並處理點擊事件。 - 自動重啓:守護進程在空閒 60 秒後退出;代碼變更或新會話啓動會自動重啓該進程。
適用場景與注意事項¶
- 適用對象:需要在 Windows 環境下使用 DSH Web 或 TUI Profile,且希望減少窗口切換頻率的開發者。
- 權限說明:插件以當前 DSH 進程的權限運行,安裝前建議檢查源碼與許可證(MIT)。
該工具已被驗證兼容 DSH 0.1.0-rc.6。