← 返回列表
✓ 可直接安装
为 DeepSeek Harness 提供桌面、浏览器 + webhook 通知
自动检查通过:npm 包已发布且 engines 声明满足基线;该结论来自程序自动检查,未经人工实机验证。 · 最近上游提交 2026/9/25 · 已提供中文文档
了解你的 agent 何时完成一轮、遇到错误,或正在等待你的批准——无需盯着标签页。
综合分
36.5
GitHub 分
36.5
用户评分
—
★ Stars
2
周下载量
—
兼容 / 相关生态插件(非 dsh 原生,请按其对应运行时安装)
git clone https://github.com/nishit130/dsh-notification.git信任档位:已验证本站已于 4 天前真实安装成功(L4 · 真实安装)
- 是什么
- 生态插件(可安装,未声明 dsh 能力)
- 装得上吗
- 本站已真实安装成功(L4 · 真实安装,非静态推断)
- 安全吗
- 本站尚未对该插件做风险分级(暂未覆盖,不等同于无风险)
- 还在维护吗
- 活跃:最近一次提交在 0 天前
档位由下列信号合成:本站实装验证(真实安装,当前最高到 L4)· 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。下方各区块是它的证据明细。 验证判据与等级说明 →
🟢实装验证通过· 2026/9/22
由本站实装验证器在真实 dsh 环境安装成功,非静态推断。
数据截至 2026/9/26(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查✓ 自动检查通过
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包dsh-notification @ 0.1.1
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/21 23:34:20
依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
由 DeepSeek 最新模型翻译生成dsh-notification
为 DeepSeek Harness 提供桌面、浏览器 + webhook 通知
支持 macOS · Linux · Windows:让你的 agent 完成一轮对话、遇到错误,
或等待你的批准时及时知晓——无需一直盯着标签页。
长时间的 agent 运行是常态:你启动一个任务,切换到别处,回来时发现 agent 五分钟前就完成了——或者更糟,一直卡在批准提示上。dsh-notification 监听 harness 自身的生命周期事件,在需要你关注的那一刻立即通知你。
功能
| 事件 | 触发条件 | 默认 |
|---|---|---|
| Agent 完成 | agent/status 从 running → idle 翻转,且该轮运行时长 ≥ minTurnDurationMs | 开启 |
| Agent 错误 | agent/error(某一步或某一轮出错) | 开启 |
| 需要批准 | approval/request waterfall(仅观察;始终以 next() 委托) | 开启 |
每个事件都可以发送到:
- 桌面通知 —— 零依赖:osascript(macOS)、notify-send(Linux)、
PowerShell toast(Windows)。
- Webhook —— 一个带有 Slack 兼容 text 字段的 JSON POST,因此 Slack/Discord/通用
的 incoming-webhook URL 开箱即用。
安装
dsh plugin --profile web add dsh-notification
或直接从 git 安装:
dsh plugin --profile web add github:nishit130/dsh-notification
该包以纯 ESM JavaScript 发布——无需构建步骤,因此从 git 安装不需要
allowBuilds 条目。
通知出现的位置
三个渠道,三个位置:
| 渠道 | 触发于 | 最适合 |
|---|---|---|
| 桌面(desktop) | 运行 dsh 服务器的机器 | 在你自己的机器上运行 dsh web |
| 浏览器(browser) | 查看 Web UI 的机器 | 远程服务器,或任何 Web UI 使用场景 |
| Webhook(webhookUrl) | URL 指向的任何位置 | 手机、Slack、无人值守运行 |
浏览器通知使用标准的 Notification API:Web UI 会在你首次点击或按键时请求权限,默认情况下弹窗仅在标签页隐藏时出现——
可见的标签页已经吸引了你的注意力(设置 browserOnlyWhenHidden: false 可改变此行为)。
所有东西都在一台机器上运行且标签页隐藏?同一事件你会同时收到桌面和浏览器
弹窗——如果这种重复让你困扰,可以关闭其中一个渠道(desktop: false 或 browser: false)。
配置
在你的 profile 的 cordis.patch.yml 中覆盖该行(或通过设置 UI):
- insert:
- id: notify
name: dsh-notification
config:
minTurnDurationMs: 10000 # 仅对 ≥ 10s 的轮次通知
webhookUrl: 'https://hooks.slack.com/services/XXX/YYY/ZZZ'
notifyOnApproval: true
desktop: true
title: 'DSH'
| 字段 | 类型 | 默认 | 含义 |
|---|---|---|---|
| notifyOnIdle | boolean | true | 当一轮对话完成时通知 |
| notifyOnError | boolean | true | 在 agent/error 时通知 |
| notifyOnApproval | boolean | true | 当工具调用等待批准时通知 |
| minTurnDurationMs | number | 5000 | 跳过快速轮次的通知 |
| desktop | boolean | true | 在服务器主机上发送原生桌面通知 |
| browser | boolean | true | 在 Web UI 中显示浏览器 Notification 弹窗 |
| browserOnlyWhenHidden | boolean | true | 当标签页可见时抑制浏览器弹窗 |
| webhookUrl | string | '' | 可选的 POST 目标(Slack 兼容负载) |
| title | string | 'DeepSeek Harness' | 桌面通知标题 |
Webhook 负载
{
"text": "Agent finished — done in 2m 14s",
"summary": "Agent finished",
"body": "done in 2m 14s",
"level": "info",
"ts": "2026-08-21T12:34:56.000Z"
}
设计说明
- 通过 ctx 注册的一切都是副作用——监听器会在卸载/热重载时自动移除;
没有手动清理路径(Cordis 可回滚副作用)。
- approval/request 是瀑布流。 此插件仅观察它,因此其监听器始终
调用 next()——不调用就返回会认领该决策并吞掉真正的应答者。
- 永远不要中断循环。 桌面进程派生是分离的且即发即忘;webhook 失败会被
吞掉。通知器绝不能将错误暴露到 agent 的轮次中。
本地开发
将 dev.patch.example.yml 复制为 dev.patch.yml(已被 gitignore),将其指向你的检出目录的
绝对路径,然后在 harness 源码检出目录中执行:
pnpm dsh web --patch ./path/to/dsh-notification/dev.patch.yml
对 index.js 的编辑会热重载,无需重启。使用 npm test 运行测试。
许可证
MIT