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

Notificaciones push de Claude Code con ntfy (hazlo tú mismo)

Actualizado el 31 de octubre de 2026 · 6 min de lectura
en esta página 01Paso 1: elige un topic y suscríbete 02Paso 2: un script de hook (Mac y Linux) 03Paso 3: conéctalo en settings.json 04Windows (PowerShell) 05Mantenerlo privado 06Dónde encaja Claude Code Notifier 07Preguntas frecuentes

Para recibir notificaciones push de Claude Code con ntfy, instala la app de ntfy en tu móvil, suscríbete a un topic con un nombre difícil de adivinar y añade un hook de Claude Code que ejecute curl -d "message" https://ntfy.sh/your-topic. Un hook Notification te avisa cuando Claude necesita un permiso o te está esperando, y un hook Stop te avisa en cuanto termina un turno. Es gratis, lleva unos diez minutos y funciona en Mac, Windows y Linux.

01Paso 1: elige un topic y suscríbete

ntfy no requiere registro. Un topic se crea la primera vez que alguien publica o se suscribe a él, y cualquiera que conozca el nombre puede leerlo. La propia documentación de ntfy dice que el topic es básicamente una contraseña, así que hazlo largo y aleatorio, por ejemplo claude-7f3k9q2xw4mz. Los nombres de topic admiten letras, números, guiones bajos y guiones, hasta 64 caracteres.

Instala la app de ntfy (App Store, Google Play o F-Droid), toca + y suscríbete a tu topic en ntfy.sh.

Comprueba que funciona desde una terminal:

curl -H "Title: Test" -d "Hello from my computer" https://ntfy.sh/claude-7f3k9q2xw4mz

El móvil debería vibrar en un segundo o dos. En Windows, curl.exe viene incluido en Windows 10 y 11 y acepta la misma línea.

02Paso 2: un script de hook (Mac y Linux)

Claude Code pasa a cada hook un objeto JSON por la entrada estándar. Ambos eventos comparten campos como cwd y hook_event_name. Notification añade message y notification_type, y Stop añade last_assistant_message, el texto de la última respuesta de Claude. Este script convierte cualquiera de los dos en un push legible. Necesita jq (brew install jq, o apt install jq en Debian y Ubuntu).

Guárdalo como ~/.claude/ntfy-notify.sh y ejecuta chmod +x ~/.claude/ntfy-notify.sh:

#!/bin/sh
TOPIC_URL="https://ntfy.sh/claude-7f3k9q2xw4mz"

input=$(cat)
event=$(printf '%s' "$input" | jq -r '.hook_event_name')
project=$(basename "$(printf '%s' "$input" | jq -r '.cwd')")

if [ "$event" = "Stop" ]; then
  title="Claude finished: $project"
  body=$(printf '%s' "$input" | jq -r '(.last_assistant_message // "Done") | .[0:300]')
  priority=3
else
  title="Claude needs you: $project"
  body=$(printf '%s' "$input" | jq -r '.message // "Needs your attention"')
  priority=4
fi

curl -s -H "Title: $title" -H "Priority: $priority" -H "Tags: robot" \
  -d "$body" "$TOPIC_URL" > /dev/null
exit 0

La prioridad va de 1 (mínima) a 5 (urgente). Tags añade un emoji a la notificación; robot muestra una cara de robot.

03Paso 3: conéctalo en settings.json

Añade los hooks a ~/.claude/settings.json. Si el archivo ya tiene un objeto hooks, añade estos eventos dentro en lugar de reemplazarlo.

{
  "hooks": {
    "Notification": [
      {
        "matcher": "permission_prompt",
        "hooks": [
          { "type": "command", "command": "~/.claude/ntfy-notify.sh" }
        ]
      }
    ],
    "Stop": [
      {
        "hooks": [
          { "type": "command", "command": "~/.claude/ntfy-notify.sh", "async": true }
        ]
      }
    ]
  }
}

"async": true hace que el hook Stop envíe en segundo plano, así una red lenta nunca retrasa a Claude. Inicia una nueva sesión de Claude Code, porque los hooks se cargan al empezar la sesión.

¿Stop o idle_prompt?

Stop se dispara en cuanto Claude termina, aunque estés delante del teclado. Si te resulta excesivo, quita el bloque Stop y usa el matcher permission_prompt|idle_prompt. Según la documentación de Anthropic, idle_prompt se dispara unos 60 segundos después de que Claude termine, solo si no has escrito nada desde entonces, y permission_prompt se dispara cuando una solicitud de permiso lleva unos seis segundos esperando sin que pulses ninguna tecla. Así tienes gratis un filtro aproximado de "solo cuando no estoy". La guía del Notification hook y la guía del Stop hook cubren todos los campos y tiempos.

04Windows (PowerShell)

En Windows, guarda esto como %USERPROFILE%\.claude\ntfy-notify.ps1. No necesitas instalar nada más:

$in = [Console]::In.ReadToEnd() | ConvertFrom-Json
$project = Split-Path $in.cwd -Leaf

if ($in.hook_event_name -eq 'Stop') {
  $title = "Claude finished: $project"
  $body = [string]$in.last_assistant_message
  if ($body.Length -gt 300) { $body = $body.Substring(0, 300) }
  $priority = '3'
} else {
  $title = "Claude needs you: $project"
  $body = [string]$in.message
  $priority = '4'
}

Invoke-RestMethod -Method Post -Uri 'https://ntfy.sh/claude-7f3k9q2xw4mz' `
  -Headers @{ Title = $title; Priority = $priority } `
  -Body ([Text.Encoding]::UTF8.GetBytes($body)) | Out-Null

Luego usa esta entrada de hook en lugar de las líneas command de arriba:

{
  "type": "command",
  "shell": "powershell",
  "command": "powershell -NoProfile -ExecutionPolicy Bypass -File \"$HOME\\.claude\\ntfy-notify.ps1\""
}

Si ejecutas Claude Code dentro de WSL, usa el script de Mac y Linux; para el hook, WSL es Linux.

05Mantenerlo privado

Todo lo que va en el push pasa por el servidor de ntfy, y en ntfy.sh cualquiera con el nombre del topic puede leerlo. El mensaje de Stop de arriba incluye el comienzo de la respuesta de Claude, que puede contener código o nombres de archivo. Tres formas de reforzarlo:

  1. Envía menos. Sustituye el cuerpo de Stop por un texto fijo como "Done" y deja solo el nombre del proyecto en el título.
  2. Usa un token de acceso. ntfy acepta -H "Authorization: Bearer tk_..." en cualquier publicación. En tu propio servidor, configura auth-default-access: "deny-all", crea un usuario con ntfy user add y un token con ntfy token add.
  3. Monta tu propio servidor. ntfy se puede autoalojar. Para entrega instantánea en la app de iPhone, la documentación de ntfy indica configurar upstream-base-url: "https://ntfy.sh", que solo reenvía un ID de mensaje y un hash del topic a ntfy.sh para despertar el móvil; después la app descarga el mensaje desde tu servidor.

Si Claude Code corre en un servidor remoto, el mismo hook funciona allí sin cambios, lo que hace de ntfy una buena opción para notificaciones por SSH.

06Dónde encaja Claude Code Notifier

Para alertas en un solo sentido, la configuración de arriba es una solución completa y no vamos a intentar convencerte de lo contrario. Eso sí, se queda en avisarte. Cuando el push dice que Claude necesita un permiso, la sesión sigue esperando hasta que vuelvas al teclado.

ntfy admite botones de acción que hacen una petición HTTP, así que podrías montarte tú mismo una vía de respuesta: un hook PermissionRequest que publique la solicitud, espere una respuesta en un segundo topic y devuelva una decisión. Algunos proyectos open source hacen exactamente eso (consulta la comparativa).

Claude Code Notifier te da esa vía ya hecha. Con un móvil emparejado, puedes permitir una vez, permitir durante la sesión o denegar un permiso, elegir una respuesta cuando Claude hace una pregunta y enviar la siguiente instrucción cuando Claude termina, todo desde el móvil. También detecta si estás presente: si has escrito en los últimos 30 segundos, la terminal pregunta como siempre y no queda nada pendiente en el móvil. Si no estás, la terminal espera tu respuesta hasta el límite que configures, y deja de esperar en cuanto tocas el teclado. ccn funciona en Mac, Windows y Linux; consulta la página de ccn y los precios de las apps móviles.

07Preguntas frecuentes

¿Es gratis ntfy para las notificaciones de Claude Code?

Publicar y suscribirse en ntfy.sh no requiere cuenta, y el servidor está abierto a todo el mundo. ntfy también tiene un plan de pago y se puede autoalojar. Consulta la web de ntfy para ver los límites actuales.

¿Por qué no se dispara mi hook de ntfy?

Inicia una nueva sesión de Claude Code después de editar settings.json, ya que los hooks se cargan al arrancar. Luego ejecuta a mano la línea de prueba con curl y pásale al script un JSON de ejemplo, por ejemplo echo '{"hook_event_name":"Stop","cwd":"/tmp/x"}' | ~/.claude/ntfy-notify.sh. La lista de comprobación para solucionar problemas cubre el resto.

¿Puedo responder a Claude Code desde una notificación de ntfy?

No con una publicación simple. Los botones de acción HTTP de ntfy pueden enviar una petición, pero necesitas un hook que espere la respuesta y la convierta en una decisión que Claude Code entienda.

¿Recibo un push por cada tipo de notificación?

Solo por los matchers que indiques. Omite matcher en la entrada Notification para recibir todos los tipos, incluidos los diálogos de autenticación y de MCP.

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

  • Todas las formas de recibir notificaciones de Claude Code, comparadasAlertas integradas, tus propios hooks, ntfy y webhooks de chat, Remote Control de Anthropic y apps de notificaciones, comparados según lo que puede y no puede hacer cada uno.
  • Envía notificaciones de Claude Code a Telegram, Slack o DiscordUn único script de hook que publica alertas de Claude Code en un bot de Telegram, un incoming webhook de Slack o un webhook de Discord, en Mac, Windows y Linux.
  • 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.
  • El Stop hook de Claude Code: ejecuta algo cuando Claude terminaCómo funciona el Stop hook de Claude Code, qué input recibe, cómo ejecutar un comando cuando Claude termina y cómo hacer que Claude siga trabajando de forma segura.
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.