claude-code-notifier
cómo funciona guías preguntas frecuentes
◐Español
English العربية Deutsch Español Français עברית Italiano 日本語 한국어 Nederlands Polski Português (Brasil) Русский Türkçe Tiếng Việt 简体中文 繁體中文
Empezar
Todas las guías

¿No funcionan las notificaciones de Claude Code? Una checklist

Actualizado el 31 de octubre de 2026 · 7 min de lectura
en esta página 011. Comprueba que Claude Code ha cargado el hook 022. Acepta la confianza del espacio de trabajo 033. Asegúrate de que el evento se dispara cuando crees 044. Ejecuta tú mismo el comando del hook 055. Lee el log de depuración 066. Revisa el sistema operativo 07Si usas Claude Code Notifier 08Preguntas frecuentes

Cuando las notificaciones de Claude Code dejan de funcionar, la causa casi siempre es una de estas cuatro: el hook no está cargado, el hook se ejecuta pero falla, el evento del que dependes no se dispara cuando esperas, o el sistema operativo oculta el aviso. Ejecuta /hooks dentro de Claude Code para ver qué está cargado, inicia una sesión con claude --debug para ver qué hizo realmente cada hook y luego revisa los ajustes de notificaciones del ordenador o del móvil. Si usas Claude Code Notifier, ccn doctor y ccn test cubren casi todo esto con dos comandos.

La checklist va de la causa más común a la menos común. Sirve en Mac, Windows y Linux.

011. Comprueba que Claude Code ha cargado el hook

Escribe /hooks en el prompt de Claude Code. Es un navegador de solo lectura con todos los hooks que Claude Code ha cargado, y cada uno indica de dónde viene: ajustes de usuario, de proyecto, locales, un plugin o la sesión actual. Selecciona un hook para ver el comando exacto y el archivo donde está definido.

Si tu hook no aparece en la lista:

  • El JSON no es válido. Los archivos de ajustes son JSON estricto. Una coma final o un comentario // rompen el archivo, y Claude Code muestra un Settings Error en el siguiente arranque. Ejecuta claude doctor para ver las entradas que Claude Code ha rechazado.
  • El archivo está en el sitio equivocado. Los hooks personales van en ~/.claude/settings.json (en Windows, %USERPROFILE%\.claude\settings.json). Los hooks de proyecto van en .claude/settings.json dentro del proyecto. Ejecuta /status y mira la línea Setting sources para ver qué archivos se cargaron.
  • El nombre del evento es incorrecto. Los nombres de eventos distinguen mayúsculas y minúsculas: Notification, Stop, PermissionRequest. Un nombre desconocido aparece como Settings Warning y se ignora.
  • Los hooks están desactivados. "disableAllHooks": true en cualquier archivo de ajustes desactiva todos los hooks. Si /hooks muestra Only hooks from managed settings run here, tu organización ha configurado allowManagedHooksOnly y tus propios hooks no se ejecutarán.
  • No se detectó el cambio. Claude Code normalmente recarga los ajustes solo. Si el hook no aparece tras unos segundos, reinicia la sesión.

022. Acepta la confianza del espacio de trabajo

En una sesión interactiva, Claude Code retiene los hooks de todos los archivos de ajustes, incluido tu ~/.claude/settings.json, hasta que aceptas el diálogo de confianza del espacio de trabajo para esa carpeta. Si cerraste ese diálogo, o estás en una carpeta donde nunca has abierto Claude Code, tus hooks no se ejecutarán ahí. Inicia claude en esa carpeta y acepta el diálogo.

033. Asegúrate de que el evento se dispara cuando crees

Muchas notificaciones "rotas" son en realidad un tema de timing. Según la referencia de hooks de Anthropic:

HookCuándo se dispara
Notification con permission_promptUn aviso de permisos lleva unos seis segundos esperando y no has escrito nada. Cada pulsación reinicia el temporizador.
Notification con idle_promptUnos 60 segundos después de que Claude termine, si no has escrito nada y no queda ningún agente en segundo plano en ejecución.
StopCada vez que Claude termina de responder. No al interrumpirlo. Los errores de API disparan StopFailure en su lugar.
PermissionRequestJusto cuando Claude Code va a pedirte permiso.

Así que si pruebas un hook de Notification mientras escribes en la terminal, puede que nunca se dispare. Cambia a otra ventana y espera. Para recibir un aviso en cuanto termina un turno, usa Stop; la guía del Stop hook lo explica.

Revisa también tu modo de permisos. Las versiones recientes de Claude Code inician las sesiones interactivas en modo auto, donde un clasificador aprueba la mayoría de acciones sin preguntar. Sin aviso no hay notificación permission_prompt ni hook PermissionRequest. Para probar los avisos de permisos, pulsa Shift+Tab hasta que la barra de estado muestre el modo manual y pídele a Claude algo que necesite aprobación. En Modos de permisos explicados tienes los detalles.

Los matchers también distinguen mayúsculas y minúsculas. Un matcher de PermissionRequest con bash no coincidirá con la herramienta Bash.

044. Ejecuta tú mismo el comando del hook

Copia el comando desde /hooks y ejecútalo en una terminal con una entrada de ejemplo:

echo '{"hook_event_name":"Stop","cwd":"/tmp","last_assistant_message":"done"}' | ./my-hook.sh
echo $?

Fallos habituales:

  • command not found: usa una ruta absoluta al script, o ${CLAUDE_PROJECT_DIR} para scripts del proyecto.
  • El script no hace absolutamente nada: hazlo ejecutable con chmod +x ./my-hook.sh.
  • jq: command not found: instala jq, o parsea el JSON con Python o Node.js.

055. Lee el log de depuración

Inicia Claude Code con claude --debug. No se imprime nada extra en la terminal; el log va a ~/.claude/debug/<session-id>.txt. Para elegir la ruta, usa claude --debug-file /tmp/claude.log y ejecuta tail -f /tmp/claude.log en otra terminal. Si la sesión ya está en marcha, /debug activa el log y te dice dónde está.

Busca las líneas que empiezan por Hooks:. Cada una indica el evento, el comando, cómo terminó (finished with status 0, timed out, failed to start) y cuánto tardó. Para más detalle sobre los matchers, define CLAUDE_CODE_DEBUG_LOG_LEVEL=verbose.

Hay dos problemas que solo se ven aquí:

  • Tu perfil de shell imprime algo. Si ~/.bashrc o ~/.zshrc ejecuta un echo y la shell lo carga, ese texto aparece delante de la salida JSON de tu hook, y Claude Code trata la salida como texto plano. Busca en el log Hook output does not start with {. Envuelve la salida del perfil en if [[ $- == *i* ]]; then ... fi para que solo se ejecute en shells interactivas.
  • No hay terminal donde escribir. En Mac y Linux, los hooks de comando se ejecutan sin terminal de control. Un hook que intente hacer sonar la campana o escribir códigos de escape en /dev/tty falla sin avisar. Usa un comando de notificación de escritorio, o el ajuste preferredNotifChannel del propio Claude Code, que se explica en la guía de la campana de la terminal.

066. Revisa el sistema operativo

Si el log de depuración dice que el hook terminó con estado 0 y aun así no viste nada, lo ocultó el sistema operativo. Comprueba que la app que lanza el aviso tiene permiso para mostrar notificaciones y que Concentración (Mac), No molestar (Windows) o el modo no molestar de tu escritorio Linux están desactivados. En Linux, además, tiene que haber un daemon de notificaciones en ejecución.

Tienes los comandos de cada plataforma en las guías de macOS, Windows y Linux.

07Si usas Claude Code Notifier

Claude Code Notifier es una herramienta independiente (no la hace Anthropic) que instala un pequeño programa, ccn, como hooks de Claude Code. Todo lo anterior sigue siendo válido, porque ccn es un hook como cualquier otro. Empieza por sus propias comprobaciones:

  1. ccn doctor revisa los hooks, las credenciales, la conexión con el servidor y la detección de presencia. Arregla primero lo que te indique.
  2. ccn test envía una notificación de prueba. Si llega, el problema está en el evento o en algún ajuste, no en el pipeline.
  3. ccn devices muestra los teléfonos vinculados con este ordenador. Si no aparece ninguno, vuelve a vincular con ccn pair; la guía de vinculación te explica cómo.
  4. ccn config show muestra los ajustes efectivos. Comprueba que notify_on_done, notify_on_permission y notify_on_question están activados y que quiet_hours no incluye la hora actual. Los ajustes que cambies en el teléfono llegan al ordenador con ccn sync.

Algunos comportamientos parecen fallos, pero son intencionados:

  • Estás delante del teclado. Si has escrito en los últimos 30 segundos, no se espera al teléfono y la terminal pregunta como siempre. Con quiet_when_present activado (por defecto), el teléfono no recibe nada mientras estás en la terminal donde corre Claude, y recibe una tarjeta informativa si estás activo en otra app.
  • Avisos duplicados o que faltan en un Mac. No uses a la vez la antigua app de la barra de menús de Mac y ccn en el mismo Mac.
  • Mucho tiempo sin uso. Si un teléfono u ordenador no se usa durante 60 días, el servidor borra su vinculación y tendrás que vincularlo de nuevo.

En el propio teléfono, comprueba que la app tiene permiso para mostrar notificaciones y que Concentración (iPhone) o No molestar (Android) no la están silenciando. En Android, la optimización de batería puede retrasar las notificaciones de algunas apps; si los avisos llegan tarde, permite que la app funcione sin restricciones en sus ajustes de batería. Si editaste settings.json a mano, ccn doctor te dice si sus hooks siguen en su sitio. ccn upgrade actualiza a la última versión.

08Preguntas frecuentes

¿Por qué mi Notification hook solo se dispara a veces?

Los tipos permission_prompt e idle_prompt se lanzan cuando parece que no estás. permission_prompt espera unos seis segundos sin que escribas, e idle_prompt unos 60 segundos después de que Claude termine. Si estás escribiendo, se aplazan. Usa PermissionRequest o Stop si quieres un aviso inmediato.

¿Dónde está el log de depuración de Claude Code?

Ejecuta claude --debug y el log se guarda en ~/.claude/debug/<session-id>.txt. Usa claude --debug-file <path> para elegir la ubicación, o /debug dentro de una sesión en curso.

ccn test funciona, pero las notificaciones reales no llegan. ¿Por qué?

El pipeline está bien, así que revisa los ajustes y los tiempos. Mira notify_on_* y quiet_hours en ccn config show, recuerda que no se envía nada mientras estás en la terminal con quiet_when_present activado, y comprueba el modo de permisos de Claude Code.

Claude Code Notifier Recibe un push en el móvil cuando Claude Code termina o te necesita, y aprueba, deniega o responde desde ahí. La herramienta de línea de comandos ccn es gratis en Mac, Windows y Linux.
Descargar para iOS Descargar para Android Instalar ccn

Guías relacionadas

  • Los hooks de Claude Code explicados: cada evento y para qué sirveQué son los hooks de Claude Code, dónde van en settings.json, cómo funcionan los matchers, la entrada y los códigos de salida, y para qué sirve cada evento de hook.
  • El Notification hook de Claude Code: cuándo se dispara y cómo usarloCuándo se dispara el Notification hook de Claude Code, qué significan permission_prompt e idle_prompt, qué entrada recibe y por qué espera antes de dispararse.
  • Conecta tu móvil a Claude Code en Mac, Windows o LinuxVincula tu móvil con Claude Code en un minuto: instala ccn y escanea un código QR o escribe un código de 6 dígitos. Pasos para Mac, Windows y Linux.
  • Horas de silencio y No molestar para las notificaciones de Claude CodeSilencia las notificaciones de Claude Code por la noche o en reuniones: horas de silencio en tu hook, Concentración y No molestar en el teléfono, y quiet_hours de ccn.
claude-code-notifier

Claude Code Notifier es una aplicación independiente de terceros. No está afiliada, respaldada ni patrocinada por Anthropic, PBC. "Claude" y "Claude Code" son marcas comerciales de Anthropic, PBC.

apps App para iOS App para Android ccn para macOS, Windows y Linux Todas las guías
legal Política de privacidad Condiciones del servicio Otros idiomas © 2026 touchtap. Todos los derechos reservados. TouchTap Ltd está registrada en Inglaterra y Gales, número de empresa 13942589.