Native Windows system notification (Notification Center toast) when a task completes: goal completion or agent turn end.
Install
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:YuMo226/dsh-task-notify
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).
README
A DeepSeek Harness (DSH) plugin that shows a native OS system notification whenever a task completes — goal completion or agent turn end. Windows / macOS / Linux.
Features
- Native OS notifications on every platform: Windows toast, macOS Notification Center, Linux libnotify — real system banners, not blocking dialogs.
- Two "task done" triggers (configurable):
- goal completes (
phase = complete) - an agent turn ends normally
- goal completes (
- Zero runtime dependencies — Node built-ins + OS-native commands (PowerShell, osascript, notify-send).
- CJK-safe — Windows text travels via UTF-8 temp files so Chinese/Japanese/Korean content is never corrupted.
- Anti-spam rate-limit between notifications.
Platform support
| OS | Mechanism | Requires |
|---|---|---|
| Windows | WinRT toast (Notification Center) | nothing (AUMID registered at runtime) |
| macOS | osascript display notification |
macOS 10.8+ |
| Linux | notify-send (libnotify) |
libnotify (notify-send); falls back to zenity, then kdialog |
How it works (Windows)
- On first notify, the plugin registers an AppUserModelID (
dsh.tasknotify) underHKCU\Software\Classes\AppUserModelIdsoCreateToastNotifiercan deliver to the interactive desktop. - When a task completes, it writes the title/body to UTF-8 temp files and runs a small PowerShell script that shows a WinRT
ToastText02notification viaToastNotificationManager. - Temp files are removed afterwards. Failures are logged (never thrown) so they never break an agent turn.
Each notification (and any failure) is recorded in an audit log at <home>/task-notify.log.
Install
As a dsh bundle, installable via the profile plugin manager:
dsh plugin --profile web add dsh-task-notify
Or install the repo directly (npm alias spec):
dsh plugin --profile web add github:YuMo226/dsh-task-notify
Manual install (no pnpm)
Copy this package into the profile's hoisted node_modules and add a loader entry:
- insert:
- id: notify
name: dsh-task-notify
config:
onGoalComplete: true
onTurnEnd: true
title: 'DeepSeek Harness'
minIntervalMs: 4000
Restart
dsh webafter installing for the plugin to mount.
Configuration
| Key | Type | Default | Description |
|---|---|---|---|
onGoalComplete |
boolean | true |
Notify when a goal completes. |
onTurnEnd |
boolean | true |
Notify when an agent turn ends normally. |
title |
string | DeepSeek Harness |
Leading line of the notification. |
minIntervalMs |
number | 4000 |
Minimum ms between two notifications (anti-spam). |
Troubleshooting
- Windows: make sure the notification center is on and Focus Assist is not set to "Alarms only" / "Priority only".
- Linux: install libnotify (provides
notify-send); if missing, the plugin falls back to zenity, then kdialog. - If no notification appears, check
<home>/task-notify.logfor an error line and open an issue.
License
Links
More in this category
xmanrui/dsh-im★ 1548
Connect IM bots to DeepSeek Harness via QR codes or bot credentials (9 channels: Feishu, WeChat, DingTalk, WeCom, QQ, Slack, Telegram, Discord, and WhatsApp).
shaobeichen/dsh-pocket★ 1415
Remote phone access to the DSH Web UI: scan a QR code for LAN or public (cloudflared tunnel) access with real-time sync, a mobile-adaptive layout, and a settings tab.
inclusionAI/Avernet#deepseek-harness-channel-bcn★ 574
Connects DeepSeek Harness to Avernet's Bot Collaboration Network over WebSocket V2, with automatic onboarding, isolated agent sessions, tool-call events, and multi-bot routing tools.
omdsh-dev/dsh-notification★ 86
Desktop notifications for turn completions, with per-outcome controls and keyword rules.
whyihaveyou/dsh-suite#plugin-notify★ 57
IM webhook and local notifications on turn completion, errors, or approval (Feishu/WeCom/DingTalk/Slack/Discord/custom).
omdsh-dev/dsh-lark★ 55
Lark/Feishu bot channel for DeepSeek Harness: each chat drives its own agent, and tool approvals, model questions, and plan reviews return as cards answered by a button or a reply. Switch workspace and model from the chat (`/cd`, `/model`, `/new`), and run several bots that keep separate sessions and can hand turns to each other in one group.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.