Los terminales de los IDE en VS Code, Cursor y JetBrains no reciben notificaciones de escritorio de Claude Code por defecto, porque Claude Code solo las envía a iTerm2, Ghostty y Kitty. Para recibir avisos, configura "preferredNotifChannel": "terminal_bell" y deja que el IDE gestione la campana, o añade un hook de Notification a ~/.claude/settings.json que muestre una notificación de escritorio o envíe un push. Los hooks se disparan tanto en el terminal integrado como en el panel de chat de la extensión de VS Code, porque ambos leen el mismo archivo de configuración.
01Por qué el IDE no dice nada
La alerta integrada de Claude Code depende del terminal en el que se ejecuta. Con el ajuste por defecto solo lanza una notificación de escritorio en iTerm2, Ghostty y Kitty, y la documentación de terminales de Anthropic menciona el terminal integrado de VS Code como uno de los que no reciben ninguna. Los terminales de JetBrains están en la misma situación. La guía de la campana del terminal explica todos los valores de preferredNotifChannel.
Hay dos formas de ejecutar Claude Code en VS Code y Cursor, y la diferencia importa:
claude en el terminal integrado~/.claude/settings.json~/.claude/settings.json (el mismo archivo)Los IDE de JetBrains (IntelliJ IDEA, PyCharm, WebStorm, GoLand, Android Studio y otros) funcionan como la columna de la derecha: el plugin de Claude Code ejecuta claude en el terminal integrado del IDE y se conecta a él.
02Opción 1: el timbre del terminal
Si ejecutas claude en un terminal integrado, añade esto a ~/.claude/settings.json:
{
"preferredNotifChannel": "terminal_bell"
}
Así Claude Code emite el carácter de timbre cuando te necesita. Lo que pase después depende del IDE. VS Code y Cursor gestionan el timbre del terminal con sus ajustes de señales de accesibilidad; busca "terminal bell" en Settings para elegir un sonido. En los IDE de JetBrains, revisa los ajustes del terminal de tu versión. Un timbre es fácil de perder si no llevas auriculares o el IDE está en segundo plano, así que casi todo el mundo acaba pasando a la opción 2.
03Opción 2: un Notification hook
Un hook ejecuta el comando que tú elijas y funciona en cualquier IDE, tanto en el terminal como en el panel de chat de VS Code. Este muestra una notificación de escritorio en macOS:
{
"hooks": {
"Notification": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "osascript -e 'display notification \"Claude Code needs your attention\" with title \"Claude Code\"'"
}
]
}
]
}
}
En Linux usa notify-send 'Claude Code' 'Claude Code needs your attention', y en Windows un comando de PowerShell; la guía de Linux y la guía de Windows tienen versiones probadas. Si osascript no muestra nada en macOS, abre Ajustes del Sistema > Notificaciones y permite las notificaciones de Editor de Scripts, que es la app de la que salen las notificaciones de osascript.
En la extensión de VS Code puedes revisar los hooks sin abrir el archivo: abre la sección Customize y selecciona Hooks para ver los hooks cargados en la sesión, agrupados por evento (Claude Code v2.1.269 o posterior).
Si quieres enterarte en cuanto Claude termine, y no solo cuando esté esperando, añade también un hook Stop. La guía para recibir avisos cuando Claude termina muestra ambos juntos.
En la extensión de VS Code los tiempos cambian
En un terminal, la notificación permission_prompt espera a que el prompt lleve unos seis segundos sin que pulses ninguna tecla, y cada tecla que pulsas la retrasa. En la extensión de VS Code (y en Claude Desktop), según la documentación de Anthropic, se dispara unos seis segundos después de que Claude pregunte, sin retrasarse mientras escribes, y no se dispara si respondes antes. Si te molesta mientras trabajas en el panel, define la variable de entorno CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS=1 para desactivarla ahí. La guía del Notification hook enumera todos los tipos de notificación y cuándo se disparan.
04Ventanas remotas: SSH, WSL, dev containers y JetBrains Remote Development
Aquí es donde más suelen fallar las notificaciones en el IDE. Cuando una ventana de VS Code o Cursor está conectada a un host SSH, a WSL o a un dev container, Claude Code se ejecuta en ese sistema y lee el ~/.claude/settings.json de allí, no el de tu portátil. Tus hooks también se ejecutan allí. Un comando de escritorio como osascript o notify-send no tiene entonces ningún escritorio donde mostrarse y falla sin avisar.
JetBrains Remote Development es parecido: el plugin de Claude Code tiene que estar instalado en el host remoto, y Claude Code se ejecuta allí.
Lo que sí funciona:
- WSL en Windows: un hook puede llamar a
powershell.exemediante la interoperabilidad de Windows, siempre que esté en elPATHdentro de WSL. - Hosts SSH y contenedores: envía el aviso por la red a algo que te llegue, como ntfy o un webhook de Telegram, Slack o Discord. La guía de SSH explica las opciones.
05Usa un terminal externo con /ide
Si quieres la notificación de escritorio integrada, ejecuta Claude Code en iTerm2, Ghostty o Kitty y conéctalo al IDE con el comando /ide. Ver diffs y compartir la selección sigue funcionando a través del IDE, y los avisos llegan desde el terminal externo. En iTerm2 primero tienes que activar sus ajustes de alertas, como se explica en la guía del timbre del terminal.
06Otras cosas que conviene saber
- Shift+Enter: en VS Code y Cursor, ejecuta
/terminal-setupuna vez para que Shift+Enter inserte un salto de línea. En los terminales de JetBrains no está disponible; usa Ctrl+J, o\y luego Enter. - Remote Control: el Remote Control de Anthropic se puede iniciar desde la extensión de VS Code con
/remote-control, y te permite seguir la sesión en la app móvil de Claude. Tiene sus propios requisitos de plan e inicio de sesión; consulta la comparativa. - Varias ventanas: si ejecutas Claude Code en más de una ventana del IDE, incluye la carpeta del proyecto en el aviso para saber cuál te necesita. La entrada del hook incluye
cwd. Consulta cómo ejecutar varias sesiones.
07Dónde encaja Claude Code Notifier
Un hook Notification con el notificador de tu plataforma es una buena solución gratuita si estás delante del IDE. No sirve cuando estás lejos de la pantalla, y no te deja responder.
ccn de Claude Code Notifier también es un hook, así que funciona en los terminales del IDE igual que en cualquier otro terminal, en Mac, Windows y Linux. Por sí solo, muestra una notificación de escritorio cuando Claude termina, necesita un permiso o hace una pregunta. Con un móvil vinculado, puedes permitir una vez, permitir durante la sesión o denegar una solicitud de permiso, elegir una respuesta a la pregunta de Claude y enviar la siguiente instrucción desde el móvil. Si has escrito en los últimos 30 segundos, el terminal pregunta como siempre y no queda nada pendiente en el móvil. Los push al móvil pasan por un relay y no por el escritorio local, así que si instalas ccn en la máquina remota a la que está conectada tu ventana del IDE, el móvil sigue recibiendo avisos. Claude Code Notifier es independiente y no está hecho por Anthropic. Consulta la página de ccn y cómo vincular un móvil.
08Preguntas frecuentes
¿Por qué Claude Code no me avisa en VS Code?
El terminal integrado de VS Code no recibe la notificación de escritorio integrada de Claude Code. Configura "preferredNotifChannel": "terminal_bell" o añade un hook Notification en ~/.claude/settings.json y luego inicia una sesión nueva.
¿Funcionan los hooks en la extensión de Claude Code para VS Code?
Sí. Claude Code dispara los mismos eventos de hook en las extensiones del IDE que en el terminal, y la extensión y la CLI comparten ~/.claude/settings.json. La sección Customize de la extensión permite ver y editar los hooks.
¿Funciona esto en Cursor?
Sí. Cursor puede instalar la misma extensión de Claude Code, y claude se ejecuta en su terminal integrado igual que en VS Code. Todo lo anterior aplica.
Mi hook funciona en local pero no en una ventana de Remote SSH. ¿Por qué?
En una ventana remota, Claude Code y sus hooks se ejecutan en la máquina remota, que no tiene escritorio. Edita ~/.claude/settings.json en esa máquina y usa un push por red como ntfy en lugar de un comando de escritorio.