Arquivo do dia

Um hook para o Claude Code que mostra o começo de cada resposta em uma notificação

Slava Sazhin 15 de outubro de 2026 3 min de leitura

Quando o Claude Code termina uma resposta, aparece no canto da tela uma notificação com as primeiras palavras, e você pode trabalhar em outra janela.

O arquivo de hoje é um hook para o Claude Code para quem passa uma tarefa ao Claude e vai para outra janela. Aí você ou fica voltando para ver se ele terminou, ou volta meia hora depois e descobre que ele parou no primeiro minuto com uma pergunta para você. Com este hook, cada resposta concluída aparece como uma notificação no canto da tela com o começo da resposta, e você distingue “Pronto, todos os testes passam” de “Posso apagar a pasta antiga?” sem sair da janela em que está.

Como funciona

É um hook de Stop: o Claude Code o executa toda vez que uma resposta termina e passa para ele o texto da resposta. O hook remove as marcas de Markdown *, ` e #, junta as linhas em uma, fica com os primeiros 120 caracteres e os mostra em uma notificação do macOS com o título “Claude Code” e o subtítulo “Resposta pronta”. Uma resposta vazia aparece como “Trabalho concluído”. A resposta chega à notificação como texto simples, nunca como parte de um comando, então uma resposta que cita código ou uma página da web não consegue executar nada: passamos ao hook 21 respostas de exemplo com aspas, $( ), crases e comandos AppleScript, e todas chegaram como texto. O hook nunca interrompe o Claude, a notificação é tudo o que ele faz.

O que mudamos

Uma linha. Uma resposta que começa com um traço, uma lista por exemplo, era passada ao comando de notificação como se fosse uma das opções dele. No Linux, onde o guia pede ao Claude para trocar osascript por notify-send, uma resposta assim não mostrava notificação nenhuma, só um erro “Unknown option” que ninguém vê. Agora o hook remove os traços e espaços do início do texto, então “- Corrigi o erro” aparece como “Corrigi o erro”, e os traços no meio do texto continuam. O mesmo corte protege o osascript no Mac e o comando de qualquer outro sistema.

O que saber

  • O hook roda depois de cada resposta, também nas execuções com claude -p: uma tarefa que você agenda também termina com uma notificação.
  • A notificação mostra o começo da resposta como ele é. Se o Claude colocar uma senha ou o nome de um cliente na primeira linha, isso aparece no canto da tela e fica na Central de Notificações.
  • Sem Mac: o passo 6 do guia pede ao Claude para colocar o comando de notificação do seu sistema. Nos nossos testes o Claude escreveu notify-send no Linux (4 vezes de 4) e uma notificação do PowerShell no Windows (2 de 2), sempre passando a resposta como texto.

Instalação

Um arquivo vai para ~/.claude/hooks/ e é ligado no ~/.claude/settings.json como hook de Stop. Essa pasta guarda as configurações do próprio Claude, então o Claude pergunta antes de escrever nela: responda Yes. Depois, pelo guia abaixo, o Claude verifica se o jq está instalado e envia uma notificação de teste, e você permite as notificações do “Editor de Script” em “Ajustes do Sistema”, “Notificações”: no Mac, as notificações de scripts chegam com esse nome. Então feche o Claude Code e abra de novo, porque os hooks são lidos na inicialização. A verificação: peça “Responda em uma linha com o texto: notificações funcionam” e mude logo para outra janela. Alguns segundos depois aparece no canto da tela uma notificação “Claude Code” com o começo da resposta.

notify-done.sh 1 KB Baixar
#!/bin/bash
# Hook de Stop: quando o Claude Code termina uma resposta, aparece uma notificação no Mac
# com o começo dessa resposta. O hook nunca interrompe o trabalho do Claude.
INPUT=$(cat)
# Os traços do início são removidos: uma resposta que começa com “-” seria lida como uma opção do comando de notificação.
MSG=$(printf '%s' "$INPUT" | jq -r '(.last_assistant_message // "") | gsub("[*`#]"; "") | gsub("\\s+"; " ") | sub("^[ -]+"; "") | .[0:120]' 2>/dev/null)
[ -z "$MSG" ] && MSG="Trabalho concluído"
osascript - "$MSG" >/dev/null 2>&1 <<'EOF'
on run argv
display notification (item 1 of argv) with title "Claude Code" subtitle "Resposta pronta"
end run
EOF
exit 0
como-instalar.md 2 KB Baixar
# Como saber que o Claude terminou sem ficar olhando para a tela

1. Peça ao Claude: “Coloque o arquivo baixado notify-done.sh na pasta ~/.claude/hooks/ e torne-o executável.”
2. Peça ao Claude: “Adicione ~/.claude/hooks/notify-done.sh ao ~/.claude/settings.json como um hook de Stop.”
3. Peça ao Claude: “Verifique se o jq está instalado neste computador e instale-o se não estiver.”
4. No Mac, peça ao Claude: “Execute o comando osascript -e 'display notification "test"'.”
5. Depois abra os “Ajustes do Sistema” (System Settings), vá em “Notificações” (Notifications), encontre o “Editor de Script” (Script Editor) na lista e ative “Permitir Notificações” (Allow Notifications).
6. Se o seu computador não for um Mac, peça ao Claude: “No arquivo ~/.claude/hooks/notify-done.sh, substitua o osascript pelo comando de notificação do meu sistema.”
7. Feche o Claude Code e abra de novo: os hooks são lidos na inicialização.

Verificação:

1. Peça ao Claude: “Responda em uma linha com o texto: notificações funcionam” e mude logo para outra janela.
2. Alguns segundos depois, aparece no canto da tela uma notificação “Claude Code” com o começo da resposta.

Este artigo valeu o seu tempo?

Dê ao Claude um computador só dele

Sua própria máquina Linux com o Claude Code, trabalhando 24 horas por dia enquanto seu notebook está fechado. A partir de $3.49 por mês.

Fale com a equipe do Combobulating