前言¶
用 DeepSeek Harness(DSH)跑智能体时,常见情况是窗口在后台、你在做别的事:Agent 等你批准工具调用、等你回答问题、某次 turn 跑很久、任务失败或已经跑完,界面里都有事件,但你不一定立刻看到。自己盯着会话是一种做法;另一种是在桌面系统通知里收到提醒,再回到 DSH 处理。
Notix(npm 包名 notix-dsh)是社区维护者 QiangXian 发布的 DSH 插件,分类属于联网工具生态里的辅助能力:它监听 Harness 的共享事件面,在 macOS Notification Center 与 Windows Action Center 投递原生通知。插件以纯观察者方式工作,不注册 approval/answerer、不写 session 事件、不阻塞 Agent 循环。
这是什么¶
Notix 面向已在用 DSH 的开发者:一个 npm 包同时包含 Host 插件与 Plugins 设置页 UI,无需再单独安装 notix-dsh-ui。当前公开版本为 v0.3.0(MIT 许可证),依赖 Node ^22.18.0 或 >=24.0.0,DSH 引擎要求 >=0.2.1-rc.2 且 <0.3.0。
维护与源码:GitHub - QiangXian/notix-dsh;社区目录页:skillhub.cn/plugins/QiangXian/notix-dsh。目录站点与 DeepSeek / 幻方无官方从属关系,安装前仍应自行查看源码与许可证。
核心功能¶
下面按 README 已说明的行为归纳,不扩展未文档化的能力。
五类触发¶
可在设置卡片中分别开关,并配置阈值、提醒与静默时段:
- Approvals:需要用户批准时。
- Pending questions:有待回答问题。
- Long turns / background jobs:单次 turn 或后台任务耗时过长。
- Errors / tool failures:错误与工具失败。
- Completions:任务完成。
默认策略偏「安静」:去重键、按会话的错误冷却、静默时段(紧急项可绕过)、按通道重试与熔断;投递失败被隔离,不会影响 Agent 循环。
平台与投递通道¶
| 平台 | 通道 ID | 说明 |
|---|---|---|
| macOS | macos-system |
签名 helper → terminal-notifier → alerter → osascript |
| Windows 10/11 | windows-system |
bundled PowerShell helper 发送 WinRT Toast |
| Linux 及其他 | (不注册通道) | 插件可加载,通知写入历史,投递为 no-op |
运行时只注册与 process.platform 匹配的通道,同一份 profile 配置可在 macOS 与 Windows 间共用,不会在错误平台上拉起对方工具链。
扩展点¶
其他插件可通过 ctx.notix 发送通知或注册自定义投递通道;内置仍是 macOS / Windows 系统通道。
安装与启用¶
官方安装方式来自 README,勿用未文档化的 github:owner/repo 拼接命令。
Web GUI¶
- 打开 Web GUI,进入 Plugins。
- 使用页面上的添加插件操作安装
notix-dsh。 - 重启 对应 DSH 实例(Host 插件仅在进程启动时加载;设置卡片在 GUI 重载后出现)。
CLI¶
dsh plugin --profile <name> add <package> 会在 profile 目录内通过 pnpm 安装,并因包声明了 dsh.bundle 而更新 dsh.profile.bundles。
# 桌面 profile:先退出桌面应用(否则已加载插件仍在内存中)
dsh plugin --profile desktop add notix-dsh
# Web GUI profile(dsh web / 浏览器 GUI)
dsh plugin --profile web add notix-dsh
安装后重启该实例。可检查 profile 的 package.json 是否包含 bundle 项:
// ~/.dsh/profiles/<name>/package.json
{
"dsh": {
"profile": {
"bundles": [
"@deepseek-ai/dsh-base",
"@deepseek-ai/dsh-web-app",
"notix-dsh"
]
}
}
}
任意 profile 名(如 headless、自定义名)均可使用同一安装命令;Host 半部与 profile 无关,在 macOS / Windows 上均可投递;仅带 GUI 的 profile 会显示 Notix 设置卡片。
升级与卸载¶
- 自 npm 升级(桌面应用需先退出):
dsh plugin --profile <name> add notix-dsh@latest,然后重启。 - 配置保存在 profile 的
cordis.patch.yml中id: notix下,升级后仍会读取。 - 若曾安装独立的
notix-dsh-ui,v0.3.0 已内置 UI,应从 bundle 列表移除旧包。 - 卸载:在 Web GUI 的 Plugins 页移除或禁用;或使用 CLI 自 profile 移除(README 卸载小节,此处从略)。
典型用法¶
经过上面的安装与重启,典型流程如下。
- 在 Plugins 或 Notix 设置卡片中打开需要的触发类型(批准、提问、长任务、错误、完成),按需调整阈值、提醒与静默时段。
- 将 DSH 窗口放到后台,继续本地工作;当 Agent 需要输入、运行过久、出错或完成时,在 macOS / Windows 上应收到系统通知(Linux 上仅记录历史,无桌面投递)。
- 点击通知或手动切回 DSH,在会话内完成批准或回答。
开发者在仓库 clone 中可用平台相关脚本做投递冒烟(需 repo clone,npm 包不含这些脚本路径):macOS 为 pnpm run notify-test,Windows 为 pnpm run notify-test:win(见 package.json scripts)。
适用场景与注意¶
适合谁:长时间用 DSH 桌面或 Web GUI、且主机为 macOS 或 Windows 的开发者;需要「离开窗口仍能知道 Agent 在等什么」时使用 Notix,而不是替代 DSH 内置会话 UI。
务必注意:
- 插件以当前 DSH 进程权限 运行;安装前请阅读 源码与 LICENSE,确认可接受其读取的事件面与系统通知 API 行为。
- Linux 上不要预期桌面弹窗;若主要环境是 Linux,Notix 的价值主要在历史记录与将来扩展通道,而非当前内置投递。
- macOS 上多种 backend 并存时,仅签名 Notix helper 使用插件自有 bundle identity;Windows 依赖内置 PowerShell 5.1,README 称已在 Windows 11 上验证。
- DSH 生态理念是「一切皆插件」;Notix 是社区包,星标与下载量会随时间变化,以 npm / GitHub 页面为准。
结尾¶
Notix-dsh 用单一 npm 包把 Host 通知与设置 UI 合在一起,以观察者模式监听批准、提问、长任务、错误与完成五类事件,在 macOS 与 Windows 上走原生系统通道,默认带 dedupe、静默时段与熔断,且不阻塞 Agent。若你要在 Harness 侧补一层桌面提醒,可按 profile 执行 dsh plugin --profile <name> add notix-dsh 并重启实例。
- 目录页:https://www.skillhub.cn/plugins/QiangXian/notix-dsh
- 仓库:https://github.com/QiangXian/notix-dsh
- npm:https://www.npmjs.com/package/notix-dsh