Codex の通知: 完了時や承認待ちのときに知らせを受け取る
Codex は、ターンが終わったときと承認が必要なときに知らせてくれます。ただし落とし穴があります。設定ファイルにある 2 つの仕組みは対象のイベントが異なり、ほとんどのターミナルでは「デスクトップ通知」がいつの間にかベルになってしまうのです。
要点
[tui] セクションを使います。notifications = ["agent-turn-complete", "approval-requested"] とし、ターミナルにフォーカスがあるときも通知が欲しければ notification_condition = "always" を追加します。Codex がデスクトップ通知(OSC 9)を送るのは Ghostty、iTerm2、Kitty、Warp、WezTerm だけです。Windows Terminal を含むそれ以外の環境では、ベルが鳴ります。トップレベルの notify 設定は独自のプログラムを実行しますが、対象は agent-turn-complete だけで、承認では決して実行されません。
2 つの異なる設定
| [tui] notifications | notify | |
|---|---|---|
| 動作 | Codex CLI からのターミナル通知 | 指定したプログラムを実行する |
| ターン完了 | 対応(agent-turn-complete) | 対応(agent-turn-complete) |
| 承認リクエスト | 対応(approval-requested) | 非対応 |
| プラン / 質問のプロンプト | 対応(plan-mode-prompt、async-question) | 非対応 |
| デフォルト | オン | オフ |
Codex があなたを待っているときに知りたいなら、notify だけでは決して実現できません。その用途には TUI の通知を使います。
TUI の通知
OpenAI のサンプル設定のうち、関係する部分は次のとおりです。
notifications:true、false、またはイベントのリスト。approval-requestedは、コマンド、ファイル編集、MCP の承認リクエストを対象とします。notification_condition: デフォルトでは、ターミナルにフォーカスがないときだけ通知が発生します。別のモニターにターミナルを表示したままにしているなら、alwaysを設定します。notification_method:auto、osc9、belのいずれか。
メッセージは「Approval requested: <command>」、「Codex wants to edit <file>」、「Agent turn complete」のような形式です。
ビープ音しか鳴らない理由(Windows Terminal など)
auto モードの Codex がデスクトップ通知(OSC 9 エスケープシーケンス)を送るのは、Ghostty、iTerm2、Kitty、Warp、WezTerm を認識した場合だけです。それ以外のターミナル(Windows Terminal、VS Code のターミナル、Apple Terminal)ではターミナルのベルになります。これは Codex のソースコード(tui/src/notifications/mod.rs)に基づく情報で、ドキュメントには auto が「OSC 9 を優先する」としか書かれていません。
Windows Terminal では、ベルをもっと目立たせることができます。プロファイル設定で bellStyle を all にすると、音が鳴り、タスクバーのアイコンが点滅します(デフォルトは audible)。
notification_method = "osc9" を強制することもできます。それがシステム通知になるかどうかはターミナル次第です。
notify で独自のプログラムを実行する
notify はターンが完了したときに外部プログラムを実行し、type、thread-id、turn-id、cwd、input-messages、last-assistant-message を含む JSON 引数を 1 つ渡します。そのため、スマートフォンへのプッシュ通知、Webhook、ログなど、ターミナルの外での用途に向いています。トップレベルのキーなので、どの [section] よりも上に書きます。
OpenAI のドキュメントにあるものに沿った最小限のスクリプトです。
- プロジェクトの
.codex/config.tomlではnotifyを設定できません。ユーザー設定に書く必要があります。 - Codex のソースコードでは
notifyがレガシーとされ、フックに置き換える予定になっています。現在は動作しますが、変更履歴に注意しておいてください。
フックはどうか
Codex にもフックがあります。デフォルトで有効で、PermissionRequest と Stop のイベントを含み、~/.codex/hooks.json または [hooks] テーブルで設定します。マネージドでないフックはすべて、実行前に /hooks で確認して信頼する必要があります。Notification イベントはなく、OpenAI のドキュメントにも通知用のフックは載っていません。通知を受け取るには、ドキュメントに記載されている上記の TUI 設定を使います。
Codex アプリと IDE 拡張機能
Codex デスクトップアプリには独自の設定があります。ターン完了の通知は、通知しない、アプリがバックグラウンドのときだけ、常に、から選べ、許可と質問の通知はそれぞれ個別のスイッチでオンとオフを切り替えられます。IDE 拡張機能には独自の通知設定がありません。OpenAI のドキュメントでは、代わりに notify を使うよう案内されています。
ChatGPT アプリを通じてスマートフォンから承認する場合、issue #39346 では、スマートフォンに「approval waiting」と表示されるのに応答するためのカードが出ないケースが報告されています。
目で確認して、その場で応答する
ベルは、どこかのターミナルで何かが起きたことを教えてくれるだけです。Pet Island は、Codex の状態(作業中、待機中、完了)を画面上部の小さなアイランドに表示し、Codex がコマンドの実行やファイルの編集を求めると、コマンドや差分とともにリクエストがそこに表示されます。ウィンドウを切り替えずに許可または拒否でき、質問の場合はワンクリックで該当のターミナルに移動できます。Codex CLI と Codex アプリの両方で、Claude Code、Cursor、その他のエージェントと並べて使えます。
よくある質問
Codex の完了時に通知を受け取るには?
Codex の TUI 通知は agent-turn-complete についてデフォルトで有効ですが、デフォルトではターミナルにフォーカスがないときだけ発生します。フォーカスがあるときも通知が欲しい場合は、[tui] で notification_condition = "always" を設定します。
Codex が承認を必要とするときに通知を受け取るには?
~/.codex/config.toml の [tui] セクションで、notifications に "approval-requested" を追加します。notify 設定は承認では発火しません。
Codex が通知を表示せずにビープ音だけを鳴らすのはなぜですか?
auto モードの Codex がデスクトップ通知を送るのは Ghostty、iTerm2、Kitty、Warp、WezTerm だけだからです。Windows Terminal を含むその他のターミナルではベルが鳴ります。
プロジェクトの .codex/config.toml に notify を書けますか?
いいえ。プロジェクト設定では notify を設定できません。~/.codex/config.toml に書いてください。
Codex に Notification フックはありますか?
いいえ。Codex のフックには PermissionRequest と Stop がありますが、Notification イベントはなく、文書化された通知用のフックもありません。
出典
このページの設定と動作はすべて、2026年10月26日 に以下のページと照らし合わせて確認しました。エージェントは変化が速いため、内容が一致しなくなった場合は公式ページの記述を優先してください。
- OpenAI: Codex サンプル設定
- OpenAI: Codex 詳細設定(notify)
- OpenAI: Codex の通知
- OpenAI: Codex フック
- openai/codex ソース: tui/src/notifications/mod.rs
- openai/codex ソース: tui/src/chatwidget/notifications.rs
- Issue #39346: モバイルに承認待ちと表示されるが承認カードが出ない
- Microsoft Learn: Windows Terminal のプロファイル設定(bellStyle)