DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins
M

@apodemakeles/dsh-macos-notify

Macos Notify

DeepSeek Harness (DSH) plugin: macOS turn-completion notifications and an unfocused-completion unread dot.

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add github:apodemakeles/dsh-macos-notify#bcd6874e7ef5408e859f22404ddf02fc79116560
READMECompatibilityVersions
Notification settings

Compatibility and provenance

Macos Notify is published as @apodemakeles/dsh-macos-notify and currently resolves to version 0.1.2. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
github
Registry updated
10/20/2026

Versions

0.1.2stable
10/20/2026

Related plugins

Loading related plugins…

Latest
0.1.2
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
Unavailable
Files
Unavailable
Surface
web
License
MIT
Source
github
GitHub
★ 0
Weekly downloads
0
Last push
10/20/2026
View source ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue

Related plugins

More verified plugins in integrations-communication.

Acp App@deepseek-ai/dsh-acp-appThe dsh ACP profile bundle: automation-only JSON-RPC stdio and process lifecycle over dsh-baseDs Botds-botDS Bot: a team of long-lived Bots for DeepSeek Harness, with Main Bots, Bot-to-Bot messages and group chatsAb Wechat Scrapedsh-ab-wechat-scrape--- description: "The out-of-tree wechat_scrape tool: retrieves WeChat official-account articles, filters promotional blocks, and saves each as a Markdown file, for maintainers of this machine's dsh profiles." kind: "package-reference" ---Pocketdsh-pocketPut DeepSeek Harness in your pocket: one package, one settings page, and scan a QR code on your phone to access DSH on your computer in sync (LAN + public network, real-time screen mirroring).

README

@apodemakeles/dsh-macos-notify

English | 中文

A DeepSeek Harness (DSH) plugin: when a conversation turn finishes while the harness window is not in the foreground, show a macOS system notification. It also leaves an in-app unread dot on sessions that finished while you were away.

Status: v0.1.2, distributed from GitHub. The unscoped npm name dsh-macos-notify belongs to another package, so install this plugin from the @apodemakeles scope through GitHub.

Screenshots

Notification settings

Notification settings

Unread completion dot

Unread completion dot

What it does

turn/end reasonnotification
completed, max-tokens, blockedtitle = session name, body = completed (localized)
errortitle = session name, body = failed (localized)
aborted, interrupted, unknownsilent
subagent sessionssilent
  • Notifies only while the harness window is unfocused (document.hasFocus() === false).
  • Clicking a notification focuses the window and opens that session.
  • A completion while the window is unfocused also leaves a small unread dot on the session row, even when the session stayed in the main view. The dot is green for success and red for failure; it clears when you click the row, start another run, or click the notification. When the official UI already shows its own background-completion dot, this plugin does not add a second one.
  • No history replay: the first projection value after startup or reconnect only seeds the baseline.
  • Settings → Notifications has the master switch (default on), permission state, and request-permission / test-notification buttons. The switch is stored in the browser's localStorage.

Install

Desktop app

The desktop profile is managed by the Electron app, so dsh plugin --profile desktop is refused. Add the dependency and the bundle to the profile the same way the app's plugin manager does:

DSH_HOME=${DSH_HOME:-$HOME/.dsh}
PROFILE="$DSH_HOME/profiles/desktop"

pnpm --dir "$PROFILE" add github:apodemakeles/dsh-macos-notify

Then add @apodemakeles/dsh-macos-notify to dsh.profile.bundles in $PROFILE/package.json:

{ "dsh": { "profile": { "bundles": [
  "@deepseek-ai/dsh-base",
  "@deepseek-ai/dsh-web-app",
  "@apodemakeles/dsh-macos-notify"
] } } }

Restart the app. Plugins → Installed lists the plugin, and Settings → Notifications shows the switch.

Web profile

dsh plugin --profile web add github:apodemakeles/dsh-macos-notify
# restart dsh web

Release tarball

Each GitHub release includes apodemakeles-dsh-macos-notify-<version>.tgz:

dsh plugin --profile web add file:/path/to/apodemakeles-dsh-macos-notify-0.1.2.tgz

macOS notification permission

The first notification needs permission: click Request permission or Send a test notification in Settings → Notifications, then allow DeepSeek Harness in System Settings → Notifications.

A Focus mode can silently hold notifications (delay delivery) even when the app is allowed. Add DeepSeek Harness to that Focus mode's allowed apps, or turn the Focus mode off. The in-app unread dot is independent of Focus.

How it works

  • Host half (src/index.ts, src/projection.ts) registers a turn-notify session projection. It folds turn/start and turn/end.reason and exposes { turn, reason } to the client. No webServer route, launch token, or Electron shell code.
  • Client half (src/client/index.ts) watches the session list, detects a fresh projection turn, applies the master switch / subagent filter / reason mapping / focus gate, shows a browser Notification, and opens the session with uiWorkspace.openSession(id) on click. The unread dot is rendered through the official sidebar.session.row.leading slot, only while the official status dot is idle.
  • The host bundles zod for the projection schema; React stays external in the client and comes from the shell's module table.
  • No network requests: session names and turn reasons stay local.

Compatibility

  • DSH 0.2.x (engines.dsh: >=0.2.0-rc.1 <0.3.0); tested with the desktop app 0.2.1-rc.2 and CLI 0.2.0-rc.1.
  • macOS for notifications (browser/Electron Notification API); the unread dot is platform-neutral.
  • Node >=22.

Development

git clone https://github.com/apodemakeles/dsh-macos-notify.git
cd dsh-macos-notify
pnpm install
pnpm typecheck
pnpm test
pnpm build

pnpm build produces:

  • lib/index.js — host ESM; registers the projection.
  • lib/client.js — browser CJS bundle wrapped in the window.__ModuleLoader__.load factory.
  • lib/types/** — declaration files.

For local development, install the checkout into a profile with dsh plugin --profile web add link:$(pwd) (or the equivalent pnpm --dir "$PROFILE" add link:$(pwd) for the desktop profile).

License

MIT