Automatize Seu Fluxo de Dev com Claude Code Hooks
Hooks permitem rodar comandos shell quando o Claude Code toma ações específicas. Auto-formate ao salvar, bloqueie edições perigosas ou injete contexto automaticamente.
Claude Code Hooks são comandos shell que executam automaticamente em resposta a eventos. Quando o Claude Code edita um arquivo, roda um comando ou inicia uma sessão, seus hooks disparam. Isso permite construir guardrails, impor padrões e automatizar setup repetitivo sem intervenção manual.
Quais eventos de hook estão disponíveis?
| Evento | Quando dispara | Uso comum |
|---|---|---|
| PreToolUse | Antes do Claude executar uma ferramenta | Bloquear operações perigosas, validar inputs |
| PostToolUse | Depois do Claude executar uma ferramenta | Auto-formatar arquivos editados, rodar linters |
| Notification | Quando Claude envia uma notificação | Registrar em arquivo, enviar para Slack |
| SessionStart | Quando uma nova sessão começa | Injetar contexto, verificar ambiente |
| ConfigChange | Quando configurações mudam | Validar configuração |
Como criar um hook?
Use o menu interativo ou edite o settings.json diretamente:
# Setup interativo de hook
claude /hooks
# Ou edite settings.json diretamente
# Projeto: .claude/settings.json
# Global: ~/.claude/settings.jsonAqui está um settings.json com hooks configurados:
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write",
"command": "npx prettier --write \"$CLAUDE_FILE_PATH\"",
"description": "Auto-formatar arquivos editados com Prettier"
}
],
"PreToolUse": [
{
"matcher": "Edit|Write",
"command": "echo $CLAUDE_FILE_PATH | grep -q \\.env && echo 'BLOQUEADO: Não pode editar arquivos .env' && exit 1 || exit 0",
"description": "Bloquear edições em arquivos .env"
}
],
"SessionStart": [
{
"command": "cat .claude/context-injection.md",
"description": "Injetar contexto adicional no início da sessão"
}
]
}
}Quais são os hooks mais úteis?
1. Auto-formatar ao editar
Rode Prettier, Black ou gofmt toda vez que o Claude Code edita um arquivo:
// Hook PostToolUse
{
"matcher": "Edit|Write",
"command": "npx prettier --write \"$CLAUDE_FILE_PATH\""
}2. Bloquear edições em arquivos sensíveis
Impeça o Claude Code de modificar arquivos de ambiente, segredos ou configs críticas:
// Hook PreToolUse
{
"matcher": "Edit|Write",
"command": "echo $CLAUDE_FILE_PATH | grep -qE \"\\.env|\\.secret|credentials\" && exit 1 || exit 0"
}3. Re-injetar contexto após compactação
Quando o Claude Code compacta sua janela de contexto, detalhes importantes podem ser perdidos. Um hook pode re-injetar informações críticas:
// Hook PostToolUse para compactação
{
"matcher": "Compact",
"command": "cat .claude/critical-context.md"
}Comece com o hook de auto-formatação. É o hook de maior valor com menor risco. Quando estiver confortável, adicione proteção de arquivos e injeção de contexto.