Kaynak: Claude Code resmi dokümantasyonu — https://code.claude.com/docs/en/hooks
## Olaylar
SessionStart oturum başladığında / sürdürüldüğünde
UserPromptSubmit prompt gönderildiğinde, Claude işlemeden önce
PreToolUse araç çağrısından önce (engelleyebilir)
PostToolUse araç çağrısı başarılı olduğunda
PostToolUseFailure araç çağrısı hata verdiğinde
Stop Claude yanıtını bitirdiğinde
SessionEnd oturum sonlandığında
## Nereye yazılır
~/.claude/settings.json tüm projeler, paylaşılmaz
.claude/settings.json tek proje, repoya commit edilir
.claude/settings.local.json tek proje, gitignore'da
plugin hooks/hooks.json eklenti etkinken
## Çıkış kodları
0 başarılı (JSON çıktısı dikkate alınır)
2 engelleyici hata (eylemi durdurur)
diğer engellemez, eylem devam eder
## Handler alanları
{
"type": "command|http|mcp_tool|prompt|agent",
"if": "Bash(git *)",
"timeout": 600,
"statusMessage": "Doğrulanıyor...",
"once": false
}
## MCP araçlarını yakalama
{
"hooks": {
"PreToolUse": [
{
"matcher": "mcp__memory__.*",
"hooks": [{ "type": "command", "command": "echo 'Memory operation' >> ~/mcp.log" }]
},
{
"matcher": "mcp__.*__write.*",
"hooks": [{ "type": "command", "command": "/home/user/scripts/validate-mcp-write.py" }]
}
]
}
}
## HTTP hook
{
"type": "http",
"url": "http://localhost:8080/hooks/pre-tool-use",
"timeout": 30,
"headers": { "Authorization": "Bearer $MY_TOKEN" },
"allowedEnvVars": ["MY_TOKEN"]
}