DSH Hub

omdsh-dev/dsh-notification

dsh-notification

UIWeb UI85 GitHub stars· updated 2026-09-01

Desktop notifications for DeepSeek Harness turn completions, with per-outcome controls and include/exclude keyword rules.

Install

npx @deepseek-ai/dsh plugin --profile web add https://github.com/omdsh-dev/dsh-notification/archive/refs/tags/v0.1.4.tar.gz

Restart `dsh web` after install. Bundle APIs can change during the developer preview.

README badge

dsh-notification DSH Hub badge
[![DSH Hub](https://dshhub.dev/badge/dsh-notification.svg)](https://dshhub.dev/plugins/dsh-notification)

Paste this into your README. The star count updates with every catalog sync.

From the README

Excerpt from omdsh-dev/dsh-notification, cleaned of badges and images.

dsh-notification

Desktop notifications for the DeepSeek Harness web GUI. When a session finishes a turn, the browser shows a system notification (via the Notification API), so you can switch tabs and still know when DSH is done. Per-outcome toggles and include/exclude keyword rules control exactly which completions notify.

No harness change is needed: the host contributes a session projection (a bounded summary of each session's last completed turn), and the client watches the session list's completion reminder and applies its own persisted preferences.

host:  notification projection (last turn's reason/text/tools) --session/projection--> browser
client: session list completion reminder (live, dedup) + persisted settings
        -> permission + current-session visibility gate
        -> new Notification("DSH finished", { body: "deploy done" })

Install

dsh plugin --profile web add https://github.com/omdsh-dev/dsh-notification/archive/refs/tags/v0.1.4.tar.gz

Restart the web server so the host half and the served client bundle pick up the plugin. The default dsh web profile has the required client composition (the session list, the settings shell, and locale).

Version 0.1.4 supports both the 0.1.1 and 0.1.2 Harness client package layouts and projection contracts.

The settings section lives under Settings > Notifications.

Settings

SettingDefaultEffect
Enable notificationsonMaster switch; off stops every notification while keeping rules.
Notify on completed / error / aborted / blocked / token limitcompleted + error on, rest offWhich turn-end reasons notify (the host projection reports the reason).
Keyword rulesnoneInclude/exclude filters matched against the session title, the turn's reply text, and its tool names. Include rules: at least one must match. Exclude rules: a match suppresses. Rules support literal or regex matching with an optional case-sensitive flag.
Require manual dismissoffThe notification stays until dismissed.
Only notify when the task is out of viewonSuppress a notification only when its session is currently in view. A completion still notifies while the page is hidden or while another session/workspace is open. Turn it off to notify even for the session being watched. Notifications for the same session replace each other.

Preferences persist in the browser (localStorage). The section also grants browser permission and sends a test notification.

Configuration

Host-side tunables live on the plugin row in cordis.yml:

- id: dsh-notification
  name: dsh-notification
  config:
    maxBodyChars: 400      # projection body budget; longer replies are ellipsized host-side

Model experience

AspectEffect
Token costNone — notifications are UI-only and never enter a request.
Tool callsNone — the model gets no new tool.
Session logUnchanged — the projection reads the existing log and adds no events.
PromptUnchanged — no system-prompt section is registered.

Permission boundary

…

Related plugins