- Home
- Plugins
- Integrations & Remote
- dsh-notify-win
dsh-notify-win
andyqwe44/dsh-notify-win
Native Windows toast + taskbar flash for task done / approval / ask_user_question; Win10/11, npm install `dsh plugin --profile web add dsh-notify-win`.
Install
dsh plugin --profile web add github:andyqwe44/dsh-notify-winREADME
dsh-notify-win
DeepSeek Harness (DSH) Windows notification plugin โ native toast + taskbar flash when a task finishes or your input is needed.
English | ไธญๆ
๐ธ Screenshots
Task finished

Context compacted

Question โ single select

Toast timeout โ taskbar flash
Screenshots are from Windows 11. The taskbar flash is animated; the screenshot shows the DSH taskbar button highlighted by the system warm pulse.
โจ Features
- ๐ Native Windows toast (bottom-right, Win10/11 system style)
- ๐ก Taskbar flash (
FlashWindowEx) when DSH is in the background - ๐ฑ๏ธ Click-to-focus โ clicking a toast opens DSH and switches to the corresponding session
- โ
Triggers when a task finishes (root agent goes
idle) - ๐๏ธ Triggers when context compaction finishes (
session/eventโcompaction/end) - โ Triggers when your input is needed (approval /
ask_user_question) - ๐ Single-select question toast: native dropdown with up to 5 options + โ่ชๅฎไน็ญๆกโ (custom answer) text input + Cancel / Send
- โฐ Timeout flash fallback: if an interactive toast is ignored and dismissed by the system timeout, the taskbar flashes so the pending question is not missed
- ๐ผ๏ธ Hero banner with the DeepSeek Harness logo (light/dark theme aware)
- ๐ Fire-and-forget: no service, no model approval, no settings namespace
๐ One-line install
dsh plugin --profile web add dsh-notify-win
Requires
pnpmon PATH (corepack enableif missing). See Install for details.
Install
-
Prerequisite: pnpm
corepack enableOr without admin, put a user-level shim in a PATH directory:
Set-Content -Path "$env:LOCALAPPDATA\Microsoft\WindowsApps\pnpm.cmd" -Value "@echo off`r`ncorepack pnpm %*`r`n" corepack pnpm --version -
Install the plugin
# From npm (recommended) dsh plugin --profile web add dsh-notify-win # Or directly from GitHub: dsh plugin --profile web add github:Andyqwe44/dsh-notify-win # If github: is blocked, use SSH: dsh plugin --profile web add git+ssh://git@github.com/Andyqwe44/dsh-notify-win.git -
Verify
dsh --profile web --dump-config # look for: # == dsh-notify-win / - id: dsh-notify-win -
Restart and test
dsh webComplete any task. The first notification self-registers the branded toast identity (Start Menu shortcut + AppUserModelID, one-time). If the toast header still shows
DeepSeekHarnesswithout an icon, restart Explorer once:Stop-Process -Name explorer -Force; Start-Process explorer
Requirements
- Windows 10/11
- DeepSeek Harness, any profile (
webrecommended) - PowerShell 7 or Windows PowerShell 5.1 (5.1 is used automatically as fallback)
- .NET 10 Desktop Runtime (x64) โ only needed for interactive question toasts (
ask_user_question); done/compact toasts use PowerShell and do not require it
Configuration
Edit $env:USERPROFILE\.dsh\profiles\web\cordis.patch.yml:
- id: dsh-notify-win
config:
doneTitle: 'DeepSeek Harness ยท Task complete'
doneBody: 'Your task has finished.'
compactTitle: 'DeepSeek Harness ยท Context compacted'
compactBody: 'Context compaction finished, you can continue.'
questionTitle: 'DeepSeek Harness ยท Action needed'
questionBody: 'An approval or decision is waiting.'
askTitle: 'DeepSeek Harness ยท Question for you'
askBody: 'The assistant asked you something.'
dedupMs: 1500 # suppress duplicate notifications within this window
showProject: true # prefix body with project label
To disable:
- id: dsh-notify-win
disabled: true
Restart after install/disable changes (web profile HMR is disabled by default).
How it works
| Concern | Implementation |
|---|---|
| Trigger "done" | agent/status event with status: 'idle' (root agents only) |
| Trigger "compact" | session/event โ compaction/end (no error) |
| Trigger "question" | approval/request waterfall + tools/execute for ask_user_question |
| Done/compact toast | WinRT Windows.UI.Notifications via notify.ps1 with hero banner, falls back to NotifyIcon balloon |
| Interactive question toast | .NET helper dsh-toast-question.exe (reads dropdown/text input and posts the answer back to the host) |
| Taskbar flash | EnumWindows + FlashWindowEx (FLASHW_TRAY | FLASHW_TIMERNOFG = 14) |
| Execution | Fire-and-forget subprocess (powershell / dsh-toast-question.exe) |
The plugin registers no service, tool, or settings namespace โ a plain consumer row, safe in any profile.
Known limitations
- Native toast text is compact: only about 4 lines are displayed, so long content is truncated.
- The native selection dropdown may collapse when the pointer moves onto the popup; if the toast is then dismissed by timeout, the taskbar flash still reminds you.
FlashWindowExuses the system's warm-pulse highlight; custom colors are not possible.- Windows never flashes the foreground window โ the taskbar button only flashes when DSH is in the background.
- Cancelling a running turn also goes
idle, so a cancelled task still triggers the "done" toast. - Notifications are deduplicated per session within
dedupMs(default 1500 ms). - Interactive question toasts require the .NET 10 Desktop Runtime on the machine.
Development
npm run check # syntax check
npm test # logic smoke test (mocked ctx)
# Show a real toast + taskbar flash:
powershell -NoProfile -File lib/notify.ps1 -Kind done -Title "test" -Body "test"
# Rebuild the interactive question helper:
dotnet publish src/DshToastQuestion/DshToastQuestion.csproj -c Release -r win-x64 --self-contained false -p:PublishSingleFile=true -o lib
Project layout
dsh-notify-win/
โโโ lib/
โ โโโ index.js # Host half: event listeners -> subprocess spawn
โ โโโ client.js # Browser-side click-to-focus / answer polling
โ โโโ notify.ps1 # Done/compact toast + taskbar flash
โ โโโ focus-dsh.ps1 # Focus/launch the DSH Edge PWA
โ โโโ focus-dsh.vbs # Hidden launcher for focus-dsh.ps1
โ โโโ dsh-toast-question.exe # Interactive question toast helper (C#)
โ โโโ dsh-*.png / dsh-*.ico # Branding assets
โโโ src/DshToastQuestion/
โ โโโ Program.cs # C# helper source
โ โโโ DshToastQuestion.csproj
โโโ test/
โ โโโ smoke.mjs # Plugin logic smoke test
โ โโโ headless-overlay.yml
โโโ docs/
โ โโโ assets/screenshots/ # README screenshots
โโโ cordis.patch.yml # DSH bundle patch
โโโ package.json # dsh.bundle declaration
โโโ README.md
โโโ README.zh.md
Links
- ๐ Landing page: https://Andyqwe44.github.io/dsh-notify-win/
Roadmap
- V1 (implemented): done + compact + question toasts; single-select dropdown with custom answer; Cancel / Send; timeout โ taskbar flash fallback.
- V1.1 (experimental / not stable yet): multi-select question toast by numbered input.
- V2 (planned): fully self-contained packaging (no .NET runtime install) and/or background activation so toast buttons submit without any foreground activation.