Os terminais de IDE no VS Code, Cursor e JetBrains não recebem notificação desktop do Claude Code por padrão, porque o Claude Code só envia notificações para iTerm2, Ghostty e Kitty. Para ser avisado, configure "preferredNotifChannel": "terminal_bell" e deixe a IDE cuidar do bell, ou adicione um hook de Notification ao ~/.claude/settings.json que exiba uma notificação desktop ou envie um push. Os hooks disparam tanto no terminal integrado quanto no painel de chat da extensão do VS Code, porque ambos leem o mesmo arquivo de configurações.
01Por que a IDE fica em silêncio
O alerta nativo do Claude Code depende do terminal em que ele roda. Com a configuração padrão, ele só gera uma notificação desktop no iTerm2, Ghostty e Kitty, e a documentação de terminal da Anthropic cita o terminal integrado do VS Code como um dos que não recebem nenhuma. Os terminais do JetBrains estão na mesma situação. O guia do terminal bell explica cada valor de preferredNotifChannel.
Há duas formas de rodar o Claude Code no VS Code e no Cursor, e a diferença importa:
claude no terminal integrado~/.claude/settings.json~/.claude/settings.json (o mesmo arquivo)As IDEs da JetBrains (IntelliJ IDEA, PyCharm, WebStorm, GoLand, Android Studio e outras) funcionam como a coluna da direita: o plugin do Claude Code executa o claude no terminal integrado da IDE e se conecta a ele.
02Opção 1: o sino do terminal
Para o claude rodando em um terminal integrado, adicione isto ao ~/.claude/settings.json:
{
"preferredNotifChannel": "terminal_bell"
}
Assim, o Claude Code emite o caractere de sino quando precisa de você. O que acontece depois depende da IDE. O VS Code e o Cursor tratam o sino do terminal pelas configurações de sinais de acessibilidade; procure "terminal bell" nas Settings para escolher um som. Nas IDEs da JetBrains, confira as configurações de terminal da sua versão. É fácil não perceber o sino sem fone ou com a IDE em segundo plano, então a maioria das pessoas parte para a opção 2.
03Opção 2: um Notification hook
Um hook executa um comando à sua escolha e funciona em qualquer IDE, tanto no terminal quanto no painel de chat do VS Code. Este mostra uma notificação de desktop no macOS:
{
"hooks": {
"Notification": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "osascript -e 'display notification \"Claude Code needs your attention\" with title \"Claude Code\"'"
}
]
}
]
}
}
No Linux, use notify-send 'Claude Code' 'Claude Code needs your attention' e, no Windows, um comando PowerShell; o guia do Linux e o guia do Windows têm versões testadas. Se o osascript não mostrar nada no macOS, abra Ajustes do Sistema > Notificações e permita notificações para o Editor de Scripts, que é o app de onde vêm as notificações do osascript.
Na extensão do VS Code, você pode revisar os hooks sem abrir o arquivo: abra a seção Customize e selecione Hooks para ver os hooks carregados na sessão, agrupados por evento (Claude Code v2.1.269 ou posterior).
Para ser avisado assim que o Claude terminar, e não só quando estiver esperando, adicione também um hook Stop. O guia para ser notificado quando o Claude terminar mostra os dois juntos.
O timing é diferente na extensão do VS Code
No terminal, a notificação permission_prompt espera até o prompt ficar uns seis segundos sem nenhuma tecla pressionada, e cada tecla adia o aviso. Na extensão do VS Code (e no Claude Desktop), a documentação da Anthropic diz que ela dispara cerca de seis segundos depois que o Claude pergunta, sem adiar enquanto você digita, e não dispara se você responder antes. Se isso incomodar enquanto você trabalha no painel, defina a variável de ambiente CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS=1 para desativá-la ali. O guia do Notification hook lista todos os tipos de notificação e quando cada um dispara.
04Janelas remotas: SSH, WSL, dev containers e JetBrains Remote Development
É aqui que as notificações na IDE mais dão problema. Quando uma janela do VS Code ou do Cursor está conectada a um host SSH, ao WSL ou a um dev container, o Claude Code roda nesse sistema e lê o ~/.claude/settings.json de lá, não do seu notebook. Seus hooks também rodam lá. Um comando de desktop como osascript ou notify-send fica sem desktop onde aparecer e falha em silêncio.
O JetBrains Remote Development é parecido: o plugin do Claude Code precisa estar instalado no host remoto, e o Claude Code roda lá.
O que funciona nesses casos:
- WSL no Windows: um hook pode chamar o
powershell.exevia interop do Windows, desde que ele esteja noPATHdentro do WSL. - Hosts SSH e containers: envie o alerta pela rede para algo que chegue até você, como o ntfy ou um webhook do Telegram, Slack ou Discord. O guia de SSH cobre as opções.
05Use um terminal externo com /ide
Se você quer a notificação de desktop nativa, rode o Claude Code no iTerm2, Ghostty ou Kitty e conecte-o à IDE com o comando /ide. A visualização de diffs e o compartilhamento de seleção continuam funcionando pela IDE, e os alertas vêm do terminal externo. No iTerm2, você precisa ativar as configurações de alerta antes, como explicado no guia do sino do terminal.
06Outras coisas que vale saber
- Shift+Enter: no VS Code e no Cursor, rode
/terminal-setupuma vez para que Shift+Enter insira uma nova linha. Nos terminais da JetBrains isso não está disponível; use Ctrl+J, ou\seguido de Enter. - Remote Control: o Remote Control da Anthropic pode ser iniciado na extensão do VS Code com
/remote-control, o que permite acompanhar a sessão no app mobile do Claude. Ele tem seus próprios requisitos de plano e login; veja a comparação. - Várias janelas: se você roda o Claude Code em mais de uma janela da IDE, inclua a pasta do projeto no alerta para saber qual delas precisa de você. A entrada do hook inclui
cwd. Veja como rodar várias sessões.
07Onde o Claude Code Notifier se encaixa
Um hook Notification com o notificador da sua plataforma é uma boa solução gratuita se você está na frente da IDE. Ele não ajuda quando você está longe da tela e não permite responder.
O ccn do Claude Code Notifier também é um hook, então funciona nos terminais da IDE do mesmo jeito que em qualquer outro terminal, no Mac, Windows e Linux. Sozinho, ele mostra uma notificação de desktop quando o Claude termina, precisa de uma permissão ou faz uma pergunta. Com um celular pareado, você pode permitir uma vez, permitir para a sessão ou negar um pedido de permissão, escolher uma resposta para a pergunta do Claude e enviar a próxima instrução pelo celular. Se você digitou nos últimos 30 segundos, o terminal pergunta normalmente e nada fica esperando no celular. Os pushes para o celular passam por um relay, não pelo desktop local, então se você instalar o ccn na máquina remota à qual sua janela da IDE está conectada, o celular continua recebendo os avisos. O Claude Code Notifier é independente e não é feito pela Anthropic. Veja a página do ccn e como parear um celular.
08Perguntas frequentes
Por que o Claude Code não me notifica no VS Code?
O terminal integrado do VS Code não recebe a notificação de desktop nativa do Claude Code. Defina "preferredNotifChannel": "terminal_bell" ou adicione um hook Notification no ~/.claude/settings.json e inicie uma nova sessão.
Os hooks funcionam na extensão do Claude Code para VS Code?
Sim. O Claude Code dispara os mesmos eventos de hook nas extensões de IDE e no terminal, e a extensão e a CLI compartilham o ~/.claude/settings.json. A seção Customize da extensão permite ver e editar os hooks.
Isso funciona no Cursor?
Sim. O Cursor pode instalar a mesma extensão do Claude Code, e o claude roda no terminal integrado dele como no VS Code. Tudo o que foi dito acima se aplica.
Meu hook funciona localmente, mas não numa janela Remote SSH. Por quê?
Numa janela remota, o Claude Code e os hooks dele rodam na máquina remota, que não tem desktop. Edite o ~/.claude/settings.json nessa máquina e use um push pela rede, como o ntfy, em vez de um comando de desktop.