统一通知推送:一个 notify() API 接 8 个渠道(Telegram / 钉钉 / 飞书 / WxPusher / PushPlus / Server 酱 / Bark / webhook),回合结束、待审批、报错时自动推送,agent 也能主动调用 notify 工具;零运行时依赖。
安装
# npm 包(预构建)
dsh plugin --profile web add dsh-notifier
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:THEWOLFWALKER/dsh-notifier
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本。请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
Unified notification push plugin for DeepSeek Harness (DSH). One minimal notify() API in front, many channels behind — both your agent and the harness itself can push to wherever you live.
Features
- Dual trigger lines:
- Auto status push — listens to
session/event(turn/end,approval/asked,agent/error) and notifies you when tasks finish, fail, or need approval. Debounced 10s, deduped by session. - Agent-initiated — registers a
notifytool so the model can call it directly (e.g. when it finishes a long task or needs a decision).
- Auto status push — listens to
- 8 channels out of the box (each a ~30-line adapter, zero runtime deps — only
fetch+node:crypto):- Telegram / DingTalk (HMAC-SHA256 signed) / Feishu (second-level signed) / WxPusher / PushPlus / Server酱 / Bark (self-hosted or default) / generic webhook
- Secrets safe — channel keys marked
role('secret'), redacted everywhere including custom webhook headers. - Never breaks startup — misconfigured or missing channels are skipped silently with a log line.
Install
dsh plugin add dsh-notifier
Configuration
Add channels to your profile patch (cordis.patch.yml):
insert:
- id: dsh-notifier
name: dsh-notifier
config:
channels:
- type: telegram
botToken: "123456:ABC-DEF..."
chatId: "987654321"
- type: dingtalk
webhook: "https://oapi.dingtalk.com/robot/send?access_token=..."
secret: "SEC..."
- type: feishu
webhook: "https://open.feishu.cn/open-apis/bot/v2/hook/..."
- type: wxpusher
appToken: "AT_..."
uids: ["UID_..."]
- type: pushplus
token: "..."
- type: serverchan
sct: "SCT..."
- type: bark
key: "your-device-key" # or selfHost: "https://your-bark-server"
- type: webhook
url: "https://your-webhook"
headers: { "x-token": "..." } # optional
Usage
Auto push
Just enable the plugin. turn/end (success/error/cancelled), approval/asked, and agent/error events are pushed to all configured channels.
Agent-initiated
The model can call the notify tool:
notify({ message: "调研完成,结果已写入 docs/", channel: "telegram", title: "任务完成" })
Channels
| type | Channel | Auth | Free? |
|---|---|---|---|
telegram |
Telegram Bot API | bot token + chat id | ✅ |
dingtalk |
DingTalk custom robot | webhook + secret (HMAC) | ✅ |
feishu |
Feishu custom bot | webhook | ✅ |
wxpusher |
WxPusher (WeChat) | app token + uid | ✅ (with limits) |
pushplus |
PushPlus (WeChat) | token | ✅ (with limits) |
serverchan |
Server酱 (WeChat) | sct token | ✅ (with limits) |
bark |
Bark (iOS) | device key | ✅ |
webhook |
Any custom endpoint | — | — |
Development
npm test # node --test, 72 cases
Pure ESM (.mjs), zero runtime dependencies. To add a channel: implement the adapter interface (resolve(cfg) + send(msg)) in src/adapters/ and register it.
TODO
- WeCom (企业微信), Discord, Slack, Email (SMTP) adapters
- Web settings UI
- Per-channel rate limiting / retry with backoff
License
MIT
链接
同类插件
omdsh-dev/dsh-notification★ 41
回合完成桌面通知,按结果分控 + 关键词过滤。
omdsh-dev/dsh-open-in-vscode★ 40
从 Web GUI 一键在 VS Code 中打开工作区目录。
whyihaveyou/dsh-suite#plugin-notify★ 16
回合完成、错误或待审批时推送 IM webhook(飞书/企微/钉钉/Slack/Discord/自定义)与本地通知。
bill9109/dsh-web-ui-notify★ 12
桌面通知提醒。
bobleer/dsh-acp-for-bitfun★ 9
BitFun 与 DSH 的 ACP 交互对接。
openma-ai/deepseek-harness-acp★ 7
ACP profile 插件与独立 stdio server,可从 Zed 等 ACP 客户端使用完整 DSH agent,并共享 DSH 凭据与会话。