前言¶
用 DeepSeek Harness(DSH)跑長回合、後臺任務或子智能體時,窗口不在前臺就很容易被漏掉:回合結束、工具等待批准、智能體提問、後臺命令收尾,都不會主動提醒你。系統自帶的瀏覽器通知往往和應用脫節,點擊也難以回到對應 Session。下面介紹社區插件 dsh-better-push:在 macOS 上把上述事件轉成以 DeepSeek Harness 應用名和圖標展示的系統橫幅,點擊即可聚焦到觸發通知的 Session。
這是什麼¶
dsh-better-push(npm 包名 @ceasarxuu/dsh-better-push,當前版本 0.1.0,MIT 許可證)由維護者 ceasarXuu 發佈,分類屬於 DSH 客戶端 類插件。README 明確標註爲第三方插件,不是 DeepSeek / DeepSeek Harness 官方組件。
定位一句話:在 macOS 上爲 DSH 提供原生通知,覆蓋回合完成、待批准工具、提問、錯誤、後臺任務、子智能體與 workflow 等觸發點,並支持點擊橫幅打開對應 Session。
運行環境要求 DeepSeek Harness 0.2.1-rc.3 及以上、低於 0.3.0,且需 macOS 上的桌面或 Web 界面;插件未發佈到 npm,安裝來源以 GitHub 倉庫或倉庫內 market 索引爲準。
會通知哪些事件¶
插件按事件類型分別開關,默認大多開啓。下表摘自 README,便於對照配置項名稱。
| 觸發條件 | 通知內容概要 | 默認 |
|---|---|---|
| 回合結束 | Session 名、一行回覆預覽、耗時 | 開 |
| 工具等待批准 | Session 名 + 工具名;批准後橫幅自行關閉 | 開 |
| 智能體提問 | Session 名 + 問題正文 | 開 |
| 回合失敗 / 中斷 / 上下文溢出 | 提供商或回合錯誤信息 | 開 |
| 後臺任務結束 | 任務標籤 + 狀態(含 run_in_background、promoted 命令) |
開 |
| 子智能體回合結束 | 父對話名 + preset;點擊打開父 Session | 關 |
| Workflow 運行結束 | Workflow 名 + 停止原因 | 開 |
| 測試通知 | 設置頁或 POST /plugin/better-push/test |
— |
前臺 Bash 調用雖在內部也是 job,但插件讀取 job feed 的 awaited 標誌,只有真正留在後臺跑完的任務纔會推送,避免你在終端前盯着時仍被刷屏。
核心機制(簡要)¶
包內分爲兩半,同一安裝包一併加載:
- Host 半(
index.js) 監聽各 live Session 的session/event(如turn/end、approval/asked等)、user-questions/request瀑布流,以及jobsfeed;做分類、去重、靜默時段過濾,並在/plugin/better-push提供GET /poll、GET /state、GET /health、POST /test等 HTTP 接口。 - Browser 半(
client.js) 約每秒輪詢上述路由,在渲染進程裏發出 UNUserNotification,署名 DeepSeek Harness;桌面端點擊後調用uiWorkspace.openSession(sessionId)。無窗口附着時,Host 可回退到osascript display notification(歸因與點擊行爲與渲染器路徑不同,見後文限制)。
採用輪詢而非 WebSocket,是因爲桌面渲染器運行在 dsh-app://app,同源 fetch 由 Electron 殼轉發到 Host;每秒一次 loopback 請求同時充當「窗口是否在線」的心跳。
安裝與啓用¶
安裝前請先退出 DSH 應用(運行中 profile 會被鎖定)。安裝完成後需 重啓應用一次。配置寫在 profile 的 cordis.patch.yml 中,行 id 爲 better-push。
倉庫 README 給出三種方式,任選其一。
1. 插件市場發現(推薦,版本 pinned 到具體 commit)
在 Settings → Plugins → Discover → market sources 添加索引 URL(只需添加一次),再從列表安裝 “Better Push — macOS notifications”:
https://raw.githubusercontent.com/ceasarXuu/dsh-better-push/main/market/index.json
2. Plugin Manager → Add
可粘貼倉庫 URL、pnpm 簡寫,或 release 打包的 tgz:
https://github.com/ceasarXuu/dsh-better-push
github:ceasarXuu/dsh-better-push
https://github.com/ceasarXuu/dsh-better-push/releases/download/v0.1.0/ceasarxuu-dsh-better-push-0.1.0.tgz
3. CLI
先退出應用,再執行:
dsh plugin --profile desktop add github:ceasarXuu/dsh-better-push
# 或本地目錄:
dsh plugin --profile desktop add /absolute/path/to/dsh-better-push
更新版本時用同樣方式覆蓋安裝;僅 market 索引會把 git 源釘死在 commit 上,github: 安裝會跟蹤默認分支 HEAD。
設置項¶
在 Settings → 通知 / Notifications(側欄獨立一節,與 General、Plugins 並列;同一表單也出現在 Settings → Plugins 對應插件行)中編輯。各開關獨立,修改後立即生效:設置頁寫入 profile patch,加載器把 volatile 字段提交到運行中的插件,瀏覽器半在下次輪詢時採用新策略。
| 鍵 | 默認值 | 含義 |
|---|---|---|
enabled |
true |
系統通知總開關 |
notifyInForeground |
true |
窗口聚焦時也通知;關則僅後臺通知 |
sound |
true |
每條通知播放聲音 |
turnEnd |
true |
回合結束 |
approvals |
true |
工具待批准 |
questions |
true |
智能體提問 |
errors |
true |
失敗 / 中斷 / 上下文溢出 |
jobs |
true |
後臺任務結束 |
subagents |
false |
子智能體 / Agent Teams 隊友回合結束 |
workflows |
true |
Workflow 運行結束 |
preview |
true |
回合結束正文裏放簡短助手回覆預覽 |
minTurnSeconds |
0 |
短於該秒數的回合結束不通知(0 表示全部通知) |
quietHours |
"" |
本地靜默窗口 HH:MM-HH:MM,可跨午夜 |
fallbackWhenNoClient |
true |
無窗口附着時用 osascript |
fallbackSoundName |
Glass |
回退路徑使用的系統聲音名 |
若團隊裏子智能體頻繁收尾,保持 subagents 默認關閉可避免通知轟炸;需要時再單獨打開。
典型用法與自檢¶
從設置頁發測試通知,或使用 Host 提供的測試接口(端口以本機 DSH 爲準,README 示例爲 61670):
curl -s -X POST http://127.0.0.1:61670/plugin/better-push/test \
-H 'content-type: application/json' -d '{"body":"hello"}'
查看插件當前狀態:
curl -s http://127.0.0.1:61670/plugin/better-push/state | jq
clients: 0 表示窗口已關,走 osascript 回退路徑;clientIds 以 denied 結尾表示渲染器無法通知,Host 已對該客戶端回退。
日常使用時,離開 DSH 窗口跑長任務即可依賴默認策略:後臺任務結束、待批准、提問等會推橫幅;回到 Mac 點擊通知即可打開對應 Session。若只希望「人不在窗口前才響」,將 notifyInForeground 設爲 false。
適用場景與注意¶
適合誰:在 macOS 上用 DSH 桌面或 Web 面、經常切到其他應用或合蓋等待 agent 收尾的開發者。不適合在非 macOS 環境指望同等體驗——README 寫明當前 僅 macOS;渲染器半在 Windows/Linux 理論上可工作,但回退邏輯與文案針對 macOS,未在其他系統測試。
權限與安全:插件以當前 DSH 進程權限運行,會監聽 Session 與 job 事件並在本機 loopback 上提供 HTTP 面。安裝前請自行查看 GitHub 倉庫 源碼與 MIT 許可證,確認符合你的安全策略。
已知限制(摘自 README):渲染器路徑無法自定義通知聲音(僅 silent)、無副標題與 action 按鈕;暫無 Dock 角標、通知歷史頁、按 Session 靜音。點擊聚焦爲盡力而爲。關閉 DSH 窗口後若仍要收到提醒,需保持 fallbackWhenNoClient 爲 true,但回退通知的點擊無法打開 DSH;若寧可錯過也不要 Script Editor 歸因,可關閉該選項。
DSH 生態強調「一切皆插件」;社區目錄 skillhub.cn 上的插件頁 與 GitHub 均爲獨立分發渠道,與 DeepSeek / 幻方無官方從屬關係。
結尾¶
dsh-better-push 把 DSH 裏「該你回來處理」的時刻接到 macOS 系統通知上,並按事件類型細粒度開關,減少漏批、漏答與漏看後臺結果。需要安裝說明與完整配置表時,以倉庫 README 爲準:
- 目錄頁:https://www.skillhub.cn/plugins/ceasarXuu/dsh-better-push
- GitHub:https://github.com/ceasarXuu/dsh-better-push