さっきローカルで解決した Codex の通知漏れ問題を、小さなツールとしてまとめました:
openai/codex のディスカッションにも投稿しました:
このツールが解決するのは、Codex デフォルトの「turn 終了通知」だけでは「戻ってきて対応が必要」な状況を十分にカバーできない、という問題です。たとえば、タスクの途中で権限承認が必要になったり、sudo xcodebuild -license accept、インストーラ、softwareupdate のような管理者パスワード入力が発生しがちなコマンドを実行しようとしたりするケースでは、ウィンドウが前面にないと Codex がまだ動いていると勘違いしやすい一方で、実際には人待ちで止まっていることがあります。
効果:
- Codex が
PermissionRequestを出したときに macOS のシステム通知を出します。 sudo、xcodebuild -license、xcodebuild -runFirstLaunch、.pkginstaller、softwareupdate、AppleScript administrator privileges など、手動介入が必要になりがちなコマンドの実行前に事前通知します。- 通常のコマンドでは通知しないので、
ls、git、ビルドのたびに毎回ポップアップすることはありません。 - 通知とログだけを行い、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 がないため、このツールは実行前に高リスクなコマンドを識別して、よくある場面をカバーする方式になっています。