核心用法
Windows Notifier 是一个专注于 Windows 平台的桌面通知技能,作为共享桌面通知流的别名/包装器,使 Agent 能够在用户请求 Windows 弹窗时一致地触发本地提醒。核心命令通过 PowerShell 执行 Node.js 脚本,支持两种主要模式:
- 标准模式:使用
node-notifier库发送传统 Windows 通知气球 - 现代模式:调用
show-modern-dialog.ps1呈现基于 WPF 的自定义现代化卡片对话框
使用方式简洁,通过 --title 和 --message 指定内容,--timeout 控制显示时长(支持秒数、false、permanent 等持久化选项)。可选参数包括 --sound 控制提示音、--appName 自定义应用标识、--wait 控制是否阻塞等待用户交互。
显著优点
1. 原生 Windows 体验:现代模式下的 WPF 卡片对话框提供比传统通知气球更美观、更持久的视觉呈现
2. 智能降级机制:自动检测 WPF 可用性,失败时无缝回退到 node-notifier,确保功能不中断
3. 跨平台兜底:底层依赖 node-notifier 作为非 Windows 系统和备用方案,保持代码统一
4. 零配置启动:首次运行时自动安装依赖,用户无需手动执行 npm 操作
5. 场景针对性强:专门解决"聊天窗口在后台时提醒可能被错过"的痛点,适用于学习计时、日程闹钟等需要强提醒的场景
潜在缺点与局限性
1. Windows 生态锁定:现代卡片模式依赖 WPF,在 Windows Server Core、精简版系统或 WPF 被移除的环境中无法使用
2. Node.js 运行时依赖:必须安装 Node.js 环境才能执行,纯 PowerShell 环境无法独立运行
3. 持久化行为不一致:--timeout permanent 等持久化请求的实际效果取决于后端(WPF 卡片 vs node-notifier),可能存在语义偏差
4. 权限边界模糊:脚本执行涉及 $env:USERPROFILE 路径下的文件操作,潜在存在路径遍历或权限提升风险(需结合完整安全审计确认)
5. 音频控制局限:--sound 参数依赖后端实现,部分系统声音设置可能覆盖应用级控制
适合人群
- Windows 10/11 桌面用户需要本地强提醒功能
- 使用番茄钟、专注计时等工具的学习/工作者
- 运行后台任务需要即时人工干预的开发者或运维人员
- 希望获得比系统默认通知更持久、更醒目提醒体验的用户
常规风险
- 依赖自动安装信任:首次运行的 npm 依赖自动安装需要网络访问,存在供应链攻击面(需验证包签名/锁定版本)
- 脚本执行策略:PowerShell 脚本执行可能受
ExecutionPolicy限制,用户可能被迫降低安全策略 - 通知疲劳:高频调用可能导致系统通知中心堆积,反而降低重要提醒的可见性
- 路径硬编码风险:
$env:USERPROFILE\.openclaw\workspace\skills\...的硬编码路径在特殊配置环境(如漫游配置文件、重定向文件夹)中可能解析异常