dsh
OpenPetsHQ/openpets将 DeepSeek Harness 的生命周期状态、错误与审批请求,桥接到本地运行的 OpenPets 桌面伙伴。
macOS Dock 角标与提示音:最小化/切走时 Dock 显示未读角标(运行中=红点、跑完=数字)并播放水泡提示音,回到应用自动清除,基于 Badging API。
A DeepSeek Harness (DSH) plugin: while the app is hidden or unfocused, show an unread red dot on the macOS Dock icon and play a bubble chime when a session finishes or needs you. Clears automatically when you return.
Built entirely on the Chrome Badging API (navigator.setAppBadge / navigator.clearAppBadge) — no macOS system settings, no notification permission, no banners.
⚠️ Prerequisite: open DSH Web in Chrome and install it as an app via More → Cast, save and share → Install… so it runs in its own macOS window (PWA).
setAppBadgeonly works inside an installed web app.
| Scenario | Dock icon | Sound |
|---|---|---|
| Session running while you're away | 🔴 plain red dot (no number) = still working | silent |
| Session finished while you're away | 🔴 red number +1 = results waiting | 🔊 bubble chime |
| Session needs your input | 🔴 red number +1 | 🔊 bubble chime (once per away period) |
| You return to the app | auto-cleared | — |
The plugin encodes "is there new info, and what kind" with the three states the Badging API supports:
navigator.setAppBadge(3) // red numbered badge: 3 unread results
navigator.setAppBadge() // plain red dot: a session is running
navigator.clearAppBadge() // clear: you're back, everything is read
Add the plugin package to your DSH profile (e.g. web):
dsh plugin --profile web add github:Bing-Bryan/dsh-unread-dot
Append it to dsh.profile.bundles in the profile's package.json:
"dsh": {
"profile": {
"bundles": [ "...", "dsh-unread-dot" ]
}
}
Restart dsh web, then configure it in Settings → Dock 角标与通知.
| Setting | Default | Description |
|---|---|---|
| Dock badge | on | Master switch: number badge when finished/waiting, cleared on return |
| Activity dot while running | on | Plain red dot while a session is generating a reply during minimize |
| Chime (bubble pop) | on | Plays the built-in bubble sound (bubble.mp3, 0.4s) on completion / needs-you |
| Test chime | button | Plays the bubble pop once to verify the sound |
sessions.list) and tracks read/unread state: when the window regains focus, all current attention states are marked as readAudio, with a cross-window lock so multiple open windows only sound oncesetAppBadge requires an installed web app contextMIT © 2026 Bing-Bryan
The built-in sound effect bubble.mp3 is an edited clip based on Pixabay audio: Nature bubble in water (Pixabay license: free for commercial use, no attribution required).