dsh 会话的 Webhook 通知:审批被请求或回合结束时发送 POST,可发往 ntfy、Bark、Slack/钉钉/企微机器人地址或任意 HTTPS 端点。
安装
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:chenweigao/dsh-perch-notify
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
English | 中文在后
Webhook notifications for DeepSeek Harness (dsh) sessions: get a POST when an approval is requested or a turn ends. Works with any profile that runs sessions (web, tui, acp, sdk, your own).
Use it with ntfy.sh, Bark, a Slack/DingTalk/WeCom bot URL, or any HTTPS endpoint that accepts a POST.
Install
dsh plugin --profile web add github:chenweigao/dsh-perch-notify
The package is plain JavaScript with no build step, so a git install needs no prepare script and no pnpm build allowlist.
Configure
Set the destination in the environment before launching dsh:
export DSH_NOTIFY_URL="https://ntfy.sh/my-topic" # where notifications go
export DSH_NOTIFY_FORMAT="ntfy" # json (default) | ntfy | bark
export DSH_NOTIFY_EVENTS="turn/end,approval/asked" # optional; this is the default
dsh web
Or pin the same values in your profile's cordis.patch.yml (patch rows replace whole config values, so restate what you keep):
- id: perch-notify
name: dsh-perch-notify
config:
url: https://ntfy.sh/my-topic
format: ntfy
events: ['turn/end', 'approval/asked']
timeoutMs: 8000
With no url the plugin loads inert and sends nothing.
What it sends
The plugin observes the session event log (session/event) and forwards lifecycle facts only — never prompts, replies, tool arguments, or file contents.
json format (default) posts:
{
"event": "turn/end",
"sessionId": "3d60430f-…",
"time": "2026-09-21T13:29:56.155Z",
"text": "dsh 轮次结束:3d60430f · completed",
"detail": { "turn": 1, "reason": "completed" }
}
An approval request arrives as {"event": "approval/asked", …, "detail": {"toolName": "bash", "reason": "…"}}.
ntfy format posts the text with Title/Tags headers so phones ring; bark format posts Bark's {title, body} shape.
Delivery failures are logged to the dsh console and never block or retry the agent.
Privacy
One outbound POST per matching event to your own endpoint, off by default without a URL. No other network calls, no telemetry, no storage outside dsh's own session log.
Origin
Built by the author of Perch, a native macOS workspace for remote agents (including dsh over ACP). If you want approvals and turn completion on your Mac desktop instead of a webhook, that is what Perch does.
中文
dsh 会话的 webhook 通知插件:审批等待、轮次结束时向你自己的地址发 POST。支持 ntfy / Bark / 任意 JSON 接收端,任何跑会话的 profile(web、tui、acp、sdk)都能用。
dsh plugin --profile web add github:chenweigao/dsh-perch-notify
export DSH_NOTIFY_URL="https://ntfy.sh/my-topic"
export DSH_NOTIFY_FORMAT="ntfy"
dsh web
纯 JavaScript、无构建步骤,git 安装不需要 pnpm allowlist。插件只转发生命周期事实(哪类事件、哪个会话、哪个工具要审批),不发送提示词、回复、工具参数或文件内容;未配置 URL 时完全不动作。
由 Perch 的作者构建——如果你想在 Mac 原生界面里直接处理审批和完成通知,而不是走 webhook,那是 Perch 干的事。
License
MIT
链接
同类插件
xmanrui/dsh-im★ 3118
通过二维码或机器人凭据将 IM 机器人接入 DeepSeek Harness(支持飞书、微信、钉钉、企业微信、QQ、Slack、Telegram、Discord 和 WhatsApp 共 9 种渠道)。
shaobeichen/dsh-pocket★ 2685
手机远程访问 DSH Web 界面:扫码即用局域网或公网(cloudflared 隧道)访问,实时同屏、移动端适配布局,带设置页管理。
OpenPetsHQ/openpets#dsh★ 1373
将 DeepSeek Harness 的生命周期状态、错误与审批请求,桥接到本地运行的 OpenPets 桌面伙伴。
c1overzz/dsh-bili-scroll★ 1150
让你的 DSH 自己刷 B站 —— 读字幕原文挑内容、写日报,遇到值得看的会发评论 @ 你。
inclusionAI/Avernet#deepseek-harness-channel-bcn★ 599
通过 WebSocket V2 将 DeepSeek Harness 接入 Avernet Bot 协作网络,支持自动注册、Agent 会话隔离、工具调用事件和多 Bot 路由工具。
zaofan-make/dsh-qqbot★ 213
接入 QQ 官方机器人的 DeepSeek Harness 通道(tencent-connect/dsh-qqbot 功能增强 fork): 群/私聊与完整 agent 对话、表情包图库(自动打标+AI 斗图)、群管理(入群审批/禁言)、botplay 互动事件卡与翻页目录、用户扩展注册表(自定义斜杠命令与 QQ 工具)、定时唤醒、QQ 远程审批、悬浮球 dock Web UI。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。