用 dsh-web-ui-notify 給 DeepSeek Harness 網頁補上審批與完成通知

前言

DeepSeek Harness(命令名 dsh)把智能體跑在本地 Web 界面裏。一輪編碼或排查經常要等很久:工具要你點審批、模型突然提問、或者這一輪已經寫完了,這些提示都停在前臺標籤頁。瀏覽器一切走,請求就默默等着,人回頭才發現 DSH 卡在確認框上。

DeepSeek 官方把 Harness 的設計寫成「一切皆插件」:模型、工具、會話、沙箱、循環和 UI 都是可替換插件,不必改 Harness 源碼。社區目錄 deepseek-harness-plugin.com 收錄了不少第三方擴展,它是獨立站點,與 DeepSeek / 幻方沒有官方從屬關係,不能當成官方應用商店。

dsh-web-ui-notify 是「通知與集成」分類裏的一款 Web UI 客戶端插件。它不給模型加工具,只在你離開當前標籤頁時,用瀏覽器的系統通知把審批、提問和輪次完成搬到桌面,點擊通知還能跳回對應會話。本文按目錄詳情頁、倉庫 README / README.zh.md、package.json、CHANGELOG 和 DeepSeek Harness 官方說明覈對後整理。

這是什麼

dsh-web-ui-notifybill9109 維護,npm 包名是 @bill9109/dsh-web-ui-notify,許可證 BSD-3-Clause,主要語言 TypeScript,當前倉庫版本爲 0.1.3(2026-08-14)。社區目錄 2026-08-03 收錄;寫作當日(2026-08-17)GitHub 倉庫顯示 17 stars,目錄頁仍顯示 12 stars,星標數以倉庫頁面爲準。

它解決的問題很具體:Web UI 是 DSH 向你提問的唯一前臺。人在看別的頁面時,工具審批、DSH 提問或一輪幹完了都不會主動找你。這個插件把這些時刻變成原生系統通知,標題帶會話名,點一下打開那條會話。

package.json 把它聲明成 DSH bundledsh.bundle + dsh.client),client 平臺是 web。倉庫 README 寫明:通過標準 dsh plugin 裝進 web profile 即可,無需修改 DSH 源碼、無需手寫 patch。倉庫已提交構建產物 lib/,裝完不用再構建。運行時沒有額外 npm 依賴,瀏覽器側對 react、react/jsx-runtime、ui-slots 的 require 走 DSH 前端自己的模塊表。

目錄同一分類裏還有 dsh-notification 等回合完成通知插件。dsh-web-ui-notify 的側重點不同:審批和提問也會響,後臺會話同樣通知,並且點擊會跳到對應會話,而不是隻把窗口拉到前臺。不要把兩套安裝命令混用。

核心功能

當前會話需要你介入時通知

工具審批和 DSH 提問會彈出通知,正文帶上下文:審批顯示越權原因,提問顯示問題原文。標題帶會話名,例如「重構數據庫 · 需要審批」。

後臺會話同樣通知

沒在看的會話需要審批或提問時,也會彈同樣帶上下文的通知;整個後臺會話幹完也會提醒。點通知會直接打開那條會話,而不是隻回到當前正在看的那一條。

當前會話每輪幹完都通知

當前會話每一輪結束都會通知。正文是這一輪最終回答的開頭(80 字以內);純工具輪沒有最終回答時,顯示輪次號。正常結束、被中斷、出錯都會通知。

只在離開標籤頁時響,同一件事只響一次

頁面在前臺時,DSH 自己已經有提示,插件不會再彈一遍。同一件事只通知一次:斷線重連不會重複響,打開帶歷史記錄的會話也不會把舊輪次全刷一遍。通知不會幾秒後自動消失,會一直等到你處理。

設置行跟 DSH 語言走

開關在 設置 → 通用 → 桌面通知,中英文跟隨 DSH 界面語言。設置存在 profile 的 Settings provider 裏,升級插件不會丟掉。

設置行有四種狀態:

狀態 含義
已開啓 正常工作
未授權 點按鈕向瀏覽器申請權限
已被瀏覽器阻止 以前拒絕過,要去瀏覽器的站點設置改回允許,只點按鈕無效
瀏覽器不支持 當前環境沒有 Notification API

安裝與啓用

插件以當前 dsh 進程的權限運行,安裝時可能執行代碼。裝之前應先看倉庫源碼和 BSD-3-Clause 許可證。

社區目錄頁給出的安裝命令是:

dsh plugin add github:bill9109/dsh-web-ui-notify

這是目錄頁的原文寫法。該插件的 client 平臺聲明爲 web,倉庫 README 因此要求裝進 web profile:

dsh plugin --profile web add github:bill9109/dsh-web-ui-notify

命令內部會在 profile 目錄執行 pnpm add,並把聲明瞭 dsh.bundle 的包追加進 dsh.profile.bundles。目錄頁還提示:如需可復現安裝,可固定 commit 哈希:

dsh plugin add github:bill9109/dsh-web-ui-notify#<commit>

開發調試也可以先 clone,再用本地路徑安裝:

dsh plugin --profile web add /path/to/dsh-web-ui-notify

package.json 要求 Node.js ^20>=22。CHANGELOG 記載:0.1.2 起適配 dsh 20260812 快照,並把包名從 @dsh-external 改成 @bill9109。README 還說明,profile 體系之前的舊版 DSH 用 pnpm --filter @deepseek-ai/dsh addconfig.yaml20260806 快照起改爲上面的 profile 方式。若你的 DSH 仍是舊版,要用 git 歷史裏的舊 README,不要套現在這條命令。

裝完後按你平時啓動 DSH Web UI 的方式重啓 Web UI,再硬刷新瀏覽器頁面,插件纔會出現。之後還要授權瀏覽器通知權限,否則插件是靜默的:

  1. 打開 設置 → 通用 → 桌面通知,點開啓桌面通知
  2. 瀏覽器彈出詢問時選允許,狀態變成「已開啓」
  3. macOS 還要在 系統設置 → 通知 裏允許你的瀏覽器

升級:

dsh plugin --profile web update github:bill9109/dsh-web-ui-notify

卸載(注意包名帶 scope):

dsh plugin --profile web remove @bill9109/dsh-web-ui-notify

卸載後同樣要重啓 web 並硬刷新瀏覽器。本地路徑安裝則對替換後的 checkout 重新執行 add

典型用法

  1. 確認設置行是「已開啓」,瀏覽器對該 DSH 站點的通知權限是「允許」。
  2. 切到別的標籤頁,讓當前會話跑一輪,或故意觸發一次工具審批 / DSH 提問。此時應彈出系統通知,標題帶會話名。
  3. 點通知,瀏覽器應回到 DSH 頁面並打開通知裏的那條會話,而不是停在你剛纔看的其他會話。
  4. 再開一條後臺會話,切走後等它需要審批或整段幹完,確認後臺會話也會響,並且點擊能跳過去。
  5. 回到 DSH 標籤頁前臺再跑一輪:按 README,此時不應再彈桌面通知,頁面上的原有提示即可。

裝完後如果設置裏沒有這一項,README 建議先確認已經重啓 Web UI 並硬刷新,再用下面這條檢查 bundle 是否寫進了 web profile:

dsh --profile web --dump-config | grep web-ui-notify

沒有通知出現時,按倉庫的故障排查表逐項看:開關是否「已開啓」、站點權限是否「允許」、macOS 是否允許瀏覽器發通知,以及你是否已經切到別的標籤頁。狀態顯示「已被瀏覽器阻止」時,必須到瀏覽器站點設置改回允許。顯示「瀏覽器不支持」則當前環境沒有 Notification API,桌面通知無法工作。重啓後通知突然沒了,多半是瀏覽器重置了站點權限,需要重新授權。

適用場景與注意事項

比較適合這些情況:

  • 已經在用 dsh web,人會切去看文檔、郵件或別的倉庫,但工具審批和提問仍卡在原標籤頁。
  • 同時開着多條會話,需要知道後臺那條在等你,並且點通知能直接跳過去。
  • 不只想知道「跑完了」,還想在模型提問、工具越權審批時被叫回來。

使用前要清楚邊界,這些都寫在倉庫 README 裏:

  1. 只覆蓋 Web UIdsh.client.platformweb,不要指望它給終端 TUI 或無界面 profile 彈系統通知。
  2. 標籤頁要開着,人要離開前臺。頁面在前臺不重複通知;標籤頁關掉之後,瀏覽器也不會再替你彈。它不是操作系統級的常駐守護進程。
  3. 必須授予 Notification 權限。沒授權時瀏覽器直接禁止彈通知;曾經拒絕過的站點,只能去瀏覽器設置改,插件按鈕幫不上。
  4. macOS 還有一層系統開關。瀏覽器允許了,系統設置裏如果攔了該瀏覽器,仍然看不見橫幅。
  5. 沒有按結束原因拆開關,也沒有關鍵詞規則。當前會話每輪結束(含中斷和出錯)都會通知。需要按 completed / error 過濾、或用包含 / 排除規則壓噪音時,目錄裏的 dsh-notification 是另一條路,兩者不要混裝命令。
  6. 點擊會打開對應會話。這是它和部分只聚焦窗口的通知插件的差別,但也要求 Web UI 仍在跑。

目錄頁的安全提示同樣適用:插件以當前 dsh 進程權限運行,安裝時可能執行代碼。這款插件聲稱自己是 Web UI 客戶端 bundle、零運行時依賴、不改 DSH 源碼,但仍應自行覈對源碼和許可證後再裝。可復現安裝請固定 commit 哈希。

小結

dsh-web-ui-notify 把工具審批、DSH 提問和輪次完成從 Web 前臺挪到系統通知欄,標題帶會話名,點擊跳回對應會話,並且只在你離開標籤頁時響。它走標準的 web profile 安裝,不改 Harness 源碼。適合已經在用 DSH 網頁界面、又經常把標籤頁切走的人。

目錄頁:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-web-ui-notify/

GitHub:https://github.com/bill9109/dsh-web-ui-notify

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜