Acabo de organizar en una pequeña herramienta lo que resolví hace un momento en mi máquina sobre el problema de que Codex se salteaba las notificaciones:
También lo publiqué en el área de discusiones de openai/codex:
El problema que resuelve es: la notificación por defecto de fin de turn de Codex no cubre todos los escenarios en los que “tienes que volver para encargarte”. Por ejemplo, cuando una tarea va a mitad y necesita aprobación de permisos, o cuando está a punto de ejecutar comandos como sudo xcodebuild -license accept, instaladores, softwareupdate y similares, que muy probablemente requieren introducir la contraseña de administrador: si la ventana no está en primer plano, es fácil pensar que Codex sigue corriendo, cuando en realidad ya se quedó esperando a alguien.
Resultado:
- Cuando Codex emite
PermissionRequest, aparece una notificación del sistema de macOS. - Antes de ejecutar comandos habituales que requieren intervención humana, avisa con antelación, por ejemplo
sudo,xcodebuild -license,xcodebuild -runFirstLaunch, instaladores.pkg,softwareupdate, AppleScript administrator privileges. - Los comandos normales no notifican; no salta una notificación cada vez que haces
ls,gito un build. - Solo hace notificaciones y registros; no aprueba, rechaza ni reescribe automáticamente las llamadas a herramientas de Codex.
- El log se escribe en
~/.codex/logs/codex-attention-notifier.log.
Método de instalación:
git clone https://github.com/constansino/codex-attention-notifier.git
cd codex-attention-notifier
python3 install.py
Después de instalarlo, reinicia Codex Desktop o abre una nueva sesión de Codex para que la nueva configuración de hooks surta efecto.
Puedes probarlo con este comando: no ejecuta sudo de verdad, solo simula la entrada del hook de Codex:
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
Si todo va bien, verás una notificación de macOS y también podrás ver el log:
tail -n 5 ~/.codex/logs/codex-attention-notifier.log
También dejo claras las limitaciones: esto no es una función oficial de primera clase, sino un parche práctico basado en los hooks de Codex. Para el caso en que “el subproceso ya empezó a correr y recién después se queda bloqueado en stdin/contraseña”, por ahora Codex no tiene un hook estable de evento de espera de entrada, así que esta herramienta cubre los escenarios comunes identificando comandos de alto riesgo antes de ejecutarlos.