Skip to main content
T

dsh-notifier

thewolfwalker/dsh-notifier

DSH notification & remote-control plane: one `notify()` API across 28 outbound channels, six inbound control channels, phone approvals/questions/task control, a Native DSH Notify & Control UI, live outbound hot-apply, multi-agent routing, and zero runtime dependencies.

Install

dsh plugin --profile web add github:thewolfwalker/dsh-notifier

README

dsh-notifier — Agent ⇄ User, across every channel

dsh-notifier

Your agent, in your pocket.

Bring DeepSeek Harness to your phone: notifications, approvals, questions, remote conversation, and task/session control across 28 outbound and 6 inbound channels.

简体中文 · Quick Guide · Troubleshooting · Compatibility

npm version MIT license dshfind

dsh-notifier@0.13.1 · test/ 2011 tests · 2011 automated contract tests

What it does

dsh-notifier is the notification and remote-operations layer for DeepSeek Harness. It is built for the common workflow of leaving the DSH window while still wanting to know what your agent is doing — and respond when it needs you.

  • Get notified anywhere — task completion, approvals, errors, long-running status, and model-triggered notifications.
  • Respond from your phone — approve/reject, answer ask_user, continue a conversation, steer a running turn, or switch tasks/sessions.
  • Manage it inside DSH — the Native Notify & Control panel is the daily control surface; the loopback Advanced Console remains available for recovery and deeper management.
  • Keep failures contained — unsafe or unknown inbound actions fail closed; outbound channel failures do not take down the rest of the notifier.

Screenshots

dsh-notifier unlock gate dsh-notifier setup wizard on desktop
dsh-notifier setup wizard channel selection dsh-notifier configured channels on desktop
dsh-notifier setup wizard on a narrow viewport dsh-notifier channels on a narrow viewport

Install

Ask an AI to install it for you

Copy this sentence to an AI/agent that can operate your terminal:

Install or upgrade the latest stable dsh-notifier on this machine. First detect the active DSH profile and current install source, verify the installed DSH/Node versions are compatible, and preserve the existing configuration. Do not modify unrelated plugins or print any token/secret. Install from the official package, restart the relevant DSH Host once, verify the actual installed version and the Notify & Control entry, then report the commands you ran, the result, and any remaining problem. Project: https://github.com/THEWOLFWALKER/dsh-notifier

The full AI installation procedure is in AI_INSTALL.en.md.

Install manually

dsh plugin add dsh-notifier@latest --profile <profile-name>

Restart DSH once so the new Host plugin and client.js are loaded. Then:

  1. Open Notify & Control from the DSH sidebar, or Plugins → dsh-notifier.
  2. Choose a channel you already use.
  3. Enter its credentials and choose Save and test.
  4. If the provider only confirms API acceptance, verify the message on your device; a provider acceptance is not presented as end-to-end delivery proof.

Outbound configuration changes are hot-applied after installation. Inbound transports can still show Restart pending when their long-lived connection must be recreated.

Pick the mode you need

I want to…Start here
Only receive task notificationsConfigure one outbound channel in Notify & Control
Approve / answer questions from my phoneAdd a supported inbound channel, then pair your identity
Talk to the agent remotelyPair your identity, then send plain text in the private bot chat
Steer a running taskSend ! <instruction> from the bound private chat
Manage members, bindings, sessions or recoveryOpen the Advanced Console from Native
Automate or run headlessUse YAML / CLI from the guide

Channels

Outbound (28): Bark, Bell, Chanify, Desktop, DingTalk, Discord, Feishu, Google Chat, Gotify, iGot, Mattermost, ntfy, OneBot 11, PushDeer, Pushover, PushPlus, Qmsg, QQ official bot, ServerChan, Slack, Microsoft Teams, Telegram, Webhook, WeCom robot, WeCom app, WPS Bot, WxPusher, Xizhi.

Inbound control (6): Telegram, Feishu, QQ official bot, WxPusher, WeChat iLink, DingTalk.

Full channel matrix (generated from the channel registry)
typeChannelAuthFree?
barkBark (iOS)device key (or self-host URL)✅
bellTerminal bell (local)—local
chanifyChanify (iOS)token (or self-host)✅
desktopDesktop notification (local)— (Windows needs BurntToast module)local
dingtalkDingTalk custom robotwebhook + secret (HMAC sign)✅
discordDiscord webhookwebhook URL✅
feishuFeishu custom botwebhook (+ sign secret)✅
gchatGoogle Chatspace webhook URL✅
gotifyGotifyserver URL + app tokenself-host
igotiGot (iOS)push key✅ (limits)
mattermostMattermostbase URL + token (+ channel)self-host
ntfyntfytopic (+ server URL)✅ (self-host)
onebotOneBot 11 (QQ)HTTP endpointself-host
pushdeerPushDeerpush key✅
pushoverPushoveruser key + app tokenpaid (one-time)
pushplusPushPlus (WeChat)token✅ (limits)
qmsgQmsg酱 (QQ)key (+ optional group, v3)✅ (limits)
qq-botQQ official botappId + appSecret✅
serverchanServer酱 (WeChat)sendkey✅ (limits)
slackSlackincoming webhook URL✅
teamsMicrosoft TeamsPower Automate workflow URL✅
telegramTelegram Bot APIbot token + chat id✅
webhookAny custom endpoint——
wecomWeCom group robotwebhook key✅
wecom-appWeCom app messagecorpid + agentId + secret✅
wps-botWPS collaboration group robot (WOA)webhook URL (with ?key=)✅
wxpusherWxPusher (WeChat)appToken + uid✅ (limits)
xizhi息知 Xizhisendkey✅ (limits)

Provider behavior differs. Buttons, attachments, delivery receipts, reconnect behavior, and account limits are only claimed at the evidence level documented in Compatibility.

Common private-chat commands
CommandPurpose
/helpShow commands
/whoamiShow identity / pairing state
/statusCurrent routing / session state
/tasks / /use …List or select active tasks
/sessionsSession overview
/stopStop the current turn
/routeShow bidirectional routing
/quiet … / /unquiet …Mute / restore notification delivery
/pair <code> / /unpairPair / detach an inbound identity
/log [N]Bounded redacted recent-notification summary; off by default and owner-only

Plain text continues the conversation. Prefix with ! to steer a running turn. Unsafe remote-control semantics are not enabled in group chats.

How it fits together

DSH events / notify() / other plugins
                 │
                 ▼
        dsh-notifier core
        ┌────────┴────────┐
        ▼                 ▼
  28 outbound        health / activity
     channels             │
        │                 │
        ▼                 │
      phone               │
        │                 │
        └─ 6 inbound ─────┘
             │
             ▼
 identity + Control Core
 approval · ask_user · conversation · task/session control

The Native UI, notifier runtime, tests, and Advanced Console are designed to observe the same underlying state rather than maintaining separate “UI truth” and “runtime truth”.

Need help? Diagnose first, then report

Please do not start by pasting a large log into an issue. The fastest support path is:

  1. Give an AI the troubleshooting prompt and let it perform read-only diagnosis first.
  2. Let the AI identify the installed version, DSH profile/version, install source, failing subsystem, and a minimal reproduction — with secrets redacted.
  3. If the problem is safely fixable locally, fix and re-test it.
  4. If it remains unresolved, have the AI generate a compact diagnostic report.
  5. Send that report through GitHub Issues or the contact channels below.

This keeps “old package / wrong profile / stale file: install / missing restart / provider credential” cases out of maintainer triage, while giving us a reproducible report when there is a real project bug.

Documentation

DocumentUse it for
GuideInstall, first setup, outbound/inbound, pairing, daily use
AI installationSafe copy/paste prompt for a terminal-capable AI
TroubleshootingHuman + AI first-line diagnosis
DiagnosticsEvidence collection and support report format
CompatibilityDSH / optional SDK / provider evidence levels
Upgrade guideUpdate, verify version, stale-install cleanup, rollback
Plugin APIctx.notifier consumer API
ArchitectureInternal design and runtime authorities
ChangelogRelease history

Contact

For reproducible bugs, prefer GitHub Issues after AI-assisted diagnosis.

dsh-notifier QQ group 947656156

Do not send bot tokens, webhook secrets, admin tokens, full state.json, or unredacted private chat content through an issue, QQ, or email.

Maintenance note: replies may be slower until 2026-10-01 because the maintainer is taking exams.

Development

Node.js 22+, ESM, and zero mandatory runtime dependencies. Some provider onboarding features use optional dependencies and load them only when needed.

Release verification remains documented in AGENTS.md, OPERATIONS, and the repository test suite.

License

MIT

Related plugins