Skip to main content
Hooks adalah perintah shell yang ditentukan pengguna. Claude Code menjalankannya pada titik-titik spesifik dalam siklus hidupnya, yang memberikan Anda kontrol deterministik: tindakan tertentu selalu terjadi daripada mengandalkan LLM untuk memilih menjalankannya. Gunakan hooks untuk menegakkan aturan proyek, mengotomatisasi tugas berulang, dan mengintegrasikan Claude Code dengan alat yang sudah ada. Untuk keputusan yang memerlukan penilaian daripada aturan deterministik, Anda juga dapat menggunakan prompt-based hooks atau agent-based hooks yang menggunakan model Claude untuk mengevaluasi kondisi. Untuk cara lain memperluas Claude Code, lihat skills untuk memberikan Claude instruksi tambahan dan perintah yang dapat dieksekusi, subagents untuk menjalankan tugas dalam konteks terisolasi, dan plugins untuk mengemas ekstensi untuk dibagikan di seluruh proyek.
Panduan ini mencakup kasus penggunaan umum dan cara memulai. Untuk skema acara lengkap, format input/output JSON, dan fitur lanjutan seperti async hooks dan MCP tool hooks, lihat Hooks reference.

Siapkan hook pertama Anda

Untuk membuat hook, tambahkan blok hooks ke file pengaturan. Panduan ini membuat hook notifikasi desktop, sehingga Anda mendapat peringatan kapan pun Claude menunggu input Anda daripada menonton terminal.
1

Tambahkan hook ke pengaturan Anda

Buka ~/.claude/settings.json dan tambahkan hook Notification. Jika file tidak ada, buatlah. Contoh di bawah menggunakan osascript untuk macOS; lihat Dapatkan notifikasi ketika Claude memerlukan input untuk perintah Linux dan Windows.
Jika file pengaturan Anda sudah memiliki kunci hooks, tambahkan Notification sebagai sibling dari kunci acara yang ada daripada mengganti seluruh objek. Setiap nama acara adalah kunci di dalam objek hooks tunggal:
Anda juga dapat meminta Claude untuk menulis hook untuk Anda dengan mendeskripsikan apa yang Anda inginkan di CLI.
2

Verifikasi konfigurasi

Ketik /hooks di prompt Claude Code untuk membuka browser hooks. Hook baru Anda muncul dalam daftar di bawah Notification.
3

Uji hook

Tekan Esc untuk kembali ke CLI. Tekan Shift+Tab hingga bilah status menunjukkan ⏸ manual mode on, minta Claude untuk melakukan sesuatu yang memerlukan izin, kemudian beralih dari terminal. Anda harus menerima notifikasi desktop.

Apa yang dapat Anda otomatisasi

Hooks memungkinkan Anda menjalankan kode pada titik-titik kunci dalam siklus hidup Claude Code: format file setelah edit, blokir perintah sebelum dijalankan, kirim notifikasi ketika Claude memerlukan input, injeksi konteks saat awal sesi, dan banyak lagi. Untuk daftar lengkap acara hook, lihat Hooks reference. Setiap contoh mencakup blok konfigurasi siap pakai yang Anda tambahkan ke file pengaturan. Untuk contoh produksi hooks yang menjalankan review model terpisah dan mengirimkan temuan kembali ke sesi, lihat bagaimana plugin security-guidance terintegrasi dengan Claude Code.

Dapatkan notifikasi ketika Claude memerlukan input

Dapatkan notifikasi desktop kapan pun Claude selesai bekerja dan memerlukan input Anda, sehingga Anda dapat beralih ke tugas lain tanpa memeriksa terminal. Hook ini menggunakan acara Notification, yang Claude Code aktifkan ketika Claude menunggu input atau izin. Lihat kapan setiap jenis notifikasi aktif untuk waktu yang tepat. Setiap tab di bawah menggunakan perintah notifikasi asli platform. Tambahkan ini ke ~/.claude/settings.json:
osascript merutekan notifikasi melalui aplikasi Script Editor bawaan. Jika Script Editor tidak memiliki izin notifikasi, perintah gagal diam-diam, dan macOS tidak akan meminta Anda untuk memberikannya.Jalankan ini di Terminal sekali untuk membuat Script Editor muncul di pengaturan notifikasi Anda:
Tidak ada yang akan muncul dulu. Buka System Settings > Notifications, temukan Script Editor dalam daftar, dan aktifkan Allow Notifications. Jalankan perintah lagi untuk mengonfirmasi notifikasi uji muncul.
Matcher kosong matcher aktif pada semua jenis notifikasi. Untuk aktif hanya pada acara tertentu, atur ke salah satu nilai berikut: Claude Code mengatur waktu permission_prompt berbeda di terminal dan di Claude Desktop, ekstensi VS Code, dan host lain yang menjawab permintaan izin melalui Agent SDK. Lihat kapan setiap jenis notifikasi aktif untuk kedua waktu. Matcher quota_auto_resume_fired, quota_auto_resume_stale, dan quota_auto_resume_disabled memerlukan Claude Code v2.1.234 atau lebih baru. Dalam sesi terminal, permission_prompt untuk permintaan jaringan perintah sandboxed memerlukan Claude Code v2.1.246 atau lebih baru. agent_needs_input untuk pertanyaan terminal setup teammate memerlukan Claude Code v2.1.248 atau lebih baru. Ketik /hooks di prompt Claude Code dan konfirmasi bahwa hook muncul di bawah Notification.

Auto-format kode setelah edit

Jalankan Prettier secara otomatis pada setiap file yang Claude edit, sehingga pemformatan tetap konsisten tanpa intervensi manual. Hook ini menggunakan acara PostToolUse dengan matcher Edit|Write, sehingga hanya berjalan setelah alat pengeditan file. Perintah mengekstrak jalur file yang diedit dengan jq dan meneruskannya ke Prettier. Tambahkan ini ke .claude/settings.json di root proyek Anda:
Untuk menguji hook, minta Claude untuk menambahkan baris dengan string yang dikutip tunggal ke file JavaScript, kemudian buka file: dengan pengaturan default Prettier, hook menulis ulang ke tanda kutip ganda. Ketika hook berhasil, Claude Code tidak menampilkan apa pun dalam percakapan. Untuk mengonfirmasi hook berjalan, periksa bahwa file yang diedit diformat ulang, atau lihat Periksa apa yang dilakukan hook. Untuk memformat ulang file tertentu bagaimanapun perubahannya, termasuk ketika perintah Bash menulis ulangnya, gunakan hook FileChanged sebagai gantinya.
Contoh Bash di halaman ini menggunakan jq untuk parsing JSON. Instal dengan brew install jq di macOS, apt-get install jq di Debian dan Ubuntu, atau lihat