Execuções longas são a graça do Claude Code: você passa uma tarefa e vai fazer outra coisa. O problema é saber a hora de voltar. Confere demais e você perde o tempo que economizou; confere tarde demais e o agente está esperando permissão desde o segundo minuto.
Tem três jeitos de resolver isso no Mac, desde um hook feito na mão até um recurso que já vem pronto.
Dois eventos que você precisa conhecer
Seja qual for o método, você quer ser avisado em dois momentos diferentes:
- Terminou. O agente concluiu a vez dele e está esperando a sua próxima mensagem.
- Precisa de você. O agente parou no meio da tarefa, geralmente para pedir permissão para rodar um comando ou editar um arquivo.
O segundo é o mais importante. Um agente travado num pedido de permissão não avança nada.
Opção 1: hooks do Claude Code
O Claude Code consegue rodar um comando de shell quando certos eventos acontecem. Dois eventos de hook cobrem os momentos acima:
Stoproda quando o Claude termina de responder.Notificationroda quando o Claude precisa da sua atenção, como num pedido de permissão ou numa espera longa por resposta.
Adicione os dois em ~/.claude/settings.json (para todos os projetos) ou em .claude/settings.json dentro de um projeto. Este exemplo usa o osascript, que já vem no macOS:
{
"hooks": {
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "osascript -e 'display notification \"Task finished\" with title \"Claude Code\" sound name \"Glass\"'"
}
]
}
],
"Notification": [
{
"hooks": [
{
"type": "command",
"command": "osascript -e 'display notification \"Waiting for your input\" with title \"Claude Code\" sound name \"Funk\"'"
}
]
}
]
}
}Reinicie o Claude Code e rode uma tarefa curta para testar. Na primeira vez, o macOS pode perguntar se o Editor de Scripts pode mostrar notificações.
Limitações desse jeito: a notificação não diz de qual projeto ou terminal ela veio, clicar nela não leva você até lá, e você precisa de um setup parecido para cada um dos outros agentes. Confira a documentação de hooks do Claude Code para ver a lista atual de eventos.
Opção 2: notify do Codex
A Codex CLI consegue rodar um programa depois de cada vez do agente. Em ~/.codex/config.toml, defina notify com um comando; o Codex passa para ele uma descrição do evento em JSON:
notify = ["osascript", "-e", "display notification \"Codex finished\" with title \"Codex\""]Versões recentes do Codex também suportam hooks, incluindo um evento Stop, configurados num hooks.json ou numa tabela [hooks] no config.toml. As opções mudam de uma versão para outra, então confira a documentação de hooks do Codex da sua versão.
Opção 3: já vem no Vibe Console
O Vibe Console fica de olho em todos os terminais de agentes para você, nos oito agentes suportados, sem configurar nada:
- Um pontinho de status em cada aba mostra se o agente está trabalhando ou parado, então uma grade cheia de agentes se lê num relance.
- Quando um agente termina, o app toca um som (Glass, por padrão) e abre rapidinho o notch do MacBook naquela sessão, mostrando qual agente e qual terminal era.
- Quando um agente para esperando você, ele toca outro som (Funk, por padrão), então você diferencia “terminou” de “travou” sem nem olhar.
- Os dois sons são configuráveis, ou você pode desligá-los.
Ele também manda uma notificação do macOS quando o uso do Claude Code ou do Codex passa de 80% e de 100% de uma janela. Veja limites de uso do Claude Code.
Isso faz mais diferença quando você roda vários agentes ao mesmo tempo. Veja como rodar vários agentes do Claude Code em paralelo.
Qual usar?
| Hooks / notify | Vibe Console | |
|---|---|---|
| Custo | Grátis | Incluso no app |
| Configuração | Por agente, em JSON ou TOML | Nenhuma |
| Diferencia terminou de travou | Sim, com dois hooks | Sim, com dois sons |
| Mostra qual terminal | Não | Sim, no notch |
| Funciona nos oito agentes | Só nos que têm hooks | Sim |
Se você roda uma sessão do Claude Code por vez, os hooks dão conta. Se você roda vários agentes em vários projetos, um workspace que sabe qual terminal é qual é o que mais economiza tempo.
Perguntas frequentes
Por que meu hook do Claude Code não dispara?
Confira se o JSON é válido, se o arquivo está no lugar certo e se você reiniciou o Claude Code. Rode o comando osascript sozinho num terminal para confirmar que as notificações estão permitidas.
Dá para receber a notificação no celular?
Os hooks podem chamar qualquer comando, inclusive um serviço de push. O Claude Code também suporta controle remoto pelo app mobile dele, então dá para acompanhar uma sessão longe da mesa.
Teste os avisos sonoros grátis por 14 dias: baixe o Vibe Console.
