Codex notifications on Mac
Last updated: October 8, 2026
In short: The Codex CLI has two settings for this. One shows a notification in your terminal, the other runs your own command when Codex finishes. Both are free. Vibeclove shows Codex in the MacBook notch, and you can approve its requests there.
Why you miss it
Codex asks for approval before it runs some commands. If you work in another window, you do not see the question, and the session waits. When Codex finishes a long task, you also do not know until you look.
Free option 1: terminal notifications
Open ~/.codex/config.toml and add this:
[tui]
notifications = ["agent-turn-complete", "approval-requested"]
notification_condition = "unfocused"Codex now sends a notification when a turn is done and when it needs your approval. With "unfocused", it only does this when the terminal is not in front. Use "always" to get them every time.
Codex sends these through the terminal, so your terminal must show them. iTerm2 and Ghostty do. If yours does not, add notification_method = "bel" under [tui] to get the terminal bell.
Free option 2: your own command
The notify setting runs a command when Codex finishes a turn. This sends a normal Mac notification:
notify = ["osascript", "-e", "display notification \"Codex is done\" with title \"Codex\""]Put notify at the top of the file, above any section such as [tui]. In TOML, a line under a section belongs to that section, and Codex then does not find it.
Codex adds one JSON argument to your command. It has the folder (cwd) and Codex's last message (last-assistant-message). A script can use them to say which project is done. The first time, macOS can ask you to allow notifications from Script Editor.
What the free options cannot do
- You cannot approve from the notification. You still find the right terminal tab and answer there.
notifyruns only when a turn is done, not when Codex waits for approval.- Terminal notifications work only in terminals that support them.
- With several sessions, the notifications do not show which one needs you, unless you write a script for it.
With Vibeclove
Vibeclove adds its own hooks to Codex when you connect it. Codex runs only hooks that you trust. The next time you start codex, choose Trust all and continue. In the Codex app, open Settings, then Hooks, and click Trust all. Then each session shows in the MacBook notch:
- The notch shows a spinner while Codex works, a check when it is done, and an orange hand when it waits for you.
- You can allow or deny a request in the notch.
- A click on a session opens its tab in Terminal, iTerm2, Ghostty, tmux or cmux.
- The notch also shows your Codex usage limits and when they reset.
Claude Code, Devin and OpenCode work the same way. Gemini CLI and Copilot CLI show when they wait for you, and you answer in the terminal. For Cursor and Amp, the notch shows status only.
Download Vibeclove. It is free for 5 days, then $9.99 once. It needs macOS 26 or later.