Notifikasi Claude Code: ketahui kapan ia menunggu dan kapan ia selesai

“Sesi yang terblokir terlihat persis sama dengan sesi yang sudah selesai, jadi saya membuka yang salah lebih dulu.” Kalimat dari sebuah permintaan fitur Claude Code itu merangkum masalahnya. Berikut cara mendapatkan sinyal yang berbeda untuk masing-masing.

Oleh Aslan, tim Pet Island · Diperbarui 26 Okt 2026 · 4 menit baca

JAWABAN SINGKAT

Claude Code sudah menampilkan notifikasi saat selesai atau menunggu izin ketika Anda sedang tidak di depan terminal, tetapi secara default hanya Ghostty, Kitty, dan iTerm2 yang menampilkannya sebagai notifikasi desktop. Di terminal lain, setel "preferredNotifChannel": "terminal_bell". Untuk dua suara yang berbeda, gunakan hook Notification dengan matcher permission_prompt untuk “membutuhkan Anda” dan hook Stop untuk “selesai”.

Apa yang dilakukan Claude Code dengan sendirinya

Saat Claude menyelesaikan tugas atau berhenti sejenak untuk prompt izin, dan Anda tampaknya sedang tidak di depan terminal, Claude Code memicu event notifikasi. Secara default, event itu diubah menjadi notifikasi desktop hanya di Ghostty, Kitty, dan iTerm2. Di Windows Terminal, terminal VS Code, Warp, dan lainnya, tidak ada yang terlihat kecuali Anda menyiapkannya.

Solusi paling sederhana adalah bel terminal:

~/.claude/settings.jsonSalin
{
"preferredNotifChannel": "terminal_bell"
}

Apa yang dilakukan bel bergantung pada terminal Anda. Di Windows Terminal, pengaturan bellStyle dapat bernilai audible (default), window, taskbar, all, atau none. Dengan all, Windows Terminal memutar suara dan membuat ikon taskbar berkedip.

  • iTerm2: Settings → Profiles → Terminal → centang “Notification Center Alerts”, lalu Filter Alerts → aktifkan “Send escape sequence-generated alerts”.
  • tmux: tambahkan set -g allow-passthrough on ke ~/.tmux.conf, jika tidak, notifikasi tidak akan pernah sampai ke terminal luar.
  • Melalui SSH: notifikasi desktop dikirim kembali ke mesin lokal Anda, sehingga sesi jarak jauh tetap bisa memberi tahu Anda.

Permintaan fitur untuk notifikasi sistem (#26581, 34 upvote) ditutup dengan alasan sudah tersedia, merujuk tepat pada notifikasi bawaan ini. Permintaan untuk sinyal berbeda bagi “menunggu” dan “selesai” (#94373) masih terbuka. Di sinilah hook berperan.

Dua event: Notification dan Stop

  • Notification terpicu saat Claude Code mengirim notifikasi. Matcher-nya adalah jenis notifikasi. Dua yang perlu Anda perhatikan adalah permission_prompt (Claude membutuhkan persetujuan Anda untuk memakai sebuah alat dan prompt sudah menunggu sekitar enam detik) dan idle_prompt (Claude selesai merespons sekitar 60 detik yang lalu dan Anda belum mengetik sejak itu).
  • Stop terpicu setiap kali Claude selesai merespons. Event ini tidak terpicu saat Anda menginterupsi; error API memicu StopFailure sebagai gantinya.

Hook berjalan bersama notifikasi bawaan, bukan menggantikannya, sehingga Anda bisa mempertahankan keduanya.

Windows: dua suara berbeda

Di Windows, hook berjalan di Git Bash, atau PowerShell jika Git Bash tidak terpasang. Menyetel "shell": "powershell" menghilangkan tebak-tebakan. Konfigurasi ini memutar bunyi bip ganda bernada tinggi saat Claude membutuhkan izin dan bip bernada rendah saat selesai:

%USERPROFILE%\.claude\settings.jsonSalin
{
"hooks": {
"Notification": [
{
"matcher": "permission_prompt",
"hooks": [
{ "type": "command", "shell": "powershell",
"command": "[Console]::Beep(1320, 150); [Console]::Beep(1320, 150)" }
]
}
],
"Stop": [
{
"hooks": [
{ "type": "command", "shell": "powershell",
"command": "[Console]::Beep(660, 300)" }
]
}
]
}
}

Console.Beep menerima frekuensi dalam hertz dan durasi dalam milidetik, lalu menunggu hingga bunyi bip selesai. Panduan hook Anthropic juga menunjukkan contoh Windows yang membuka kotak pesan dengan System.Windows.Forms; catatan mereka sendiri menyebutkan bahwa itu adalah dialog, bukan notifikasi, dan bisa terbuka di balik terminal Anda.

macOS dan Linux

Dokumentasi Anthropic memakai afplay di macOS:

~/.claude/settings.jsonSalin
{
"hooks": {
"Notification": [
{
"matcher": "permission_prompt",
"hooks": [{ "type": "command", "command": "afplay /System/Library/Sounds/Glass.aiff" }]
}
],
"Stop": [
{
"hooks": [{ "type": "command", "command": "afplay /System/Library/Sounds/Pop.aiff" }]
}
]
}
}

Untuk peringatan visual, gunakan osascript -e 'display notification "Claude needs you" with title "Claude Code"' di macOS, atau notify-send "Claude Code" "Claude needs you" di Linux.

Detail yang bisa menghemat waktu semalaman

  • Stop sangat sering terpicu. Event ini terpicu setiap kali Claude selesai merespons, bukan hanya saat seluruh tugas selesai. Jika itu terlalu ramai, gunakan notifikasi idle_prompt sebagai gantinya. Notifikasi ini menunggu sekitar satu menit dan hanya terpicu jika Anda belum mengetik.
  • Baca event-nya jika Anda membutuhkannya. Input Notification mencakup message, title, dan notification_type, sehingga skrip dapat menampilkan permintaan yang sebenarnya.
  • Agent view. Jika Anda menjalankan sesi latar belakang dengan claude agents, fitur ini memberi tahu Anda melalui preferredNotifChannel yang sama saat sebuah sesi mulai membutuhkan input, selesai, atau gagal, dan memicu hook Notification dengan jenis agent_needs_input atau agent_completed.
  • Status terminal. Terminal yang mengimplementasikan protokol status OSC 7501 dapat menampilkan apakah setiap sesi Claude Code sedang bekerja, menunggu, atau selesai. Claude Code v2.1.295 atau yang lebih baru melaporkannya secara otomatis.
  • Hook tidak terpicu di Windows? Lihat Hook Claude Code tidak berfungsi di Windows. Penyebabnya hampir selalu shell.

Mengetahui sesi mana, dan menjawabnya

Suara memberi tahu Anda bahwa sesuatu terjadi. Suara tidak memberi tahu dari terminal mana di antara ketiga terminal Anda asalnya, atau apa yang ingin dijalankan Claude. Pet Island memberi setiap sesi Claude Code tempat di sebuah island kecil di bagian atas layar Anda: sedang bekerja, menunggu Anda, atau selesai. Permintaan izin datang beserta perintah atau diff-nya, dan Anda mengizinkan atau menolaknya langsung di sana; pertanyaan dan rencana bekerja dengan cara yang sama. Sekali klik membawa Anda ke terminal yang tepat saat Anda ingin melihat lebih dekat.

FAQ

Apakah Claude Code memiliki notifikasi?

Ya. Saat selesai atau menunggu izin ketika Anda sedang tidak di depan terminal, Claude Code memicu notifikasi. Ghostty, Kitty, dan iTerm2 menampilkannya sebagai notifikasi desktop secara default; di terminal lain, setel preferredNotifChannel ke "terminal_bell" atau tambahkan hook Notification.

Bagaimana cara mendapatkan suara saat Claude Code selesai?

Tambahkan hook Stop yang memutar suara, misalnya afplay di macOS atau [Console]::Beep di PowerShell pada Windows.

Bagaimana cara membedakan “membutuhkan izin” dari “selesai”?

Gunakan hook Notification dengan matcher permission_prompt untuk satu suara dan hook Stop untuk suara lainnya.

Mengapa saya tidak mendapatkan notifikasi di Windows Terminal atau VS Code?

Secara default, Claude Code mengirim notifikasi desktop hanya di Ghostty, Kitty, dan iTerm2. Setel preferredNotifChannel ke "terminal_bell" atau gunakan hook.

Apakah notifikasi berfungsi di dalam tmux?

Ya, setelah Anda menambahkan set -g allow-passthrough on ke ~/.tmux.conf.

Sumber

Setiap pengaturan dan perilaku di halaman ini telah dicocokkan dengan halaman-halaman berikut pada 26 Oktober 2026. Agen berubah dengan cepat; jika ada yang tidak lagi sesuai, halaman resmi yang berlaku.

BACA JUGA

Jawab setiap agen dari bagian atas layar Anda.

Windows dan Mac · Gratis 7 hari, lalu $8.99 sekali bayar · $1 dari setiap penjualan memberi makan hewan jalanan

Coba Pet Island gratis