CrombastiC/dsh-macos-notify

Sends native macOS notifications for DeepSeek Harness turns — completed, failed, blocked, aborted and waiting-for-approval — with per-event sounds, notification filtering, multi-task coalescing and a first-level Settings page in the DSH Web UI. It adds separate sounds for completed/error/aborted/approval events (any can be muted), a system sound picker with in-page preview via afplay, managed custom sound import and deletion, a 1.5-second coalescing window plus optional digest mode so parallel tasks do not flood Notification Center, recent notification diagnostics explaining whether an event was sent/queued/suppressed/failed, a six-event test matrix, daily quiet hours with temporary pauses, duplicate-error suppression with a configurable cooldown, project path rules for muting / error-only / important-project bypass, minimum turn-duration filtering, optional Web-tab focus suppression and macOS HID idle-time gating, and OSC 9 notifications for supported terminals.

uncategorized ★ 0 updated 2026-08-17
View on GitHub ↗

Install

dsh plugin --profile web add dsh-macos-notify

README install: add the published npm package to the web profile, then start dsh web. Documented alternatives are the explicit-CLI form npx -y @deepseek-ai/dsh plugin --profile web add dsh-macos-notify, the GitHub source form (dsh plugin --profile web add github:CrombastiC/dsh-macos-notify), the full git URL form (installs a snapshot of main) and a local checkout form (dsh plugin --profile web add .). Remove it with dsh plugin --profile web remove dsh-macos-notify. After installing, open Settings → macOS notifications from the first-level settings navigation. The README warns against absolute-path bundle overlays in cordis.dev.yml — install the local package through plugin add instead.

Compatibility

macOS only; Node.js 22 or newer; DeepSeek Harness with the web profile. Settings namespace is macos-notify and values changed from the Web card apply live without restarting DSH.

Details

Recent updates

README documents per-option defaults (minDurationSec 30, coalesceMs 1500, duplicateWindowSec 300, quiet hours 23:00–08:00 with overnight ranges, sounds.completed Glass etc.) and the decision log: the last 50 decisions, duplicate-error cooldown state and recent session titles persist to ~/Library/Application Support/dsh-macos-notify/state.json across DSH restarts and contain no message content. Channel auto uses OSC 9 on recognized terminals (iTerm2, WezTerm, Kitty, Ghostty, Warp; tmux wrapped in DCS passthrough) and falls back to osascript.

FAQ

How do I install dsh-macos-notify?
Run dsh plugin --profile web add dsh-macos-notify, then start dsh web. GitHub source (github:CrombastiC/dsh-macos-notify) and local-checkout forms are also documented. Remove it with dsh plugin --profile web remove dsh-macos-notify.
Can I control which events trigger a notification?
Yes — completed, error, aborted and approval events each have a switch, plus minimum turn-duration filtering, project path rules (mute / errors-only / important bypass), daily quiet hours with optional critical alerts, and temporary pauses. All apply live from the Settings card.
Do the notifications contain my message content?
No — the README states the persisted decision history (last 50 decisions, duplicate-error state, recent session titles) does not contain message content.

More plugins in uncategorized

Browse more in uncategorized

Guides for uncategorized plugins