给 Codex 加一个“需要你回来处理”的系统通知:Codex Attention Notifier

我把刚才本机解决 Codex 通知漏提醒的问题整理成了一个小工具:

也发到了 openai/codex 的讨论区:

它解决的问题是:Codex 默认的 turn 结束通知不够覆盖所有“需要你回来处理”的场景。比如任务跑到一半要权限批准,或者准备执行 sudo xcodebuild -license accept、安装器、softwareupdate 这类很可能需要输入管理员密码的命令,如果窗口不在前台,很容易误以为 Codex 还在跑,其实它已经卡在等人。

效果:

  • Codex 发出 PermissionRequest 时弹 macOS 系统通知。
  • 在执行常见需要人工介入的命令前提前提醒,例如 sudoxcodebuild -licensexcodebuild -runFirstLaunch.pkg installer、softwareupdate、AppleScript administrator privileges。
  • 普通命令不提醒,不会每次 lsgit、build 都弹。
  • 只做通知和日志,不会自动批准、拒绝或改写 Codex 的工具调用。
  • 日志写到 ~/.codex/logs/codex-attention-notifier.log

安装方法:

git clone https://github.com/constansino/codex-attention-notifier.git
cd codex-attention-notifier
python3 install.py

安装后重启 Codex Desktop,或者开一个新的 Codex session,让新的 hooks 配置生效。

可以用这个命令测试,不会真的运行 sudo,只是模拟 Codex hook 输入:

printf '%s\n' '{"hook_event_name":"PreToolUse","tool_name":"Bash","cwd":"'"$PWD"'","tool_input":{"command":"sudo xcodebuild -license accept"}}' \
  | python3 ~/.codex/hooks/codex_attention_notify.py

如果正常,会看到 macOS 通知,也能看到日志:

tail -n 5 ~/.codex/logs/codex-attention-notifier.log

限制也说清楚:这不是官方一等功能,只是基于 Codex hooks 的实用补丁。对于“子进程已经跑起来后才卡在 stdin/password”的情况,Codex 目前还没有稳定的等待输入事件 hook,所以这个工具是通过执行前识别高风险命令来兜住常见场景。

更新一下:这个工具的默认安装方式已经改成只保留 PermissionRequest 通知,不再默认启用 PreToolUse

原因是 Codex app 目前会把每一次 PreToolUse hook 都显示成“调用工具前”的记录。即使脚本内部判断普通命令后直接退出,UI 里还是会出现很多 hook 记录,实际体验会比较吵。

现在默认行为是:

  • Codex 真正发出权限请求时通知。
  • 不再每次 Bash 调用前运行 PreToolUse
  • 所以不会再刷“调用工具前”记录。

对应的限制是:sudo Password: 这类子进程密码输入等待,默认方案不再提前兜底。Codex 目前还没有稳定的“子进程已经进入等待 stdin/password 状态”的 hook;如果强行用 PreToolUse 做前置识别,就会带来上面说的 UI 噪音。

仓库 README 和安装脚本已经更新: