Notificaciones de Codex en Mac: entérate cuando necesita tu aprobación o termina.
Las notificaciones de Codex pueden avisarte cuando termina y cuando espera tu aprobación, pero su ajuste notify solo cubre el primer caso. Esta guía explica qué hace cada ajuste de avisos de Codex en un Mac, con ejemplos de código contrastados con la documentación de OpenAI.
El ajuste notify de Codex ejecuta tu programa solo cuando termina un turno, no cuando necesita aprobación (a fecha de octubre de 2026). Para recibir avisos de aprobación, usa las notificaciones integradas de Codex para el terminal ([tui] notifications, activadas por defecto cuando el terminal está en segundo plano, aunque solo aparecen como un banner en algunos terminales) o un hook PermissionRequest en ~/.codex/hooks.json. En la app de escritorio de ChatGPT, activa las notificaciones de permisos en Settings > Notifications.
Cowork Island
macOS 14 o posterior.
Apple silicon e Intel.
El plan Gratis no requiere una cuenta.
Para qué sirve cada ajuste de Codex.
Estas son cuatro formas de recibir avisos de Codex en un Mac. Un turno es un ciclo de trabajo: envías un mensaje, Codex trabaja y luego se detiene y espera tu respuesta. Un hook es un comando que Codex ejecuta en un momento concreto, por ejemplo, justo antes de pedirte aprobación.
| Ajuste | Dónde se configura | Turno terminado | Necesita aprobación | Qué debes saber |
|---|---|---|---|---|
notify | ~/.codex/config.toml | Sí | No | Desactivado hasta que lo configures. Ejecuta un programa que tú eliges. |
[tui] notifications | ~/.codex/config.toml | Sí | Sí | Activadas por defecto. Se activan cuando el terminal no está en primer plano. Solo muestran un banner en los terminales compatibles. |
Hooks (Stop, PermissionRequest) | ~/.codex/hooks.json | Sí | Sí | Activados por defecto. Debes marcar cada hook nuevo como de confianza en /hooks antes de que se ejecute. |
| App de escritorio de ChatGPT | Settings > Notifications | Sí | Sí | Interruptores independientes para los avisos de turnos terminados, permisos y preguntas. |
Un error habitual es configurar notify y esperar un aviso de aprobación que nunca llega. La documentación de configuración de OpenAI indica que, por ahora, notify solo se activa con agent-turn-complete. Para las aprobaciones, usa una de las otras tres opciones de la tabla.
Empieza por los avisos integrados de Codex.
Las notificaciones de Codex para el terminal están activadas por defecto, así que puede que ya las recibas. Solo se activan cuando el terminal (la app donde se ejecuta Codex, como Terminal o iTerm2) no está en primer plano. Si quieres elegir qué eventos generan avisos, indícalos en tu archivo de configuración.
Añade lo siguiente a ~/.codex/config.toml. Si el archivo ya tiene una sección [tui], coloca estas claves dentro de ella; no añadas un segundo encabezado [tui]. La lista de terminales del comentario procede del código fuente de Codex, no de su documentación (ver más abajo).
[tui]
notifications = ["agent-turn-complete", "approval-requested"]
notification_method = "auto" # osc9 in iTerm2/Ghostty/Kitty/Warp/WezTerm; bel elsewhere
notification_condition = "unfocused" # or "always"
Con notification_method en auto, Codex elige cómo avisarte: osc9 envía un código especial (una secuencia de escape) que algunos terminales convierten en una notificación de escritorio, y bel hace sonar la campana del terminal. Establece notification_condition en "always" si quieres recibir avisos incluso mientras miras el terminal.
Por qué Terminal solo hace sonar una campana.
La documentación de OpenAI no especifica qué terminales muestran un banner. El código fuente público de Codex (por lo que esto puede cambiar) envía la secuencia del banner a Ghostty, iTerm2, Kitty, Warp y WezTerm, y una simple señal de campana a los demás terminales, incluida la app Terminal que viene con macOS. Una campana por sí sola no muestra ningún banner. En Terminal, Settings > Profiles > Advanced > Bell ofrece una campana visual, un distintivo en el Dock y un icono del Dock que salta mientras la ventana está en segundo plano. Para recibir un banner de verdad en Terminal, usa el hook que encontrarás más abajo.
Dentro de tmux, la secuencia del banner de Codex solo pasa si allow-passthrough está activado: con on, solo desde un panel visible; con all, también desde paneles ocultos (manual de tmux). Añade esta línea a ~/.tmux.conf, o escribe all en lugar de on para recibir avisos de paneles ocultos:
set -g allow-passthrough on
Recibe un banner en el Mac al terminar un turno con notify.
notify ejecuta un programa cuando termina un turno y le pasa los detalles en un único argumento JSON. Funciona igual en cualquier terminal. El ejemplo de OpenAI usa terminal-notifier, una herramienta de terceros disponible en Homebrew que no viene con macOS. El script siguiente usa solo lo que incluye macOS: muestra el principio de la última respuesta de Codex y la carpeta del proyecto, y reproduce el sonido Glass.
Paso 1. Guarda lo siguiente en un archivo nuevo, ~/.codex/notify-macos.js:
// Codex notify -> macOS banner + sound. Codex appends one JSON argument.
function run(argv) {
var n = {};
try { n = JSON.parse(argv[argv.length - 1] || "{}"); } catch (e) {}
if (n.type && n.type !== "agent-turn-complete") return;
var app = Application.currentApplication();
app.includeStandardAdditions = true;
var msg = String(n["last-assistant-message"] || "Turn complete").slice(0, 180);
var folder = String(n.cwd || "").split("/").pop();
app.displayNotification(msg, { withTitle: "Codex finished", subtitle: folder, soundName: "Glass" });
}
Paso 2. Añade esta línea a tu archivo ~/.codex/config.toml existente, por encima del primer encabezado [section]. Sustituye YOUR_NAME por el nombre de tu carpeta de usuario: Codex ejecuta esta lista tal como está escrita, así que no convierte ~ en la ruta de tu carpeta de usuario (según el código fuente de Codex, no su documentación).
notify = ["/usr/bin/osascript", "-l", "JavaScript", "/Users/YOUR_NAME/.codex/notify-macos.js"]
Tres cosas que impiden que notify funcione:
- Una segunda línea
notify. La configuración solo admite una, y repetir una clave impide que se cargue el archivo. Si otra herramienta ya la usa, haz que apunte a un pequeño script que ejecute ambos programas, o usa un hookStop, ya que los hooks de todos los archivos se ejecutan en paralelo. - Colocarla donde no corresponde. Si pegas la línea al final del archivo, debajo de un encabezado
[section], pasa a formar parte de esa sección y Codex no la lee comonotify. - Usar la configuración de un proyecto. Codex ignora
notifyen el archivo.codex/config.tomlde un proyecto. Solo funciona en~/.codex/config.toml.
Si no aparece ningún banner, abre Ajustes del Sistema > Notificaciones. La guía de hooks de Anthropic indica que los banners enviados con osascript aparecen allí bajo Script Editor (Editor de Scripts), cuyas notificaciones debes permitir, y que macOS no te pedirá permiso antes. El nombre que veas puede variar en tu Mac.
Recibe un banner de aprobación con un hook de Codex.
Los hooks permiten recibir un banner de aprobación de verdad en cualquier terminal, incluido Terminal. Codex ejecuta un hook PermissionRequest justo antes de pedirte que apruebes algo, y un hook Stop cuando termina un turno. PermissionRequest no se activa con comandos que no necesitan aprobación.
Integra lo siguiente en ~/.codex/hooks.json. Si el archivo ya existe, no lo sustituyas: otras herramientas pueden guardar ahí sus entradas (Cowork Island lo hace cuando activas Codex en ella). Añade cada entrada de abajo a la lista correspondiente dentro de "hooks", crea la lista si no existe y mantén cada entrada entre sus propias llaves.
{
"hooks": {
"PermissionRequest": [
{ "hooks": [ { "type": "command", "async": true, "timeout": 10,
"command": "/usr/bin/osascript -e 'display notification \"Codex needs your approval\" with title \"Codex\" sound name \"Funk\"' >/dev/null 2>&1" } ] }
],
"Stop": [
{ "hooks": [ { "type": "command", "async": true, "timeout": 10,
"command": "/usr/bin/osascript -e 'display notification \"Codex finished\" with title \"Codex\" sound name \"Glass\"' >/dev/null 2>&1" } ] }
]
}
}
- Guarda el archivo, abre Codex y escribe
/hooks. - Marca las dos entradas nuevas como de confianza. Codex omite los hooks nuevos o modificados hasta que lo haces, así que un hook que aún no has marcado como de confianza parece no funcionar.
- Mantén la terminación
>/dev/null 2>&1: un hookStopdebe devolver JSON o no devolver nada.
Si prefieres una frase hablada o un aviso en el móvil, el generador de configuración de avisos crea la entrada en tu navegador e indica en qué archivo debes guardarla.
Codex en la app de escritorio de ChatGPT.
Desde el 9 de julio de 2026, la app Codex forma parte de la app de escritorio de ChatGPT en macOS. Sus avisos se configuran en la app, no en archivos de configuración:
- Settings > Notifications (Cmd+,): puedes elegir que los avisos de turnos terminados no aparezcan nunca, solo cuando ChatGPT esté en segundo plano o siempre. Hay interruptores independientes para las notificaciones de permisos y preguntas.
- Sound: un mismo sonido de notificación para tareas terminadas, solicitudes de permiso y preguntas. Elige Default, Classic o None; en macOS también puedes usar un sonido del sistema o un archivo que importes.
- Activity: donde esté disponible, la campana de la barra lateral, o Cmd+Option+U, muestra los chats sin leer, en curso o que esperan tu respuesta.
Las claves [tui] anteriores son para Codex en un terminal. La documentación de OpenAI no indica si notify o tus propios hooks se ejecutan para los chats de la app de escritorio, así que no cuentes con ellos ahí.
La opción sin configuración.
Cowork Island es una app para macOS 14 o posterior que reúne en un panel bajo el notch tus sesiones de agentes de IA en las herramientas compatibles y muestra el estado de cada una. Ves qué sesión de Codex o Claude Code está trabajando y cuál «Te necesita», y los avisos forman parte de esa vista.
Codex está desactivado hasta que lo actives en Ajustes y después autorices los hooks de Cowork Island en Codex, un paso para marcarlos como de confianza como el anterior. A partir de ahí, cada sesión de Codex muestra su estado. Por defecto, cuando una te necesita, la isla se abre sola, salvo que el terminal de esa sesión, o la app de ChatGPT para sus propios chats de Codex, ya esté en primer plano; puedes desactivar este comportamiento con «Ante una pregunta» en Ajustes. Cuando una sesión termina, la isla se abre durante 5 segundos por defecto. Codex en la app de ChatGPT también muestra «Te necesita», y respondes en ChatGPT. Desde la isla puedes permitir o rechazar solicitudes compatibles de Claude Code, o responder a una pregunta con varias opciones. Con otras herramientas, puede que tengas que responder en su propia app o terminal.
Cowork Island no envía notificaciones de macOS. La propia isla se abre. Los sonidos están desactivados hasta que los actives; el sonido «Se necesita aprobación» es gratis y el de «Sesión completada» forma parte de Pro. No usa el ajuste notify de Codex, así que tu script de notify sigue funcionando. Añade sus propias entradas a ~/.codex/hooks.json junto a las tuyas: mantén tus hooks en entradas independientes, como en el ejemplo anterior, y fuera de su carpeta ~/.perch, y los dejará donde están.
Gratis muestra una tarjeta de sesión a la vez. Pro muestra todas tus sesiones, te permite saltar a ellas y añade medidores de uso detallados, sonidos de finalización y más opciones de mascotas. Empieza sola una prueba de Pro de 7 días, solo una vez por Mac, y no pide datos de pago. Consulta los planes y cómo instalarla.
Descarga gratisFuentes.
- OpenAI: Configuración avanzada
- OpenAI: Referencia de configuración
- OpenAI: Ejemplo de configuración
- OpenAI: Hooks
- OpenAI: Notificaciones
- OpenAI: Referencia de ajustes
- OpenAI: Registro de cambios
- Código fuente de openai/codex (solo para la lista de terminales)
- Apple: Ajustes avanzados de los perfiles de Terminal
- Apple: Mostrar notificaciones
- Manual de tmux
- Anthropic: Guía de hooks de Claude Code (Script Editor)
Fuentes consultadas el 18 de octubre de 2026. Esta guía la escribe el creador de Cowork Island. Para señalar una corrección, escribe a support@coworkisland.com o abre una incidencia en GitHub.