dsh-notify
系统级弹窗提示插件:任务完成 / 任务失败 / 工具失败 / 目标完成或受阻 / 工作流完成 / 需要人工确认(权限审批)时弹出系统通知(macOS 通知中心横幅与模态弹窗,Linux notify-send)
安装
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:zhengjy01/dsh-notify说明文档
阅读完整 README ↗dsh-notify — 系统级弹窗提示插件
DSH 服务端插件:在操作系统层面弹出系统通知,提醒你 DSH 里的重要事件,这样你不需要一直盯着浏览器页面。
触发时机
| 事件 | 弹窗类型 | 默认 |
|---|---|---|
主会话任务回复完成(turn/end completed,非子代理会话) | 系统横幅「会话名 · 任务完成」 | 开 |
主会话任务出错(turn/end reason=error) | 模态弹窗「会话名 · 任务失败」+ 提示音 | 开 |
主会话任务中断(turn/end reason=aborted / max-tokens / blocked) | 系统横幅「会话名 · 任务中断」 | 开 |
单个工具调用失败(tools/result isError) | 系统横幅「会话名 · 工具失败」 | 开 |
目标完成(goal/changed phase=complete) | 系统横幅「会话名 · 目标已完成」 | 开 |
目标受阻(goal/changed phase=blocked) | 模态弹窗「会话名 · 目标受阻」 | 开 |
工作流执行完成(tool-workflow/run-end) | 系统横幅「会话名 · 工作流执行完成」 | 开 |
需要人工确认:工具请求权限(approval/asked) | 模态弹窗「会话名 · 需要人工确认」+ 提示音 | 开 |
权限请求被自动拒绝(策略为 never) | 系统横幅「会话名 · 权限请求(已自动拒绝)」 | 开(随上项) |
子代理(后台子任务)回合结束(turn/end,子代理会话) | 系统横幅「会话名 · 子任务完成」 | 关 |
说明:
- 标题带会话名:所有弹窗标题使用对应会话的名称(取自会话的
session/title事件),超长自动截断(18 字符 + …);没有标题时回退到会话 ID 前 8 位。 - 工具失败防刷屏:同一会话内两次工具失败提醒默认至少间隔 60 秒(
toolErrorCooldownMs);也可用toolErrorAllowlist只提醒关键工具(如["bash", "ssh_exec"])。 - 严重度分级:真正失败(出错)、目标受阻和需要人工审批 → 模态弹窗(必须点击确认)并播放提示音;完成、中断、自动拒绝等 → 通知中心横幅(不打断操作)。
- macOS:模态用
osascript display alert ... as critical,横幅用display notification;Linux:统一notify-send,模态场景用-u critical(紧急级别,常驻直到点击);其他平台:仅记录日志。 - 权限策略为
ask时,审批请求弹出模态对话框提醒你去 DSH 界面审批;策略为never时请求会被自动拒绝,只发一条横幅告知「已自动拒绝」,不会弹模态框打扰你。 - 弹窗随进程 detached 执行、不阻塞 DSH 服务器。