tool_name do evento de hook) para filtrar quais invocações de ferramenta acionam seu hook.
PreToolUse
Exemplo — Bloquear comandos destrutivos:
hookSpecificOutput.updatedInput em stdout (consulte Formato de saída). Por exemplo, um script de hook que encaminha comandos de shell por meio de um wrapper:
PostToolUse
Exemplo — Registrar em log todos os comandos do shell:
PermissionRequest
Exemplo — Aprovar automaticamente comandos git:
UserPromptSubmit
Exemplo — Injete contexto em todos os prompts:
additionalContext dentro de um objeto hookSpecificOutput no stdout, marcado com o nome do evento. Esse texto é injetado no contexto do agente:
Stop
Exemplo — Lembre o agente de executar testes:
PostCompaction
Exemplo — Registrar eventos de compactação:
SessionStart
Exemplo — Executar script de configuração:
additionalContext dentro de um objeto hookSpecificOutput no stdout:
SessionEnd
Correspondência com vários eventos
Como usar o matcher
matcher é uma regex aplicada ao tool_name do evento do hook. Ele está disponível para eventos relacionados a ferramentas: PreToolUse, PostToolUse e PermissionRequest.
Para eventos que não envolvem ferramentas (UserPromptSubmit, Stop, PostCompaction, SessionStart e SessionEnd), não há tool_name; use "" ou omita o matcher para executar o hook em todos os eventos desse tipo.
O matcher não é um glob de permissão. Padrões como
mcp__github__* são úteis em permissões, mas matchers de hook são regexes. Use mcp__github__.* em um matcher de hook.Nomes de ferramentas com os quais você pode fazer correspondência
tool_name. Os nomes exatos de ferramentas disponíveis podem variar conforme o modo da CLI, o modelo e as integrações ativadas.
Os nomes públicos mais comuns das ferramentas principais são:
readeditgrepglobexec
mcp__<server>__<tool>. Por exemplo, uma ferramenta de servidor MCP github chamada create_issue aparece como mcp__github__create_issue.
Para outras ferramentas, faça correspondência com o tool_name exato mostrado no stdin do hook. Para confirmar o conjunto completo disponível na sua sessão atual, adicione temporariamente um hook PostToolUse com matcher: "" e registre o payload do stdin.
