dsh-notify
baka-world
DeepSeek Harness desktop notification plugin (notify-send / D-Bus)
PROJECT TOPICS
PROJECT README
DeepSeek Harness(DSH)插件:当 Agent 需要你关注时,向 Windows 发送系统桌面通知。
任务完成 ✅ | 等待审批 🔐 | 等待回答 ❓ —— 离开屏幕也不错过任何需要你处理的事。
turn/end 事件,任务完成 / 出错 / 输出超限时立即弹窗,标题自动使用会话标题,正文显示原因与轮次;approval/asked 事件,有操作等待你的审批时立即提醒;会话审批策略为 never 时自动跳过(此时没有东西在等你);ask_user_question 向你提问时提醒;本部署下所有工具都经 run_code 调用,插件会扫描 run_code 程序源码中的 tools.ask_user_question( 调用并提取问题文本;%TEMP%\dsh-notify\notify.log)与 debug 事件日志。dsh plugin --profile web add dsh-notify-windows
然后在 profile 的 cordis.patch.yml 中追加条目(该文件被运行中的 DSH 热监视,改动立即生效,无需重启):
- insert:
- id: dsh-notify
name: 'dsh-notify-windows'
config:
enabled: true
reasons: [completed, error, max-tokens]
includeSubagents: false
notifyOnStart: true
notifyOnApproval: true
notifyOnAskUser: true
appName: 'DeepSeek Harness'
aumid: 'DeepSeekHarness.Notify'
log: true
debug: false
git clone git@github.com:SeverusZh/dsh-notify-windows.git
cd dsh-notify-windows
pwsh scripts\install-profile.ps1 -Profile web
脚本会把插件部署到 profile 的 hoisted node_modules(目录名 dsh-notify-windows-<版本>,重新部署时更换目录名,让运行中的宿主热加载新代码而无需重启),并幂等地写入上面的 patch 条目。
| 配置 | 默认值 | 说明 |
|---|---|---|
enabled |
true |
总开关 |
reasons |
[completed, error, max-tokens] |
需要提醒的回合结束原因(可选 aborted / interrupted / blocked) |
includeSubagents |
false |
是否也提醒子代理会话 |
notifyOnStart |
false |
插件加载时发一条「已激活」通知 |
notifyOnApproval |
true |
审批请求提醒(策略 never 时自动跳过) |
notifyOnAskUser |
true |
Agent 提问等待回答时提醒 |
notifyOnGoalRounds |
false |
/goal 自动推进回合不提醒(目标完成/阻塞的最终回合除外) |
excerpt |
true |
通知正文附带 Agent 最后回复的摘要 |
excerptMaxChars |
80 |
摘要最大字符数 |
appName |
DeepSeek Harness |
通知来源显示名与兜底标题 |
aumid |
DeepSeekHarness.Notify |
通知 AppUserModelId |
log |
true |
写日志到 %TEMP%\dsh-notify\notify.log |
debug |
false |
把所有会话事件写入日志(排查用,量大) |
| 场景 | 会话事件 | 通知示例 |
|---|---|---|
| 任务完成 | turn/end |
「任务已完成(第 N 轮)」 |
| 任务出错 / 超限 | turn/end |
「任务出错」/「输出达到 token 上限」 |
| 等待审批 | approval/asked |
「DeepSeek Harness · 需要审批 / 工具 pwsh:…」 |
| 等待回答 | tool/call(含 run_code 检测) |
「DeepSeek Harness · 需要回答 / 是否继续?」 |
node scripts\smoke-test.mjs
独立进程内用 cordis Context 模拟会话事件:应弹出任务完成 / 审批 / 提问三条测试通知,并断言日志记录与过滤行为(子代理、never 策略、无关调用均被过滤)。
notifyOnGoalRounds 设为 true。never 时审批会被自动拒绝、不会等待,插件会跳过提醒;策略为 ask 时才提醒。dsh plugin --profile web update dsh-notify-windows 后重启宿主。MIT © 2026 SeverusZh
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。