Skip to content

Gemini CLI 的桌面通知功能(实验性,默认禁用)在两种情况下推送系统通知:代理等待工具调用确认时,以及会话完成时。需要终端支持 OSC 9 序列(如 iTerm2、WezTerm、Ghostty、Kitty),不支持时自动回退到终端响铃(BEL)。在 settings.json 中设 general.enableNotifications: true 启用。

桌面通知(实验性)

实验性功能:需手动开启。

Gemini CLI 可以在需要你注意时推送系统通知——特别适合执行耗时任务时切换到其他窗口,不用一直盯着终端。

前置条件:终端支持

CLI 使用 OSC 9 终端转义序列触发系统通知。支持的终端:

  • iTerm2(macOS)
  • WezTerm(跨平台)
  • Ghostty(跨平台)
  • Kitty(Linux/macOS)

如果终端不支持 OSC 9,CLI 会自动回退到 终端响铃(BEL)——通常表现为任务栏闪烁或系统提示音。

启用方法

/settings 中打开 Enable Notifications,或编辑 settings.json

json
{
  "general": {
    "enableNotifications": true
  }
}

通知类型

类型触发条件
等待操作模型等待用户输入或工具确认时
会话完成会话成功完成时(适合追踪自动化任务进度)

使用建议

通知功能与以下场景搭配效果最好:

  • 长时间 Plan Mode 任务:启动后切换到其他应用,任务完成或需要确认时收到通知
  • 后台自动化任务:无头模式或大批量处理时,用通知替代轮询

常见问题

Q: macOS 上 iTerm2 的通知不显示,是什么原因?

A: 检查系统偏好设置中 iTerm2 的通知权限是否已开启(系统偏好 → 通知 → iTerm2)。另外,OSC 9 需要 iTerm2 3.x 以上版本。

Q: Windows Terminal 支持吗?

A: Windows Terminal 目前对 OSC 9 的支持有限,可能无法显示通知,会回退到终端响铃。

Q: 通知能自定义内容吗?

A: 目前通知内容固定,不支持自定义。如需更复杂的通知需求,可以考虑通过 Hooks 系统 在任务完成时触发自定义脚本发送通知。