Untuk dokumentasi referensi tentang hooks, lihat Hooks reference.
- Notifikasi: Sesuaikan cara Anda mendapatkan pemberitahuan ketika Claude Code menunggu input atau izin Anda untuk menjalankan sesuatu.
- Pemformatan otomatis: Jalankan
prettierpada file .ts,gofmtpada file .go, dll. setelah setiap pengeditan file. - Logging: Lacak dan hitung semua perintah yang dieksekusi untuk kepatuhan atau debugging.
- Umpan balik: Berikan umpan balik otomatis ketika Claude Code menghasilkan kode yang tidak mengikuti konvensi codebase Anda.
- Izin khusus: Blokir modifikasi ke file produksi atau direktori sensitif.
Anda harus mempertimbangkan implikasi keamanan dari hooks saat menambahkannya, karena hooks berjalan secara otomatis selama loop agen dengan kredensial lingkungan Anda saat ini.
Misalnya, kode hooks yang berbahaya dapat mengekstrak data Anda. Selalu tinjau implementasi hooks Anda sebelum mendaftarkannya.Untuk praktik keamanan terbaik lengkap, lihat Security Considerations dalam dokumentasi referensi hooks.
Ikhtisar Peristiwa Hook
Claude Code menyediakan beberapa peristiwa hook yang berjalan pada titik berbeda dalam alur kerja:- PreToolUse: Berjalan sebelum panggilan alat (dapat memblokir mereka)
- PostToolUse: Berjalan setelah panggilan alat selesai
- UserPromptSubmit: Berjalan ketika pengguna mengirimkan prompt, sebelum Claude memprosesnya
- Notification: Berjalan ketika Claude Code mengirim notifikasi
- Stop: Berjalan ketika Claude Code selesai merespons
- SubagentStop: Berjalan ketika tugas subagen selesai
- PreCompact: Berjalan sebelum Claude Code akan menjalankan operasi compact
- SessionStart: Berjalan ketika Claude Code memulai sesi baru atau melanjutkan sesi yang ada
- SessionEnd: Berjalan ketika sesi Claude Code berakhir
Quickstart
Dalam quickstart ini, Anda akan menambahkan hook yang mencatat perintah shell yang dijalankan Claude Code.Prasyarat
Instaljq untuk pemrosesan JSON di baris perintah.
Langkah 1: Buka konfigurasi hooks
Jalankan perintah/hooks slash command dan pilih peristiwa hook PreToolUse.
Hook PreToolUse berjalan sebelum panggilan alat dan dapat memblokir mereka sambil memberikan umpan balik Claude tentang apa yang harus dilakukan berbeda.
Langkah 2: Tambahkan matcher
Pilih+ Add new matcher… untuk menjalankan hook Anda hanya pada panggilan alat Bash.
Ketik Bash untuk matcher.
Anda dapat menggunakan
* untuk mencocokkan semua alat.Langkah 3: Tambahkan hook
Pilih+ Add new hook… dan masukkan perintah ini:
Langkah 4: Simpan konfigurasi Anda
Untuk lokasi penyimpanan, pilihUser settings karena Anda mencatat ke direktori home Anda. Hook ini kemudian akan berlaku untuk semua proyek, bukan hanya proyek Anda saat ini.
Kemudian tekan Esc sampai Anda kembali ke REPL. Hook Anda sekarang terdaftar!
Langkah 5: Verifikasi hook Anda
Jalankan/hooks lagi atau periksa ~/.claude/settings.json untuk melihat konfigurasi Anda:
Langkah 6: Uji hook Anda
Minta Claude untuk menjalankan perintah sederhana sepertils dan periksa file log Anda:
Contoh Lainnya
Untuk implementasi contoh lengkap, lihat bash command validator example dalam codebase publik kami.
Hook Pemformatan Kode
Secara otomatis memformat file TypeScript setelah pengeditan:Hook Pemformatan Markdown
Secara otomatis memperbaiki tag bahasa yang hilang dan masalah pemformatan dalam file markdown:.claude/hooks/markdown_formatter.py dengan konten ini:
- Mendeteksi bahasa pemrograman dalam blok kode tanpa label
- Menambahkan tag bahasa yang sesuai untuk penyorotan sintaks
- Memperbaiki baris kosong yang berlebihan sambil mempertahankan konten kode
- Hanya memproses file markdown (
.md,.mdx)
Hook Notifikasi Khusus
Dapatkan notifikasi desktop ketika Claude membutuhkan input:Hook Perlindungan File
Blokir pengeditan ke file sensitif:Pelajari lebih lanjut
- Untuk dokumentasi referensi tentang hooks, lihat Hooks reference.
- Untuk praktik keamanan terbaik dan pedoman keselamatan yang komprehensif, lihat Security Considerations dalam dokumentasi referensi hooks.
- Untuk langkah-langkah pemecahan masalah dan teknik debugging, lihat Debugging dalam dokumentasi referensi hooks.