Otomatisasi Workflow Pengembangan Anda dengan Claude Code Hooks
Hooks memungkinkan Anda menjalankan perintah shell kustom ketika Claude Code mengambil tindakan tertentu. Auto-format saat menyimpan, blokir edit berbahaya, atau injeksi konteks secara otomatis.
Claude Code Hooks adalah perintah shell yang dieksekusi secara otomatis sebagai respons terhadap event. Ketika Claude Code mengedit file, menjalankan perintah, atau memulai sesi, hooks Anda aktif. Ini memungkinkan Anda membangun pagar pembatas, menegakkan standar, dan mengotomatisasi setup berulang tanpa intervensi manual.
Event hook apa yang tersedia?
| Event | Kapan aktif | Kasus penggunaan umum |
|---|---|---|
| PreToolUse | Sebelum Claude mengeksekusi tool | Blokir operasi berbahaya, validasi input |
| PostToolUse | Setelah Claude mengeksekusi tool | Auto-format file yang diedit, jalankan linter |
| Notification | Ketika Claude mengirim notifikasi | Catat ke file, kirim ke Slack |
| SessionStart | Ketika sesi baru dimulai | Injeksi konteks, cek lingkungan |
| ConfigChange | Ketika pengaturan berubah | Validasi konfigurasi |
Bagaimana cara membuat hook?
Gunakan menu interaktif atau edit settings.json langsung:
# Setup hook interaktif
claude /hooks
# Atau edit settings.json langsung
# Proyek: .claude/settings.json
# Global: ~/.claude/settings.jsonBerikut settings.json dengan hooks yang dikonfigurasi:
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write",
"command": "npx prettier --write "$CLAUDE_FILE_PATH"",
"description": "Auto-format file yang diedit dengan Prettier"
}
],
"PreToolUse": [
{
"matcher": "Edit|Write",
"command": "echo $CLAUDE_FILE_PATH | grep -q \.env && echo 'BLOCKED: Tidak bisa mengedit file .env' && exit 1 || exit 0",
"description": "Blokir edit pada file .env"
}
],
"SessionStart": [
{
"command": "cat .claude/context-injection.md",
"description": "Injeksi konteks tambahan saat sesi dimulai"
}
]
}
}Apa hook yang paling berguna?
1. Auto-format saat edit
Jalankan Prettier, Black, atau gofmt setiap kali Claude Code mengedit file:
// Hook PostToolUse
{
"matcher": "Edit|Write",
"command": "npx prettier --write \"$CLAUDE_FILE_PATH\""
}2. Blokir edit file sensitif
Cegah Claude Code dari memodifikasi file environment, secret, atau konfigurasi kritis:
// Hook PreToolUse
{
"matcher": "Edit|Write",
"command": "echo $CLAUDE_FILE_PATH | grep -qE \"\.env|\.secret|credentials\" && exit 1 || exit 0"
}3. Injeksi ulang konteks setelah compaction
Ketika Claude Code mengompaksi jendela konteksnya, detail penting bisa hilang. Hook dapat menginjeksi ulang informasi kritis:
// Hook PostToolUse untuk compaction
{
"matcher": "Compact",
"command": "cat .claude/critical-context.md"
}Mulai dengan hook auto-format. Ini adalah hook bernilai tertinggi dengan risiko terendah. Setelah Anda nyaman, tambahkan proteksi file dan injeksi konteks.