Agent 正等你批准,别让它在后台沉默:用 Glitchrupt 做本地桌面提醒
AI 编码 Agent 常在终端或后台运行。它遇到权限确认、需要你选择方案时,往往只留下一个不显眼的提示;等人发现时,任务已经空转了一阵。Glitchrupt 是一个面向 macOS 的轻量提醒工具:用短暂的桌面视觉效果和声音,把 Agent 的等待状态显式带到屏幕上。
它值得关注的不是“加一个闪屏”,而是把提醒设计成可由 Agent 主动请求、由同一台 Mac 上的原生应用执行的本地能力。工具通过 CLI 或本地 MCP stdio 服务连接 Agent,不需要 HTTP 服务、API key,也不把屏幕图像或对话内容发送出去。项目说明图像只在内存中短暂处理,效果结束后移除覆盖层。
先在本机试一次
项目要求 macOS 14+、Swift/Xcode Command Line Tools、Python 3.11+ 和 uv。克隆仓库后,在项目根目录构建并启动应用,再安装 Python 侧依赖:
./scripts/build.sh open build/Glitchrupt.app uv sync --locked uv run --locked glitchrupt preview --variant classic
preview 用窗口预览,不需要捕获整个桌面;确认体验后再运行桌面信号:
uv run --locked glitchrupt signal --variant fracture
首次使用真实桌面效果时,按 macOS 提示在“隐私与安全性 → 屏幕与系统音频录制”授权 Glitchrupt,必要时重新启动应用。五种声音变体是 classic、fracture、brownout、arc 和 stutter。时长可配置为 300–1000 毫秒,音量范围为 0–0.5;降低动态效果、暂停或冷却状态都可能抑制一次提醒,因此不能把 CLI 返回码 0 简单理解成“声音肯定播放了”。
MCP 接入:提醒与审批等待分开
启动本地 MCP 服务的命令是:
uv run --locked glitchrupt mcp
Codex 可用下列命令注册服务(替换为本机真实路径):
codex mcp add glitchrupt \ --env GLITCHRUPT_APP=/absolute/path/to/glitchrupt/build/Glitchrupt.app \ -- /absolute/path/to/uv run --locked --directory /absolute/path/to/glitchrupt glitchrupt mcp codex mcp list
该命令会修改 Codex 的 MCP 配置,项目不会替用户自动执行。连接后,Agent 可调用状态、变体、播放提醒等工具。对需要等待用户回答的明确场景,还可注册审批等待:同一稳定 key 只注册一次,提醒按固定策略重复,Agent 在用户答复或任务不再阻塞时必须用同一个 key 解除等待。key 应是不含问题内容的标识,例如 agent:chat-123:decision-1,不要把隐私文本写进去。
这里有个重要边界:MCP 等待/解除流程由 Agent 显式管理;可选的 Codex hook 目前只负责一次初始提醒,并不会自动重复。项目文档解释,现有 hook 事件不能可靠证明用户何时完成审批,盲目重复可能在问题已解决后继续打扰。因此,不要把 Glitchrupt 描述成能自动监控所有聊天或所有系统权限弹窗的全局观察器。要实现周期提醒,必须由 Agent 注册等待并正确解除。
适合什么工作流
它适合“任务在后台跑、人需要稍后介入”的桌面协作:让 Agent 在明确需要决策时发出一次可见信号,用户回来处理后由 Agent 清除对应等待。对一般任务完成通知,系统通知可能更合适;对无人值守服务器,依赖 Mac 桌面和用户授权的 Glitchrupt 并不适用。
实践中建议先用 preview 检查视觉效果与音量,再把 MCP 服务加入单个 Agent 配置;确认工具响应状态、暂停与降低动态效果等抑制条件后,才为真实审批流程启用提醒。超时不能自动重试,因为第一次效果可能已经播放。也要为每个对话维护独立 key,并在取消任务、收到答复或需求消失时解除,避免留下过期提醒。
接入时还要把信任边界说清楚:MCP 配置只负责让 Agent 看见工具,hook 则是另一项可选配置,需要单独检查、审阅和信任。不要直接覆盖已有 hook 定义;项目建议合并模板并保留其他配置。stdio 服务的日志走标准错误,配置中的 uv 与仓库路径应使用绝对路径,避免不同启动目录导致找不到应用。若 CLI 显示 muted、cooldown、busy 或 reduce_motion,这属于已知抑制结果,Agent 应告知用户状态,而不是循环调用工具制造更多提示。
Glitchrupt 的价值在于将“Agent 正在等人”变成一个本地、可控的交互,而不是让模型凭空猜测用户是否在线。它不能替代审批逻辑,却为桌面型 Agent 补上了一个简单的注意力通道。对需要强审计或跨设备通知的团队,还应在现有审批系统中记录谁发起、谁处理以及何时解除;本地视觉提醒本身不是审批记录,也不应被当成权限授权。