Untuk dokumentasi referensi tentang hooks, lihat Referensi Hooks.
- Notifikasi: Sesuaikan cara Anda mendapatkan notifikasi 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 kustom: Blokir modifikasi pada 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 mengeksfiltrasikan data Anda. Selalu tinjau implementasi hooks Anda sebelum mendaftarkannya.Untuk praktik keamanan terbaik lengkap, lihat Pertimbangan Keamanan dalam dokumentasi referensi hooks.
Ikhtisar Event Hook
Claude Code menyediakan beberapa event hook yang berjalan pada titik-titik berbeda dalam alur kerja:- PreToolUse: Berjalan sebelum panggilan tool (dapat memblokir mereka)
- PostToolUse: Berjalan setelah panggilan tool 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 command line.
Langkah 1: Buka konfigurasi hooks
Jalankan slash command/hooks dan pilih
event hook PreToolUse.
Hook PreToolUse berjalan sebelum panggilan tool dan dapat memblokir mereka sambil memberikan
umpan balik Claude tentang apa yang harus dilakukan secara berbeda.
Langkah 2: Tambahkan matcher
Pilih+ Add new matcher… untuk menjalankan hook Anda hanya pada panggilan tool Bash.
Ketik Bash untuk matcher.
Anda dapat menggunakan
* untuk mencocokkan semua tool.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 contoh validator perintah bash 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 yang tidak berlabel
- Menambahkan tag bahasa yang sesuai untuk syntax highlighting
- Memperbaiki baris kosong berlebihan sambil mempertahankan konten kode
- Hanya memproses file markdown (
.md,.mdx)
Hook Notifikasi Kustom
Dapatkan notifikasi desktop ketika Claude membutuhkan input:Hook Perlindungan File
Blokir pengeditan pada file sensitif:Pelajari lebih lanjut
- Untuk dokumentasi referensi tentang hooks, lihat Referensi Hooks.
- Untuk praktik keamanan terbaik yang komprehensif dan panduan keselamatan, lihat Pertimbangan Keamanan dalam dokumentasi referensi hooks.
- Untuk langkah-langkah troubleshooting dan teknik debugging, lihat Debugging dalam dokumentasi referensi hooks.