Codex 通知:在完成或等待核准時收到提醒
Codex 可以在回合完成和需要你核准時通知你。問題在於:設定檔中的兩種機制涵蓋的事件不同,而且在大多數終端機上,「桌面通知」會悄悄變成響鈴。
簡答
使用 [tui] 區段:notifications = ["agent-turn-complete", "approval-requested"];如果希望終端機在焦點中時也收到提醒,再加上 notification_condition = "always"。Codex 只會在 Ghostty、iTerm2、Kitty、Warp 和 WezTerm 中傳送桌面通知(OSC 9)。在其他所有終端機(包括 Windows Terminal)中,它會響鈴。頂層的 notify 設定會執行你自己的程式,但只針對 agent-turn-complete,絕不會針對核准。
兩個不同的設定
| [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 只有在辨識出 Ghostty、iTerm2、Kitty、Warp 或 WezTerm 時才會傳送桌面通知(OSC 9 跳脫序列)。其他所有終端機(Windows Terminal、VS Code 終端機、Apple Terminal)收到的都是終端機響鈴。這來自 Codex 的原始碼(tui/src/notifications/mod.rs);文件只說 auto「prefers OSC 9」(優先使用 OSC 9)。
在 Windows Terminal 上,你可以讓響鈴更明顯:在設定檔設定中把 bellStyle 設為 all,就會播放音效並讓工作列圖示閃爍(預設為 audible)。
你也可以強制使用 notification_method = "osc9";終端機是否會把它轉成系統通知,取決於終端機本身。
用 notify 執行你自己的程式
notify 會在回合完成時執行外部程式,並傳入一個 JSON 引數,包含 type、thread-id、turn-id、cwd、input-messages 和 last-assistant-message。因此它很適合用於手機推播、webhook 或記錄,也就是終端機以外的任何用途。它是頂層鍵,所以要放在所有 [section] 之前:
以下是一個最精簡的指令碼,參照 OpenAI 文件中的範例:
- 專案的
.codex/config.toml無法設定notify。它必須放在你的使用者設定中。 - Codex 的原始碼把
notify標為舊版功能,並計畫以 hook 取代。它目前仍可運作;請留意變更記錄。
那 hook 呢?
Codex 也有 hook。它們預設開啟,包含 PermissionRequest 和 Stop 事件,在 ~/.codex/hooks.json 或 [hooks] 表格中設定,而且每個非受管理的 hook 都必須先透過 /hooks 審查並信任後才會執行。沒有 Notification 事件,OpenAI 的文件也沒有示範通知 hook。若要收到提醒,文件記載的做法就是上述 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] 區段中,把 "approval-requested" 加入 notifications。notify 設定不會針對核准觸發。
為什麼 Codex 只會嗶一聲,而不顯示通知?
在 auto 模式下,Codex 只會在 Ghostty、iTerm2、Kitty、Warp 和 WezTerm 中傳送桌面通知。其他終端機(包括 Windows Terminal)收到的是響鈴。
可以把 notify 放在專案的 .codex/config.toml 中嗎?
不行。專案設定無法設定 notify;請把它放在 ~/.codex/config.toml。
Codex 有 Notification hook 嗎?
沒有。Codex hook 包含 PermissionRequest 和 Stop,但沒有 Notification 事件,也沒有文件記載的通知 hook。
資料來源
本頁所有設定與行為均已於 2026年10月26日 對照下列頁面確認。代理程式更新很快;若內容不再相符,請以官方頁面為準。
- OpenAI:Codex 範例設定
- OpenAI:Codex 進階設定(notify)
- OpenAI:Codex 通知
- OpenAI:Codex hook
- openai/codex 原始碼:tui/src/notifications/mod.rs
- openai/codex 原始碼:tui/src/chatwidget/notifications.rs
- Issue #39346:行動裝置顯示等待核准,卻沒有核准卡片
- Microsoft Learn:Windows Terminal 設定檔設定(bellStyle)