Generador de notificaciones de Claude Code, Codex y Gemini CLI.
Un hook es un comando corto que tu agente de IA ejecuta en un momento concreto, por ejemplo, cuando termina una respuesta. Esta herramienta gratuita genera el hook o el ajuste integrado para configurar tus notificaciones.
Elige tu agente, los momentos que te interesan (cuando termina o necesita tu permiso) y cómo quieres que te avise. Esta página genera el fragmento exacto, indica en qué archivo va y puede combinarlo con una copia de ese archivo. Para Claude Code genera hooks Stop y Notification; para Codex y Gemini CLI, los suyos. Nada de lo que escribas sale de tu navegador.
Cowork Island
macOS 14 o posterior.
Apple silicon e Intel.
El plan Gratis no requiere una cuenta.
Elige tu aviso.
Las opciones siguientes necesitan JavaScript. Sin él, esta página muestra la configuración más habitual: un banner en el Mac cuando Claude Code termina o te necesita.
Tu configuración.
Elige al menos un momento: cuando termine o cuando te necesite.
Para mostrar un banner en el Mac, puede que no necesites un hook. Para un aviso al móvil, una frase hablada o un aviso solo con sonido, usa el hook generado abajo. En iTerm2, Ghostty y Kitty, Claude Code ya muestra una notificación de escritorio cuando termina o te necesita y parece que no estás usando el terminal. En iTerm2, abre también Settings > Profiles > Terminal, marca Notification Center Alerts, haz clic en Filter Alerts y activa Send escape sequence-generated alerts. Los hooks se ejecutan junto con esa notificación integrada, así que, si usas ambos, puede que recibas dos avisos.
Para mostrar un banner en el Mac, puede que no necesites un hook. Para un aviso al móvil, una frase hablada o un aviso solo con sonido, usa el hook generado abajo. Los avisos de terminal propios de Codex están activados por defecto. Según la documentación de Codex, usan una secuencia de escape que algunos terminales muestran como notificación de escritorio, así que puede que ya aparezcan en el tuyo. Para limitar los avisos a los momentos que has elegido, usa las líneas [tui] de abajo. Estos ajustes controlan los avisos en tu Mac. No sustituyen a un hook de avisos al móvil.
Para mostrar un banner en el Mac, puede que no necesites un hook. Para un aviso al móvil, una frase hablada o un aviso solo con sonido, usa el hook generado abajo. Las notificaciones integradas de Gemini CLI aparecen como notificaciones de escritorio en iTerm2, WezTerm, Ghostty y Kitty. Son experimentales y están desactivadas por defecto: actívalas en Gemini CLI con /settings > General > Enable Notifications. Usa esa opción o los hooks de abajo, pero no ambos, o recibirás dos avisos.
Avisos integrados de Codex, con la campana.
Opcional: avisos integrados de Codex para el Mac.
En ~/.codex/config.toml
Si el archivo ya tiene una sección [tui], no añadas otra vez la línea [tui]. Dentro de la sección existente, cambia el valor de las claves que ya estén y añade solo las que falten. Un segundo encabezado [tui] o una clave repetida impiden que Codex lea el archivo.
El efecto de la campana depende de tu terminal. En Terminal, abre Settings > Profiles > Advanced > Bell para elegir un sonido, un globo en el icono o que el icono del Dock salte.
Hooks para el aviso que has elegido.
En ~/.claude/settings.json~/.codex/hooks.json~/.gemini/settings.json
Añade estas entradas al objeto "hooks" del archivo, junto a las que ya tenga. No sustituyas el archivo: puede contener otros ajustes tuyos y hooks de otras herramientas. Los archivos de configuración exigen JSON estricto, sin comentarios ni comas finales. Para hacerlo más fácil, pega tu archivo actual en el cuadro de combinación de abajo.
Añádelas como entradas nuevas en el archivo. Cowork Island y otras herramientas pueden escribir en este mismo archivo, así que nunca lo sobrescribas; el cuadro de combinación de abajo añade las entradas por ti. Después, abre Codex, escribe /hooks y marca cada entrada nueva como de confianza: Codex omite los hooks nuevos o modificados hasta que lo hagas.
Añade estas entradas al objeto "hooks" del archivo, junto a las que ya tenga, o usa el cuadro de combinación de abajo. Los hooks de Gemini CLI solo pueden emitir JSON, así que cada comando termina emitiendo {}.
Añade este ajuste al archivo, junto a lo que ya tenga, o usa el cuadro de combinación de abajo.
{
"hooks": {
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "/usr/bin/osascript -e 'on run argv' -e 'display notification (item 1 of argv) with title (item 2 of argv) subtitle (item 3 of argv) sound name \"Glass\"' -e 'end run' 'Claude Code finished' 'Claude Code' \"${PWD##*/}\""
}
]
}
],
"Notification": [
{
"matcher": "permission_prompt|elicitation_dialog|elicitation_url_dialog",
"hooks": [
{
"type": "command",
"command": "/usr/bin/osascript -e 'on run argv' -e 'display notification (item 1 of argv) with title (item 2 of argv) subtitle (item 3 of argv) sound name \"Funk\"' -e 'end run' 'Claude Code needs you' 'Claude Code' \"${PWD##*/}\""
}
]
}
]
}
}
- En Claude Code, los avisos de permisos y las peticiones de información de herramientas conectadas llegan unos 6 segundos después de que aparezca la solicitud. Si escribes, se retrasan. Así funciona el hook Notification de Claude Code. Otras preguntas pueden no activar este hook.
- El aviso de finalización usa Stop, que se activa cada vez que Claude termina una respuesta, no solo al final de una tarea larga. No se activa cuando interrumpes a Claude.
- Claude Code no ejecuta los hooks de una carpeta hasta que aceptas su diálogo de confianza en el espacio de trabajo. En un Mac de trabajo, tu organización puede permitir solo sus propios hooks.
- Esta opción usa el ajuste integrado de Claude Code, no un hook. Abarca los dos momentos: una tarea terminada y una solicitud de permiso pendiente. También puedes configurarlo en Claude Code con
/config> Local notifications. El efecto de la campana depende de tu terminal: en Terminal, abre Settings > Profiles > Advanced > Bell. - Esta opción activa las notificaciones integradas de Gemini CLI, que son experimentales, y solicita que usen la campana. Abarcan los dos momentos: cuando se requiere una acción y cuando se completa la sesión.
- La entrada PermissionRequest se ejecuta en segundo plano y no toma ninguna decisión: Codex sigue mostrando su solicitud de aprobación habitual.
- Usa estos hooks o las notificaciones integradas de Gemini CLI (Enable Notifications en
/settings), pero no ambos, o recibirás dos avisos. - Según la documentación de Gemini CLI, los usuarios del nivel gratuito y de Google One pasaron a Antigravity CLI el 18 de junio de 2026. Estos ajustes son para Gemini CLI.
- Si una sesión que ya está abierta no aplica el cambio, reiníciala.
Opcional: un banner mediante el ajuste notify de Codex como alternativa.
El ajuste notify de Codex ejecuta un programa cada vez que termina un turno. Nunca se ejecuta para las solicitudes de aprobación. Si lo usas, no incluyas la entrada Stop de arriba, o recibirás dos banners por la misma respuesta.
1. Guarda esto como ~/.codex/notify-macos.js
Codex no expande ~ en este ajuste, así que la ruta debe estar completa. En Terminal, echo $HOME te la muestra.
2. Añade esta línea a ~/.codex/config.toml
Escribe tu nombre de usuario arriba: hasta entonces, la línea muestra YOUR_NAME.
- Solo se permite una línea
notifypor archivo. Si el tuyo ya tiene una, no añadas otra: el archivo dejaría de cargarse. Usa el hook Stop de arriba en su lugar. - Pon la línea cerca del principio, antes de la primera línea que empiece por
[. Si está debajo de un encabezado de sección como[tui], Codex la lee como parte de esa sección y la ignora. - Cowork Island nunca usa
notify, así que esta línea y la app no entran en conflicto.
Pruébalo en Terminal:
Tu tema de ntfy con nombre aleatorio.
Los temas de ntfy.sh son públicos. Cualquiera que conozca o adivine el nombre de un tema puede leer lo que se envía a él, así que trátalo como una contraseña. Por eso este tema tiene 32 caracteres aleatorios generados por tu navegador y el hook solo envía una frase fija, como «Claude Code ha terminado», nunca la respuesta del agente ni el contenido de tus archivos.
Instala la app ntfy en tu móvil y suscríbete a este tema. ntfy.sh es un servicio gratuito de terceros con sus propios límites diarios de mensajes.
Pruébalo.
Pega esta línea en Terminal y pulsa Retorno. Ejecuta el mismo comando que ejecutará el hook, así que envía un mensaje de prueba a tu tema.
/usr/bin/osascript -e 'on run argv' -e 'display notification (item 1 of argv) with title (item 2 of argv) subtitle (item 3 of argv) sound name "Glass"' -e 'end run' 'Claude Code finished' 'Claude Code' "${PWD##*/}"
Prueba la campana.
Pega esta línea en Terminal y pulsa Retorno:
printf '\a'
Permite que Editor de Scripts muestre notificaciones. Estos banners proceden de la app Editor de Scripts de macOS, y macOS no pide permiso antes: hasta que lo permitas, no aparece nada ni se te indica por qué. Ejecuta la línea de prueba una vez. Después, abre Ajustes del Sistema > Notificaciones, busca Editor de Scripts y activa Permitir notificaciones.
Combina las entradas con tu archivo actual.
Pega aquí todo tu archivo actual y esta página le añadirá las entradas nuevas. Las entradas de hooks que ya tenga se conservan tal cual, incluidas las de otras herramientas y las de Cowork Island. Si has elegido un ajuste integrado, su nuevo valor sustituye al anterior y la página te indica cuál ha cambiado. Si combinas la misma opción dos veces, no se duplica nada. Lo que pegues se queda en esta página.
La combinación necesita JavaScript. Sin él, añade las entradas a mano como se explica arriba.
Con esta opción no hay nada que combinar: el ajuste va en ~/.codex/config.toml, como se muestra arriba.
Abre el archivo en un editor de texto, selecciona todo, cópialo y pégalo aquí. Si el archivo aún no existe, deja este campo vacío.
Si también usas Cowork Island.
Cowork Island, la app para Mac del creador de esta herramienta, añade sus propias entradas a los mismos archivos cuando se conecta a Claude Code, Codex o Gemini CLI. Estas entradas conviven con tus hooks existentes. La app considera que una entrada es suya si su comando contiene /.perch/ en cualquier posición, sin distinguir mayúsculas y minúsculas. Elimina y vuelve a añadir entradas completas, no comandos individuales.
- Cada fragmento de esta página es una entrada independiente y nunca apunta al interior de
~/.perch/, así que reinstalar o desactivar Cowork Island no lo modifica. - No pegues ninguno de estos comandos en una entrada de Cowork Island ni guardes tus propios scripts en
~/.perch/: la app los consideraría suyos. - No borres a mano las entradas de Cowork Island mientras su integración esté activada: la app vuelve a añadirlas la próxima vez que se inicia.
- Ambos funcionan a la vez. Claude Code y Codex ejecutan simultáneamente todos los hooks que correspondan, y Gemini CLI espera a que terminen todos.
- En Claude Code, el aviso de una solicitud de permiso usa el evento Notification, nunca un hook PermissionRequest, así que nunca puede responder a una solicitud por ti.
- Para Gemini CLI, esta herramienta genera hooks AfterAgent y Notification, nunca hooks BeforeTool.
Qué hace esta página con los datos que introduces.
Todo ocurre en tu navegador. El generador no hace peticiones de red, no guarda nada ni instala cookies: nada de lo que elijas, escribas o pegues sale de esta página. Copiar solo escribe en tu portapapeles cuando haces clic en el botón. El tema de ntfy se crea con el generador de números aleatorios integrado en tu navegador. Como en todas las páginas de este sitio, la visita en sí se contabiliza según lo descrito en la política de privacidad.
La opción sin configuración.
Cowork Island es una app para Mac del creador de esta herramienta. Reúne en un panel bajo el notch tus sesiones de agentes de IA y muestra el estado de cada una, para que veas de un vistazo cuál te necesita. Funciona con o sin notch.
- Claude Code y las herramientas que la app encuentra en tu Mac se conectan solas. Codex sigue desactivado hasta que lo actives en Ajustes y autorices los hooks de Cowork Island en Codex.
- Cada sesión muestra su estado y «Te necesita» cuando espera una acción tuya. Por defecto, la isla se despliega sola en ese momento, salvo que el terminal o la app de esa sesión ya esté en primer plano.
- Cuando una sesión termina, la isla se despliega durante 5 segundos por defecto.
- En Claude Code, puedes permitir o rechazar una acción, o responder a una pregunta con varias opciones desde la isla. Responder desde ahí es gratis. Con otras herramientas, puede que tengas que responder en su propia app o terminal.
- Los sonidos están desactivados hasta que los actives. El sonido «Se necesita aprobación» es gratis; el sonido de «Sesión completada» forma parte de Pro. La app no muestra banners propios de macOS.
Gratis muestra una tarjeta de sesión a la vez. Pro muestra todas tus sesiones, y saltar a la ventana, pestaña o panel de una sesión es una función de Pro. 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 la guía de instalación.
Descarga gratisFuentes.
- Documentación de Claude Code: referencia de hooks
- Documentación de Claude Code: guía de hooks
- Documentación de Claude Code: configuración del terminal
- Documentación de Claude Code: referencia de ajustes
- Documentación de Codex: hooks
- Documentación de Codex: configuración avanzada
- Documentación de Codex: referencia de configuración
- Documentación de Gemini CLI: referencia de hooks
- Documentación de Gemini CLI: notificaciones
- Documentación de Gemini CLI: referencia de configuración
- Guía de automatización del Mac mediante scripts: mostrar notificaciones
- Manual de uso de Terminal: ajustes avanzados
- Documentación de ntfy: publicación
- Preguntas frecuentes sobre Cowork Island y guía de instalación
Fuentes consultadas el 18 de octubre de 2026. El creador de Cowork Island ha desarrollado esta herramienta. Para señalar una corrección, escribe a support@coworkisland.com o abre una incidencia en GitHub.