Claude Code Hooks: O Que São e Como Usar

Rebecca Kovács

Rebecca Kovács

2 julho 2025

Claude Code Hooks: O Que São e Como Usar

Para os Vibe Coders, ferramentas como o Claude Code da Anthropic estão transformando a forma como os desenvolvedores escrevem, depuram e gerenciam seus projetos. Claude Code atua como uma "ferramenta de codificação agêntica" que reside no seu terminal, capaz de entender toda a sua base de código, interagir com o seu sistema de arquivos, executar comandos e até mesmo navegar na web em busca de documentação. Ele se destaca em tarefas como escrever novas funcionalidades, corrigir bugs e refatorar código através de prompts de linguagem natural.

No entanto, uma característica central dos Grandes Modelos de Linguagem (LLMs) é sua natureza probabilística. Embora isso permita a resolução criativa de problemas, às vezes pode levar à imprevisibilidade. Você pode querer que certas ações — como lintar um arquivo depois de alterado ou executar testes depois que uma nova função é escrita — aconteçam todas as vezes sem falhas. Depender do LLM para lembrar de fazer isso em cada instância pode ser inconsistente.

É aqui que os Claude Code Hooks entram em cena. Hooks são um recurso poderoso que fornece controle determinístico e programático sobre o comportamento do Claude Code, garantindo que certas ações sempre aconteçam, em vez de depender do LLM para escolher executá-las.

💡
Quer uma ótima ferramenta de Teste de API que gera documentação de API bonita?

Experimente o Apidog MCP Server, que permite gerar código preciso lendo suas Especificações de API!
botão

Este artigo serve como um guia completo para entender, configurar e aproveitar os Claude Code Hooks para criar um fluxo de trabalho de desenvolvimento totalmente automatizado e otimizado.

O Que São Claude Code Hooks?

Em sua essência, os Claude Code Hooks são comandos de shell definidos pelo usuário que são executados automaticamente em pontos específicos do ciclo de vida do Claude Code. Eles atuam como gatilhos que você pode configurar para serem acionados antes ou depois de certas ações, permitindo que você injete sua própria lógica personalizada, scripts e comandos diretamente nas operações do Claude.

Hooks preenchem a lacuna entre a assistência orientada por IA e a automação baseada em regras. Eles permitem que você imponha padrões, automatize tarefas repetitivas e integre ferramentas externas perfeitamente ao seu fluxo de trabalho com total confiabilidade.

Existem quatro eventos chave do ciclo de vida onde um hook pode ser acionado:

  1. PreToolUse: Executa antes que Claude use uma ferramenta específica (por exemplo, antes de escrever em um arquivo).
  2. PostToolUse: Executa depois que uma ferramenta foi usada com sucesso (por exemplo, depois que um arquivo foi modificado).
  3. Notification: Executa sempre que Claude envia uma notificação (por exemplo, quando precisa de entrada do usuário ou concluiu uma tarefa longa).
  4. Stop: Executa quando Claude termina de gerar sua resposta e para.

Ao direcionar esses eventos, você pode criar automações poderosas que espelham as melhores práticas do desenvolvimento de software moderno, como verificações de integração contínua (CI), mas na velocidade do desenvolvimento local.

A Anatomia dos Claude Code Hooks: Uma Análise Aprofundada da Configuração

Para usar hooks, você precisa defini-los no arquivo de configurações do Claude Code. Isso é feito adicionando uma tabela [[hooks]] ao seu arquivo settings.toml, que está localizado no diretório .claude/ dentro do seu projeto. Cada configuração de hook possui alguns componentes chave.

# Exemplo de Hook em .claude/settings.toml

[[hooks]]
# O evento que aciona o hook.
event = "PostToolUse" 

# (Opcional) Condições para o hook ser executado.
[hooks.matcher]
tool_name = "edit_file"
file_paths = ["*.py", "api/**/*.py"]

# O comando shell a ser executado.
command = "ruff check --fix $CLAUDE_FILE_PATHS && black $CLAUDE_FILE_PATHS"

# (Opcional) Se o comando deve ser executado em segundo plano.
run_in_background = false 

Vamos detalhar cada parte.

O Campo event nos Claude Code Hooks (Obrigatório)

Esta string especifica qual dos quatro eventos do ciclo de vida acionará o hook.

O hooks.matcher nos Claude Code Hooks (Opcional)

O matcher é o que permite definir precisamente *quando* um hook deve ser executado. Se você omitir o matcher, o hook será executado para cada instância do event especificado. Por exemplo, um hook PostToolUse sem matcher será acionado após *cada* chamada de ferramenta.

O matcher possui três campos que você pode usar para filtrar eventos:

O Campo command para Claude Code Hooks (Obrigatório)

Este é o coração do hook — o comando shell que será executado quando as condições do gatilho forem atendidas. Este comando é executado com as mesmas permissões da sua conta de usuário, então ele pode fazer tudo o que você pode fazer no seu terminal.

Para tornar os comandos dinâmicos, o Claude Code fornece um conjunto de variáveis de ambiente que são preenchidas com o contexto do evento que acionou o hook.

Variáveis de Ambiente Disponíveis:

A Configuração run_in_background para Claude Code Hooks (Opcional)

Este é um valor booleano (true ou false). Se definido como true, o comando do hook será executado em um processo separado, e Claude não esperará que ele seja concluído antes de continuar. Isso é ideal para tarefas de longa duração, como suítes de teste abrangentes ou processos de build que você não quer que bloqueiem as ações subsequentes de Claude. O padrão é false.

Casos de Uso Práticos e Exemplos para Claude Code Hooks

O verdadeiro poder dos hooks é revelado quando você os aplica a fluxos de trabalho de desenvolvimento do mundo real. Aqui estão alguns exemplos práticos para você começar.

1. Linting e Formatação Automáticos com Claude Code Hooks

Imponha um estilo de código consistente em todo o seu projeto automaticamente. Este hook executa o linter ruff e o formatador black em qualquer arquivo Python que Claude edite.

Arquivo: .claude/settings.toml

[[hooks]]
event = "PostToolUse"

[hooks.matcher]
tool_name = "edit_file"
file_paths = ["*.py"]

# Comando para lintar, corrigir e formatar os arquivos Python editados.
command = "echo 'Running auto-formatter...' && ruff check --fix $CLAUDE_FILE_PATHS && black $CLAUDE_FILE_PATHS"

2. Execução Automática de Testes com Claude Code Hooks

Uma prática central do desenvolvimento orientado a testes (TDD) é escrever testes e depois escrever código para passar nesses testes, iterando até que tudo funcione. Você pode automatizar a etapa de "executar testes" com um hook. Este exemplo executa pytest sempre que um arquivo no diretório src/ ou tests/ é modificado.

Arquivo: .claude/settings.toml

[[hooks]]
event = "PostToolUse"
run_in_background = true # Testes podem ser lentos, execute em segundo plano.

[hooks.matcher]
tool_name = "edit_file"
file_paths = ["src/**/*.py", "tests/**/*.py"]

# Comando para executar a suíte de testes.
command = "pytest"

3. Notificações Personalizadas na Área de Trabalho via Claude Code Hooks

Se você pedir a Claude para realizar uma tarefa de longa duração, você pode se afastar do seu computador. Este hook usa uma ferramenta de linha de comando como ntfy (um serviço de notificação pub-sub simples baseado em HTTP) para enviar uma notificação push para o seu telefone ou desktop quando Claude precisar da sua atenção.

Arquivo: .claude/settings.toml

[[hooks]]
event = "Notification"

# Envia o conteúdo da notificação para um tópico público do ntfy.sh.
# Você pode hospedar o seu próprio para privacidade.
command = 'ntfy publish my-claude-alerts "$CLAUDE_NOTIFICATION"'

4. Verificações de Sanidade Pré-Commit Usando Claude Code Hooks

Assim como os hooks do Git, você pode usar os Claude Code Hooks para garantir a qualidade *antes* que um commit seja feito. Este exemplo executa um script personalizado para verificar chaves de API ou realizar outras etapas de validação logo antes que Claude tenha permissão para usar a ferramenta git_commit.

Arquivo: .claude/settings.toml

[[hooks]]
event = "PreToolUse"

[hooks.matcher]
tool_name = "git_commit"

# Comando para executar um script de verificação pré-commit.
# O script deve sair com um código diferente de zero para interromper o commit.
command = "sh ./.claude/pre-commit-checks.sh"

Configuração e Depuração dos Seus Claude Code Hooks

Começar com hooks é simples, mas a verificação e a depuração são essenciais para garantir que funcionem como esperado.

  1. Crie Sua Configuração: Certifique-se de ter um arquivo .claude/settings.toml no diretório raiz do seu projeto. Adicione suas configurações [[hooks]] lá.
  2. Verifique a Configuração: Depois de salvar seu arquivo settings.toml, execute o comando /hooks dentro da interface do terminal Claude Code. Este comando especial exibirá suas configurações de hook atualmente carregadas, permitindo que você veja instantaneamente se Claude as analisou corretamente.
  3. Verifique Erros:

Conclusão: O Poder dos Claude Code Hooks

Claude Code Hooks elevam a ferramenta de um assistente de codificação altamente capaz para um parceiro de desenvolvimento totalmente integrado e determinístico. Ao definir regras simples e poderosas, você pode automatizar as partes mundanas, mas críticas, do seu fluxo de trabalho, liberando você para se concentrar nos aspectos complexos e criativos da engenharia de software. Seja para impor a qualidade do código, simplificar seu ciclo TDD ou integrar com serviços de terceiros, os hooks fornecem a estrutura robusta necessária para adaptar o Claude Code às suas necessidades exatas.

À medida que você se familiariza com as capacidades do Claude Code, comece pequeno com um hook de formatação simples e depois explore automações mais complexas. Você descobrirá rapidamente que este recurso é essencial para construir um ambiente de desenvolvimento assistido por IA previsível, eficiente e verdadeiramente personalizado.

💡
Quer uma ótima ferramenta de Teste de API que gera documentação de API bonita?

Experimente o Apidog MCP Server, que permite gerar código preciso lendo suas Especificações de API!
botão

Pratique o design de API no Apidog

Descubra uma forma mais fácil de construir e usar APIs