前言¶
用 DeepSeek Harness 跑長對話或後臺任務時,瀏覽器標籤往往還停在別的頁:助手已經跑完一輪,你未必立刻切回去。ChatGPT 會在標籤圖標上疊紅色數字、標題前加 (N),回合結束還有提示音;原生 DSH 界面沒有這套「未讀回合」反饋。社區插件 dsh-badge(維護者 gaolvsuan,分類:客戶端)把同類能力接到 DSH:在標籤頁 favicon 和 Windows 任務欄按鈕上顯示未讀數,每完成一個回合播放一次提示音,標籤重新可見或窗口回到前臺時可自動清零。
這是什麼¶
dsh-badge 是 DeepSeek Harness 的客戶端組合包插件,MIT 許可,當前 npm 版本 0.8.5(以倉庫 package.json 爲準)。它監聽會話回合結束事件,累加全局未讀計數(不按會話分別統計),用 canvas 在站點原圖標底圖上繪製角標並替換 <link rel="icon">;音效由 Web Audio 現場合成,插件不附帶音頻文件。Windows 桌面端還可通過宿主側 PowerShell 助手,對指定進程窗口的任務欄按鈕調用 ITaskbarList3 繪製覆蓋圖標;macOS 與 Linux 僅保留標籤頁角標、標題前綴與音效。
目錄頁:https://www.skillhub.cn/plugins/gaolvsuan/dsh-badge
源碼:https://github.com/gaolvsuan/dsh-badge
核心功能¶
下面介紹 README 中已寫明、可覈對的行爲。
標籤頁與標題¶
- 標籤頁圖標角標顯示未讀回合數,超過 99 顯示
99+。 - 可選在文檔標題前加
(3) DeepSeek Harness形式的前綴(配置項titlePrefix)。 - 標籤頁重新可見約 1.2 秒後自動清零(受
clearOnFocus控制)。
提示音¶
- 每個計入的回合結束播放一聲;內置三種音色:
chime(兩音鈴聲)、beep(單聲方波)、rise(三音上行)。 - 可設
soundUrl使用自定義音頻;可開errorSound,在失敗回合用低音提示。 minTurnDurationMs默認 1000:短於該時長的回合不計角標、不響,避免極短回合刷屏。- 瀏覽器需用戶至少點擊或按鍵一次後才允許播放聲音,插件在首次交互時解鎖音頻。
Windows 任務欄角標¶
- 在任務欄 DSH 窗口按鈕上疊加數字角標;窗口切回前臺後可清除(
desktopBadgeClearOnFocus)。 - 子代理的回合不計入任務欄角標,與標籤頁邏輯一致。
- 默認按進程名
DeepSeek Harness找窗口;多實例或改名時需配置desktopBadgeWindow,或關閉desktopBadge。
設置頁¶
Host 中路徑:設置 → 插件管理 → dsh-badge。表單提供顏色預設與取色器、角標位置(右下角 / 右上角)、提示音試聽、音量滑桿、最短回合時長,以及提示音、任務欄角標、切回前臺清零等開關。修改後即時生效,停手後自動寫入 Host 設置文檔,無單獨保存按鈕。
安裝與啓用¶
DSH 生態裏插件可來自社區目錄或 npm;裝完需進入 profile 的 bundles,否則不會加載。
從插件市場安裝¶
在 SkillHub 等市場搜索 dsh-badge 後安裝,按市場提示重啓或等待熱掛載。
從 npm 安裝(desktop profile)¶
官方命令如下:
dsh plugin --profile desktop add dsh-badge
資料說明:dsh plugin add 只執行 pnpm,不會改 dsh.profile.bundles。裝完後還要在 profile 的 package.json 裏把 dsh-badge 加進 dsh.profile.bundles 數組,否則插件不會加載。
本地開發(目錄鏈接)¶
把倉庫放到任意目錄,在 profile 的 package.json 中增加依賴與 bundle 條目,再在 profile 目錄執行 pnpm install:
{
"dependencies": {
"dsh-badge": "file:../dsh-badge"
},
"dsh": {
"profile": {
"bundles": [
"dsh-badge"
]
}
}
}
bundles 裏缺少 "dsh-badge" 時,插件同樣不會加載。
配置¶
在 profile 的 cordis.patch.yml 裏覆蓋默認值。插入條目時 id 與 name 都要寫,id 對應 patch 裏的 badge:
- id: badge
name: dsh-badge
config:
volume: 0.6
soundPreset: beep
minTurnDurationMs: 5000
常用配置項(默認值以 README 表格爲準):
| 配置項 | 默認值 | 說明 |
|---|---|---|
enabled |
true |
總開關 |
badge |
true |
是否繪製圖標角標 |
titlePrefix |
true |
標題前 (N) |
sound |
true |
是否播放提示音 |
soundPreset |
chime |
chime / beep / rise |
volume |
0.5 |
0–1,冪曲線 |
minTurnDurationMs |
1000 |
短回合過濾 |
clearOnFocus |
true |
標籤可見時清零 |
badgeColor |
#f5455c |
角標顏色 |
badgePosition |
br |
br 或 tr |
desktopBadge |
true |
Windows 任務欄角標 |
desktopBadgeWindow |
DeepSeek Harness |
任務欄窗口進程名 |
debugLog |
'' |
調試日誌文件路徑 |
更完整的字段見倉庫 README「配置」一節。
典型用法與驗證¶
控制台調試¶
在瀏覽器開發者工具控制台:
__DSH_BADGE__.test(3) // 角標顯示 3 並響一聲
__DSH_BADGE__.clear() // 清零
__DSH_BADGE__.sound() // 只試聽音效
__DSH_BADGE__.config // 當前生效的配置
獨立演示頁¶
倉庫內 demo/index.html 可雙擊打開,加載真實 client.js,用假 sessions 數據驗證角標與音效。帶 ?auto=1 可自動跑一遍「開始回合 → 結束回合」並輸出報告。
任務欄演示(Windows)¶
不裝進 profile 也可單獨看任務欄效果:
npm run demo:taskbar
助手會把計數推到 1、2、3,停兩秒再清掉。
適用場景與注意¶
適合誰: 長時間讓 DSH 在後臺跑回合、需要像 ChatGPT 一樣用角標和短促提示音提醒「又完成一輪」的開發者;Windows 用戶若常最小化窗口,任務欄數字角標比只看標籤頁更直觀。
權限與安全: 插件隨當前 DSH profile 與宿主進程運行;Windows 任務欄能力會拉起常駐 PowerShell 助手(taskbar.ps1),按 HWND 與進程名操作任務欄按鈕。安裝前應閱讀 GitHub 源碼 與 MIT 許可證,確認符合你的部署策略。
已知限制(README):
- 任務欄角標僅 Windows,依賴 PowerShell 助手;macOS / Linux 無任務欄覆蓋。
- 未讀數是全局計數,不按會話拆分。
- Electron 的
setOverlayIcon在本架構下不可用,故採用跨進程ITaskbarList3方案。
社區插件目錄(如 SkillHub)是獨立站點,與 DeepSeek / 幻方無官方從屬關係;DSH 本身遵循「一切皆插件」的擴展方式,dsh-badge 是其中一條客戶端通知增強路徑。
結尾¶
dsh-badge 把 ChatGPT 式的未讀角標和回合結束提示音搬到 DeepSeek Harness:標籤 favicon、標題前綴、Web Audio 提示音,以及在 Windows 上的任務欄數字角標。安裝時記得 market 或 npm 裝完後檢查 profile 的 bundles;需要細調時改 cordis.patch.yml 或用 Host 插件管理裏的表單即可。