Claude Code bildirimleri: seni beklediğini ve işini bitirdiğini ayrı ayrı duy

“Engellenmiş bir oturum, bitmiş bir oturumla tamamen aynı görünüyor, bu yüzden önce yanlış olanı açıyorum.” Bir Claude Code özellik isteğindeki bu cümle durumu özetliyor. Her biri için farklı bir sinyali nasıl alacağın burada.

Aslan, Pet Island ekibi · Güncellendi: 26 Eki 2026 · 4 dk okuma

KISA CEVAP

Claude Code, sen uzaktayken işini bitirdiğinde veya izin beklediğinde zaten bir bildirim oluşturur, ama varsayılan olarak bunu sadece Ghostty, Kitty ve iTerm2 masaüstü bildirimi olarak gösterir. Diğer terminallerde "preferredNotifChannel": "terminal_bell" ayarla. İki farklı ses için “sana ihtiyacı var” durumunda permission_prompt matcher'lı bir Notification hook'u, “bitti” durumunda bir Stop hook'u kullan.

Claude Code kendi başına ne yapar

Claude bir görevi bitirdiğinde veya bir izin istemi için durakladığında ve sen terminalden uzakta görünüyorsan bir bildirim event'i tetikler. Varsayılan olarak bunu sadece Ghostty, Kitty ve iTerm2 içinde masaüstü bildirimine dönüştürür. Windows Terminal, VS Code terminali, Warp ve diğerlerinde sen ayarlamadıkça görünür hiçbir şey olmaz.

En basit çözüm terminal zili:

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

Zilin ne yapacağı terminaline bağlıdır. Windows Terminal'de bellStyle ayarı audible (varsayılan), window, taskbar, all veya none olabilir. all ile Windows Terminal bir ses çalar ve görev çubuğu simgesini yanıp söndürür.

  • iTerm2: Settings → Profiles → Terminal → “Notification Center Alerts” seçeneğini işaretle, sonra Filter Alerts → “Send escape sequence-generated alerts” seçeneğini etkinleştir.
  • tmux: ~/.tmux.conf dosyasına set -g allow-passthrough on ekle, yoksa bildirimler dıştaki terminale hiç ulaşmaz.
  • SSH üzerinden: masaüstü bildirimi yerel makinene geri gelir, yani uzak oturumlar da seni uyarabilir.

Sistem bildirimleri için açılan özellik isteği (#26581, 34 oy) tam olarak bu yerleşik bildirime işaret edilerek zaten mevcut olduğu gerekçesiyle kapatıldı. “Bekliyor” ve “bitti” için farklı bir sinyal isteyen talep (#94373) hâlâ açık. Hook'lar tam burada devreye girer.

İki event: Notification ve Stop

  • Notification Claude Code bir bildirim gönderdiğinde tetiklenir. Matcher'ı bildirim türüdür. İlgilendiğin iki tür permission_prompt (Claude bir araç kullanımını onaylamanı istiyor ve istem yaklaşık altı saniyedir bekliyor) ve idle_prompt (Claude cevabını yaklaşık 60 saniye önce bitirdi ve sen o zamandan beri bir şey yazmadın).
  • Stop Claude her cevap vermeyi bitirdiğinde tetiklenir. Sen yarıda kestiğinde tetiklenmez; API hataları bunun yerine StopFailure tetikler.

Hook'lar yerleşik bildirimin yerine geçmez, onunla birlikte çalışır; yani ikisini de tutabilirsin.

Windows: iki farklı ses

Windows'ta hook'lar Git Bash'te, Git Bash kurulu değilse PowerShell'de çalışır. "shell": "powershell" ayarlamak tahmini ortadan kaldırır. Bu yapılandırma, Claude izin istediğinde yüksek tonlu çift bip, bittiğinde ise düşük tonlu bir bip çalar:

%USERPROFILE%\.claude\settings.jsonKopyala
{
"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 hertz cinsinden bir frekans ve milisaniye cinsinden bir süre alır ve bip bitene kadar bekler. Anthropic'in hooks rehberi, System.Windows.Forms ile bir mesaj kutusu açan bir Windows örneği de gösteriyor; kendi notlarına göre bu bir bildirim değil bir iletişim kutusudur ve terminalinin arkasında açılabilir.

macOS ve Linux

Anthropic'in dokümanları macOS'ta afplay kullanıyor:

~/.claude/settings.jsonKopyala
{
"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" }]
}
]
}
}

Görünür bir uyarı için macOS'ta osascript -e 'display notification "Claude needs you" with title "Claude Code"', Linux'ta notify-send "Claude Code" "Claude needs you" kullan.

Sana bir akşam kazandıracak ayrıntılar

  • Stop çok sık tetiklenir. Sadece tüm görev bittiğinde değil, Claude her cevap vermeyi bitirdiğinde tetiklenir. Bu fazla gürültülüyse bunun yerine idle_prompt bildirimini kullan. Yaklaşık bir dakika bekler ve sadece sen bir şey yazmadıysan tetiklenir.
  • Gerekirse event'i oku. Notification girdisi message, title ve notification_type alanlarını içerir, yani bir script asıl isteği gösterebilir.
  • Agent view. Arka plan oturumlarını claude agents ile çalıştırıyorsan, bir oturum girdi beklemeye başladığında, bittiğinde veya başarısız olduğunda seni aynı preferredNotifChannel üzerinden bilgilendirir ve Notification hook'unu agent_needs_input veya agent_completed türüyle tetikler.
  • Terminal durumu. OSC 7501 durum protokolünü uygulayan terminaller, her Claude Code oturumunun çalıştığını, beklediğini veya bittiğini gösterebilir. Claude Code v2.1.295 veya sonrası bunu otomatik olarak bildirir.
  • Hook Windows'ta tetiklenmiyor mu? Claude Code hook'ları Windows'ta çalışmıyor rehberine bak. Neredeyse her zaman sebep shell'dir.

Hangi oturum olduğunu görmek ve cevap vermek

Bir ses bir şey olduğunu söyler. Üç terminalinden hangisinden geldiğini veya Claude'un ne çalıştırmak istediğini söylemez. Pet Island her Claude Code oturumuna ekranının üstündeki küçük bir adada bir yer verir: çalışıyor, seni bekliyor veya bitti. Bir izin isteği komut veya diff ile birlikte gelir ve ona orada izin verir veya reddedersin; sorular ve planlar da aynı şekilde çalışır. Daha yakından bakmak istediğinde tek tıkla tam olarak o terminale geçersin.

SSS

Claude Code'un bildirimleri var mı?

Evet. Sen uzaktayken işini bitirdiğinde veya izin beklediğinde bir bildirim tetikler. Ghostty, Kitty ve iTerm2 bunu varsayılan olarak masaüstü bildirimi olarak gösterir; diğer terminallerde preferredNotifChannel değerini "terminal_bell" yap veya bir Notification hook'u ekle.

Claude Code bittiğinde nasıl ses alırım?

Ses çalan bir Stop hook'u ekle, örneğin macOS'ta afplay veya Windows'ta PowerShell içinde [Console]::Beep.

“İzin gerekiyor” ile “bitti” durumunu nasıl ayırt ederim?

Bir ses için permission_prompt matcher'lı bir Notification hook'u, diğeri için bir Stop hook'u kullan.

Windows Terminal veya VS Code'da neden bildirim almıyorum?

Claude Code varsayılan olarak masaüstü bildirimlerini sadece Ghostty, Kitty ve iTerm2'de gönderir. preferredNotifChannel değerini "terminal_bell" yap veya bir hook kullan.

Bildirimler tmux içinde çalışır mı?

Evet, ~/.tmux.conf dosyasına set -g allow-passthrough on ekledikten sonra.

Kaynaklar

Bu sayfadaki her ayar ve davranış 26 Ekim 2026 tarihinde bu sayfalarla karşılaştırılarak kontrol edildi. Ajanlar hızlı değişir; bir şey artık uyuşmuyorsa geçerli olan resmi sayfadır.

OKUMAYA DEVAM ET

Tüm ajanlarına ekranının üstünden cevap ver.

Windows ve Mac · 7 gün ücretsiz, sonra tek seferlik $8.99 · Her satıştan $1 sokak hayvanlarını besler

Pet Island'ı ücretsiz dene