La gracia de Claude Code son las tareas largas: le pasas un encargo y te pones con otra cosa. El problema es saber cuándo volver. Si miras demasiado a menudo, pierdes el tiempo que te ibas a ahorrar; si miras tarde, el agente lleva esperando tu permiso desde el minuto dos.
En un Mac hay tres formas de resolverlo, desde un hook hecho a mano hasta una función integrada.
Los dos momentos que te interesan
Uses el método que uses, quieres enterarte de dos momentos distintos:
- Ha terminado. El agente completó su turno y espera tu siguiente mensaje.
- Necesita tu respuesta. El agente se detuvo a mitad de la tarea, normalmente para pedir permiso para ejecutar un comando o editar un archivo.
El segundo es el más importante. Un agente bloqueado en una petición de permiso no avanza nada.
Opción 1: hooks de Claude Code
Claude Code puede ejecutar un comando de shell cuando ocurren ciertos eventos. Dos eventos de hook cubren los momentos de arriba:
Stopse ejecuta cuando Claude termina de responder.Notificationse ejecuta cuando Claude necesita tu atención, por ejemplo una petición de permiso o una espera larga de tu respuesta.
Añádelos a ~/.claude/settings.json (para todos los proyectos) o a .claude/settings.json en un proyecto concreto. Este ejemplo usa osascript, que viene con macOS:
{
"hooks": {
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "osascript -e 'display notification \"Task finished\" with title \"Claude Code\" sound name \"Glass\"'"
}
]
}
],
"Notification": [
{
"hooks": [
{
"type": "command",
"command": "osascript -e 'display notification \"Waiting for your input\" with title \"Claude Code\" sound name \"Funk\"'"
}
]
}
]
}
}Reinicia Claude Code y lanza una tarea corta para probarlo. La primera vez, macOS puede preguntarte si Editor de Scripts puede mostrar notificaciones.
Limitaciones de este método: la notificación no dice de qué proyecto o terminal viene, hacer clic en ella no te lleva hasta allí y necesitas una configuración parecida para cada uno de los demás agentes. Consulta la documentación de hooks de Claude Code para ver la lista actual de eventos.
Opción 2: notify de Codex
Codex CLI puede ejecutar un programa después de cada turno del agente. En ~/.codex/config.toml, asigna un comando a notify; Codex le pasa una descripción del evento en JSON:
notify = ["osascript", "-e", "display notification \"Codex finished\" with title \"Codex\""]Las versiones recientes de Codex también admiten hooks, incluido un evento Stop, que se configuran en hooks.json o en una tabla [hooks] de config.toml. Las opciones cambian de una versión a otra, así que consulta la documentación de hooks de Codex para la tuya.
Opción 3: integrado en Vibe Console
Vibe Console vigila por ti todas las terminales de agentes, para los ocho agentes compatibles, sin configurar nada:
- Un punto de estado en cada pestaña indica si su agente está en ejecución o inactivo, así que una cuadrícula de agentes se entiende de un vistazo.
- Cuando un agente termina, la app reproduce un sonido (Glass por defecto) y abre un momento la muesca del MacBook en esa sesión, mostrando qué agente y qué terminal era.
- Cuando un agente se detiene a esperarte, reproduce otro sonido (Funk por defecto), para que distingas «terminado» de «bloqueado» sin mirar.
- Los dos sonidos se pueden cambiar, o puedes desactivarlos.
También envía una notificación de macOS cuando tu uso de Claude Code o de Codex pasa del 80 % y del 100 % de una ventana. Consulta los límites de uso de Claude Code.
Donde más se nota es cuando ejecutas varios agentes a la vez. Consulta cómo ejecutar varios agentes de Claude Code en paralelo.
¿Cuál te conviene?
| Hooks / notify | Vibe Console | |
|---|---|---|
| Coste | Gratis | Incluido en la app |
| Configuración | Por agente, JSON o TOML | Ninguna |
| Distingue terminado de bloqueado | Sí, con dos hooks | Sí, dos sonidos |
| Muestra qué terminal | No | Sí, en la muesca |
| Funciona con los ocho agentes | Solo con los que tienen hooks | Sí |
Si trabajas con una sola sesión de Claude Code a la vez, los hooks bastan. Si ejecutas varios agentes en distintos proyectos, un espacio de trabajo que sabe qué terminal es cuál es lo que más tiempo te ahorra.
Preguntas frecuentes
¿Por qué no se dispara mi hook de Claude Code?
Comprueba que el JSON es válido, que el archivo está en el sitio correcto y que has reiniciado Claude Code. Ejecuta el comando osascript por separado en una terminal para confirmar que las notificaciones están permitidas.
¿Puedo recibir la notificación en el móvil?
Los hooks pueden llamar a cualquier comando, incluido un servicio de notificaciones push. Claude Code también admite el control remoto desde su app móvil, así que puedes revisar una sesión lejos de tu mesa.
Prueba los avisos integrados gratis durante 14 días: descarga Vibe Console.
