dsh-session-notification
Session-state notification plugin for the dsh web GUI: session completed/failed, question-asked, and permission-requested alerts with configurable built-in or custom sounds and browser notifications, plus a Notifications settings section
What it is
Session-state notification plugin for the dsh web GUI: session completed/failed, question-asked, and permission-requested alerts with configurable built-in or custom sounds and browser notifications, plus a Notifications settings section
How to install
Run this in the DSH web profile, then refresh the page.
$ dsh plugin --profile web add @dingyi222666/dsh-session-notification@0.2.7
DSH versions accepted
Undeclared
Author and traction
dingyi222666 · ★ 32 · Updated 2026-10-26
About this plugin
dsh-session-notification
English | 中文
A notification plugin for the dsh web GUI. When a session finishes, hits an error, asks you a question, or needs your permission, you get a heads-up: a sound plays, and when you step away from the tab a system notification keeps you in the loop. Screenshots Install
Everything lives in this plugin — no harness (host) changes: The settings section is registered through the client slot system (settings.section), exactly like official sections. Preferences persist in the browser (localStorage) and sync across tabs; nothing requires a host settings namespace or any other host-package change. (dsh 0.1.7 derives plugin config forms from Loader entries, so the node half has no namespace to reserve and stays inert.) The settings shell maps only its own section ids to nav icons, so the Notifications nav row shows the shell's default gear. The four notification kinds Each kind can be enabled or disabled and reassigned to any of the four built-in sound effects (or muted). The four sounds are synthesized with Web Audio — no audio files are shipped — and the master volume is adjustable with the official-style slider (0–100%). A fixed loudness boost (~+6 dB) with a soft limiter on the playback chain makes every sound noticeably louder without distortion; custom audio feeds the same chain. The shared AudioContext is suspended as soon as playback is over and resumed by the next sound, so an idle notification never keeps the system audio stream
Beyond the four built-in sounds, each kind accepts your own audio file (mp3/ogg/wav, up to 1 MB): pick Custom audio on a kind's row to upload one, and it replaces the built-in for that kind — with a Replace and remove affordance, plus the Custom audio in use tag. Custom files are stored browser-locally (they are device media, not shared preferences). Browser notifications & the quiet default
Browser (system-level) notifications are off by default; turning the switch on asks for the browser's permission first (a user gesture). Once granted, a notification is shown when the event's session is not the one you are reading, or when the tab is in the background. Notifications carry the page's own icon (the favicon the harness serves). A completed session's notification carries its final reply text (the last assistant message). Clicking a notification focuses the page and opens that session (Web and desktop alike). The Test notification button in the section sends one immediately to verify the channel once permission is granted.
The session you are reading stays quiet by default — its own events don't interrupt you while you are actually watching it. The Current session alerts picker widens that: Notify for picks the scope (default Main, after subagents): *All sessions* alerts for every session including subagents; *Main only* alerts for the main session as soon as it goes idle; *Main, after subagents* holds that alert until every subagent the main session spawned has finished, so a run that only paused between subagent waves never interrupts you early (failures always alert immediately). Desktop app
The plugin runs unchanged inside the dsh desktop application — the Electron shell loads the same Web client and plugin graph. Desktop notifications are native OS notifications: the shell grants notification permission by default, so turning Browser notifications on is enough and no permission prompt appears. A notification carries the application icon (the page favicon is used on Web; under dsh-app:// the page icon is skipped so the packaged app icon shows instead), is marked silent so the OS alert sound never doubles the plugin's own sound, and clicking one restores/focuses the window through the shell's app activation and opens that session's conversation — closing the window only hides it.
The desktop app owns $DSH_HOME/profiles/desktop and the CLI refuses to manage it, so install the p
Similar plugins
dsh-purge
让 AI 更专注地辅助学习与动手实验:DSH 附加组件,提供状态自检、提示词与规则管理、本机备份与回滚。
dsh-unrestricted
Toggleable unrestricted mode for DeepSeek Harness: fuses execution rules into the active standard, ptc, cordis, minimal,…
dsh-univer-office
DSH × Univer integration with a bundled collaboration Gateway and Viewer: inline previews, live floating Worktree window…