Memulai dengan Claude Code hooks
Pelajari cara menyesuaikan dan memperluas perilaku Claude Code dengan mendaftarkan perintah shell
Claude Code hooks adalah perintah shell yang didefinisikan pengguna yang dieksekusi pada berbagai titik dalam siklus hidup Claude Code. Hooks menyediakan kontrol deterministik atas perilaku Claude Code, memastikan tindakan tertentu selalu terjadi daripada mengandalkan LLM untuk memilih menjalankannya.
Untuk dokumentasi referensi tentang hooks, lihat Referensi Hooks.
Contoh kasus penggunaan untuk hooks meliputi:
- Notifikasi: Sesuaikan cara Anda mendapatkan notifikasi ketika Claude Code menunggu input atau izin Anda untuk menjalankan sesuatu.
- Pemformatan otomatis: Jalankan
prettier
pada file .ts,gofmt
pada 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.
Dengan mengkodekan aturan-aturan ini sebagai hooks daripada instruksi prompting, Anda mengubah saran menjadi kode tingkat aplikasi yang dieksekusi setiap kali diharapkan untuk berjalan.
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 mengeksfiltrasi data Anda. Selalu tinjau implementasi hooks Anda sebelum mendaftarkannya.
Untuk praktik keamanan terbaik lengkap, lihat Pertimbangan Keamanan dalam dokumentasi referensi hooks.
Gambaran Umum 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
- Notification: Berjalan ketika Claude Code mengirim notifikasi
- Stop: Berjalan ketika Claude Code selesai merespons
- SubagentStop: Berjalan ketika tugas subagen selesai
Setiap event menerima data yang berbeda dan dapat mengontrol perilaku Claude dengan cara yang berbeda.
Quickstart
Dalam quickstart ini, Anda akan menambahkan hook yang mencatat perintah shell yang dijalankan Claude Code.
Prasyarat
Instal jq
untuk pemrosesan JSON di command line.
Langkah 1: Buka konfigurasi hooks
Jalankan slash command /hooks
dan pilih
event hook PreToolUse
.
Hooks 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.
Gunakan string kosong ""
untuk mencocokkan semua tool. Karakter *
bukan matcher yang valid dengan sendirinya.
Langkah 3: Tambahkan hook
Pilih + Add new hook…
dan masukkan perintah ini:
Langkah 4: Simpan konfigurasi Anda
Untuk lokasi penyimpanan, pilih User 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 seperti ls
dan periksa file log Anda:
Anda harus melihat entri seperti:
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 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.