Add configurable audible alert for pending permission approvals in Codex CLI

Resolved 💬 3 comments Opened Feb 12, 2026 by you-apps-code Closed Feb 12, 2026
💡 Likely answer: A maintainer (etraut-openai, contributor) responded on this thread — see the highlighted reply below.

What variant of Codex are you using?

CLI

What feature would you like to see?

I’d like to request an improvement for Codex CLI: play a configurable audible alert whenever the agent requests a permission approval (similar to Copilot CLI).

Why this helps
During long-running tasks, I’m not always watching the terminal. Approval prompts can be missed, which adds unnecessary delay.

Proposed behavior

  • Add a config option: approval_sound (on/off)
  • Optionally allow:
  • choosing sound type/volume
  • using system notification sound
  • repeating alert every X seconds while approval is pending

Expected outcome
Faster response to approval prompts and smoother human-in-the-loop workflows.

Additional information

_No response_

View original on GitHub ↗

3 Comments

etraut-openai contributor · 6 months ago

The challenge here is that the interactive CLI uses a TUI (terminal user interface), and terminals don't support general audio playback. Some terminals support OS-level toasts via an OSC9 escape sequence. Most terminals support a basic "beep" sound using a "bel" character. Codex supports both of these, but you may need to configure to get it to work with your particular terminal. See this documentation for details.

Playback of an arbitrary wave file is theoretically possible, but it would work only for local terminal sessions, so it's not clear that would be a good feature.

We have more flexibility here in our GUI-based Codex clients — in particular, our recently-released Codex app. It allows for more configuration with regard to notifications.

youngjoel · 15 days ago

Just need to add a new notify event type beyond agent-turn-complete. Say an approval-requested event.

This is the biggest productivity hit for me with codex-cli.

youngjoel · 15 days ago

Ah well, can basically do it with:
[[hooks.PermissionRequest]]
matcher = ".*"

[[hooks.PermissionRequest.hooks]]
type = "command"
command = "~/.codex/make_a_sound_frog.zsh"

in the config.toml