Hook tanımlamak
Defining hooks
Claude Code’daki hooks, tool çağrılarını çalışmadan önce veya sonra yakalamanıza ve kontrol etmenize olanak tanır. Bu, Claude’un geliştirme ortamınızda neler yapıp neler yapamayacağı üzerinde ince taneli kontrol sağlar.
Hook Oluşturmak
Bir hook oluşturmak dört ana adımdan oluşur:

- PreToolUse veya PostToolUse hook’una karar verin — PreToolUse hooks tool çağrılarının çalışmasını engelleyebilirken, PostToolUse hooks tool zaten kullanıldıktan sonra çalışır
- Hangi tool çağrı türünü izlemek istediğinizi belirleyin — Hook’unuzu hangi tool’ların tetikleyeceğini tam olarak belirtmeniz gerekir
- Tool çağrısını alacak bir command yazın — Bu command, önerilen tool çağrısı hakkındaki JSON verisini standard input üzerinden alır
- Gerekirse, command Claude’a geri bildirim sağlamalıdır — Command’inizin exit code’u Claude’a operasyona izin verip vermeyeceğini söyler
Mevcut Tools
Claude Code, hooks ile izleyebileceğiniz birkaç built-in tool sağlar:

Mevcut kurulumunuzda tam olarak hangi tool’ların kullanılabilir olduğunu görmek için doğrudan Claude’a bir liste isteyebilirsiniz. Bu, özellikle custom MCP server’lar eklediğinizde mevcut tool’lar değişebildiği için faydalıdır.
Tool Çağrısı Veri Yapısı
Hook command’iniz çalıştığında, Claude önerilen tool çağrısının detaylarını içeren JSON verisini standard input üzerinden gönderir:

{
"session_id": "2d6a1e4d-6...",
"transcript_path": "/Users/sg/...",
"hook_event_name": "PreToolUse",
"tool_name": "Read",
"tool_input": {
"file_path": "/code/queries/.env"
}
}
Command’iniz bu JSON’u standard input’tan okur, parse eder ve ardından tool adına ve input parametrelerine göre operasyona izin verip vermemeye karar verir.
Exit Code’lar ve Kontrol Akışı
Hook command’iniz Claude’a exit code’lar aracılığıyla geri bildirim verir:

- Exit Code 0 — Her şey yolunda, tool çağrısının devam etmesine izin ver
- Exit Code 2 — Tool çağrısını engelle (yalnızca PreToolUse hooks)
Bir PreToolUse hook’unda exit code 2 ile çıktığınızda, standard error’a yazdığınız tüm hata mesajları operasyonun neden engellendiğini açıklayan geri bildirim olarak Claude’a gönderilir.
Örnek Kullanım Senaryosu
Yaygın bir kullanım senaryosu, Claude’un .env gibi hassas dosyaları okumasını engellemektir. Hem Read hem de Grep tool’ları dosya içeriğine erişebildiği için, her iki tool türünü de izlemek ve kısıtlanmış dosya yollarına erişmeye çalışıp çalışmadıklarını kontrol etmek istersiniz.
Bu yaklaşım, belirli operasyonların neden kısıtlandığına dair net geri bildirim sağlarken Claude’un dosya sistemi erişimi üzerinde tam kontrol sağlar.