yangyongzhen/dsh-notify
DeepSeek Harness 任务完成通知:ServerChan / 钉钉 / 飞书 / 通用 webhook。dsh 插件。
项目介绍Project Overview
dsh-notify 是 DeepSeek Harness 任务完成通知插件,监听 session/event,在 turn/end 后防抖推送模型、耗时、工具调用、token 与结果摘要到 Server酱、钉钉、飞书或通用 Webhook,进程退出时 flush。适合几十分钟到数小时的长任务,无需盯终端,手机即可收通知。需在 cordis.patch.yml 配置渠道;channels 为空时只订阅不发送。
dsh-notify is a DeepSeek Harness plugin that sends task-completion notifications. It listens to session/event and, after turn/end with debounce, pushes model, duration, tool calls, token usage, and a result summary to Server酱, DingTalk (with optional signing), Feishu, or a generic JSON webhook; pending notifications flush on exit. Use it for long tasks so you need not watch the terminal. Channels must be configured; an empty channels array means it only subscribes and sends nothing.
请帮我了解并安装插件:【dsh-notify】【https://github.com/yangyongzhen/dsh-notify】
把上面这条消息直接发给当前会话里的 DSH,让它帮你了解并安装。安装命令不一定准确,发给 DSH 更稳。Send this message to DSH in your current session. CLI install commands may not be accurate across systems — DSH will figure it out for you.
或使用命令行安装(适合开发者)Or use CLI install (for developers)
命令行安装CLI Install
dsh plugin --profile web add https://gitcode.com/qq8864/dsh-notify.git
把 yangyongzhen/dsh-notify 加入你的 DSH 配置(web profile)即可启用。
READMEREADME
dsh-notify
DeepSeek Harness 任务完成通知插件:turn 结束后把结果摘要推送到 Server酱 / 钉钉 / 飞书 / 通用 Webhook。
长任务(几十分钟到几小时)跑完不用一直盯着终端,手机收通知即可。
- 监听
session/event事件流,turn/end后防抖debounceMs推送 - 通知内容:模型、耗时、工具调用数、token 消耗(含缓存读写)、最后一条助手消息摘要、回合结果(完成/出错/被中断…)
- 支持 4 种渠道:Server酱(form 表单)、钉钉(含加签模式)、飞书、通用 Webhook(JSON)
- 进程退出时 flush 待发送通知(headless 一次性任务也能送达)
安装
# 本地 checkout 安装
dsh plugin --profile <web|tui|headless> add file:/path/to/dsh-notify
# 或从 Git 仓库安装
dsh plugin --profile <web|tui|headless> add https://gitcode.com/qq8864/dsh-notify.git
配置
通过 profile 的 cordis.patch.yml 或 --patch overlay 配置渠道:
- id: notify
config:
enabled: true
debounceMs: 10000 # turn/end 后的静默等待
summaryMaxChars: 500 # 助手消息摘要截断
titlePrefix: '' # 通知标题前缀
notifyOnCompleted: true # 正常完成时通知
notifyOnError: true # 出错/达到上限时通知
channels:
- type: serverchan # Server酱(方糖)
url: https://sctapi.ftqq.com/<SENDKEY>.send
- type: dingtalk # 钉钉机器人
url: https://oapi.dingtalk.com/robot/send?access_token=<TOKEN>
secret: <加签模式的 secret,可选>
- type: feishu # 飞书机器人
url: https://open.feishu.cn/open-apis/bot/v2/hook/<TOKEN>
- type: generic # 通用 Webhook(JSON: title/content/timestamp)
url: https://example.com/hook
channels 为空数组时不发送任何通知(插件只订阅不动作)。
通知样例(generic 渠道)
{
"title": "[dsh] 任务完成",
"content": "模型:deepseek-official/deepseek-v4-flash\n耗时:4s\ntokens:8247 in / 122 out(缓存读 0 / 写 0)\n---\ndef fibonacci(n): ...",
"timestamp": "2026-08-14T09:22:36.409Z"
}
开发
pnpm install
pnpm run build # tsc -> lib/
端到端验证(本地 webhook):
node test/hook-server.mjs & # 监听 127.0.0.1:9999,落盘 test/hook-received.jsonl
dsh --profile headless --patch ./test/notify-patch.yml "一句话介绍你自己"
cat test/hook-received.jsonl
nexu-io/open-design
freestylefly/awesome-gpt-image-2
anywhere-labs/dsh-desktop
walkinglabs/learn-harness-engineering
awesome-dsh-plugin/awesome-dsh-plugin
MemTensor/MemOS