Claude Code işini bitirdiğinde bildirim almak için ~/.claude/settings.json dosyasına, sisteminizin bildirim komutunu çalıştıran bir Stop hook'u ekleyin. Stop, Claude yanıtını bitirdiği anda tetiklenir. "Claude girdimi bekliyor" durumu için bir de Notification hook'u ekleyin: bu hook, bir izin istemi yaklaşık altı saniye beklediğinde veya Claude yaklaşık bir dakika boşta kaldığında tetiklenir. İkisi de Mac, Windows ve Linux üzerinde çalışır; Claude Code Notifier gibi bir araç da aynı bildirimleri telefonunuza gönderebilir.
01Claude Code kendiliğinden ne yapar
Claude Code, terminalden uzakta olduğunuzu düşündüğünde sizi zaten uyarmaya çalışır. Varsayılan olarak iTerm2, Ghostty ve Kitty'de masaüstü bildirimi gönderir, Apple Terminal'de bir zil karakteri gönderebilir, diğer terminallerde ise hiçbir şey yapmaz. iTerm2'de de bir şey görünmesi için önce uyarı ayarlarının açılması gerekir.
Yani VS Code terminali, Warp, Windows Terminal veya çoğu Linux terminalini kullanıyorsanız genellikle hiçbir bildirim almazsınız. preferredNotifChannel ayarıyla terminal zilini zorlayabilirsiniz; bu konu terminal zili rehberinde anlatılıyor. Herhangi bir terminalde gerçek bir masaüstü bildirimi için hook gerekir.
02İhtiyacınız olan iki hook
Hook'lar, Claude Code'un bir oturum sırasında belirli noktalarda çalıştırdığı komutlardır. Burada ikisi önemli:
StopClaude yanıtını bitirdiğinde (siz yarıda kestiğinizde değil)"Claude bitirdi"permission_prompt matcher'lı NotificationSiz bir şey yazmadan bir izin istemi yaklaşık altı saniye beklediğinde"Claude onay bekliyor"idle_prompt matcher'lı NotificationClaude bitirdikten yaklaşık 60 saniye sonra, o zamandan beri bir şey yazmadıysanızSıranın sizde olduğuna dair bir hatırlatmaHızlı olan Stop'tur. Her turun sonunda hemen çalışır. Notification türleri ise ekrandan uzaklaşmanıza bağlıdır: her tuş vuruşu onları erteler, böylece siz izlerken bildirim almazsınız. Claude izin istediği anda sinyal almak istiyorsanız bunun yerine PermissionRequest rehberinde anlatılan PermissionRequest hook'unu kullanın.
Hook'ların genel olarak nasıl çalıştığı (event'ler, matcher'lar, ayar dosyaları, çıkış kodları) için Claude Code hook'ları açıklaması sayfasına bakın.
03macOS üzerinde çalışan bir kurulum
~/.claude/settings.json dosyasını açın (yoksa oluşturun) ve şunu ekleyin. Dosyada zaten bir hooks nesnesi varsa, onu değiştirmek yerine Stop ve Notification anahtarlarını içine ekleyin.
{
"hooks": {
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "osascript -e 'display notification \"Claude has finished\" with title \"Claude Code\"'"
}
]
}
],
"Notification": [
{
"matcher": "permission_prompt|idle_prompt",
"hooks": [
{
"type": "command",
"command": "osascript -e 'display notification \"Claude Code needs your attention\" with title \"Claude Code\"'"
}
]
}
]
}
}
Stop'un matcher'ı yoktur, bu yüzden her turda tetiklenir. Notification matcher'ı ise onu "geri dön" anlamına gelen iki türle sınırlar.
Hiçbir şey görünmüyorsa macOS, osascript'in bildirim göstermek için kullandığı Script Editor'ü engelliyor olabilir. Terminal'de bir kez osascript -e 'display notification "test"' komutunu çalıştırın, ardından System Settings > Notifications bölümünü açın, Script Editor'ü bulun ve Allow Notifications seçeneğini açın.
04Linux ve Windows üzerinde aynı kurulum
Yukarıdaki JSON yapısını koruyun, yalnızca command değerlerini değiştirin.
Linux (bir masaüstü bildirim daemon'ı gerektirir, bu yüzden headless sunucuda çalışmaz):
"command": "notify-send 'Claude Code' 'Claude has finished'"
notify-send yüklü değilse Debian ve Ubuntu'da libnotify-bin paketini ya da dağıtımınızdaki karşılığını kurun. SSH ve sunucu kurulumları için SSH üzerinden bildirimler rehberine bakın.
Windows (PowerShell). Anthropic'in kendi örneği köşede bir toast yerine bir mesaj kutusu açar:
"command": "powershell.exe -Command \"[System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms'); [System.Windows.Forms.MessageBox]::Show('Claude has finished', 'Claude Code')\""
Kutu terminal pencerenizin arkasında açılabilir, bu yüzden komutu önce PowerShell'de deneyin. WSL altında powershell.exe dosyasına Windows interop üzerinden erişilebilmesi gerekir. Diğer seçenekler için Windows rehberine bakın.
05Çalıştığını doğrulayın
- Claude Code içinde
/hooksyazın. Hook'larınızStopveNotificationaltında listelenmelidir. - Claude'a kısa bir şey sorun. Yanıt verdiğinde
Stopbildirimi görünmelidir. - İzin gerektiren bir şey isteyin, başka bir pencereye geçin ve bekleyin.
permission_promptbildirimi yaklaşık altı saniye sonra gelir.
settings.json üzerindeki değişiklikler genellikle hemen algılanır. Bir hook /hooks içinde görünmüyorsa dosyanın geçerli bir JSON olduğundan emin olun (sonda virgül ve yorum olmamalı). Her hook'un ne yaptığını görmek için Claude Code'u claude --debug ile başlatın. Diğer çözümler için sorun giderme kontrol listesine bakın.
06Bildirimi telefonunuzda almak
Masaüstü bildirimi ancak bilgisayar başındaysanız işe yarar. Masadan kalktığınızda bildirimin başka bir yere gelmesi gerekir. Yaygın üç yol vardır:
- Kendi çalıştırdığınız bir push servisi; örneğin aynı hook'lardan
curlile çağrılan ntfy. Ucuz ve esnektir. ntfy rehberine bakın. - Telegram, Slack veya Discord için bir sohbet webhook'u. Zaten gününüzü sohbet uygulamalarında geçiriyorsanız iyi bir seçenektir. Sohbet webhook'ları rehberine bakın.
- Claude Code Notifier; hook'ları sizin yerinize kurar ve telefondan yanıt vermenizi sağlar.
Tek istediğiniz bir uyarıysa kendin-yap yöntemleri gayet yeterlidir. Sınırları tek yönlü olmalarıdır: Claude'un beklediğini öğrenirsiniz, ama bir şeyi onaylamak için yine klavyenin başına dönmeniz gerekir.
Claude Code Notifier, (Anthropic tarafından geliştirilmeyen) bağımsız bir araçtır ve iki parçadan oluşur: Mac, Windows ve Linux için ücretsiz bir komut satırı aracı olan ccn ile iPhone ve Android uygulamaları. Tek satırla kurabilirsiniz:
curl -fsSL https://claudecodenotifier.com/install.sh | sh
Windows'ta PowerShell içinde irm https://claudecodenotifier.com/install.ps1 | iex komutunu kullanın (Windows desteği beta aşamasındadır). Homebrew, npx @touchtap/ccn ve Claude Code eklentisi dahil diğer seçenekler ccn sayfasında.
Kurulum, her biri ccn hook çalıştıran yedi hook kaydı ekler, settings.json dosyanızın geri kalanına dokunmaz ve yanına tek seferlik bir yedek kaydeder. Hiç telefon olmadan da ccn, Claude işini bitirdiğinde, izin gerektiğinde veya bir soru sorduğunda bilgisayarınızda masaüstü bildirimi gösterir. Bu kısım ücretsizdir ve ağ bağlantısı olmadan çalışır.
ccn pair ile bir telefon eşleştirdiğinizde ayrıca şunları da elde edersiniz:
- bir tur biter bitmez gelen "Claude işini bitirdi" push bildirimi;
- bir kez izin verebileceğiniz, oturum boyunca izin verebileceğiniz veya reddedebileceğiniz izin istekleri;
- telefondan yanıtlayabileceğiniz Claude'un çoktan seçmeli soruları;
- Claude işini bitirir bitirmez ona bir sonraki talimatı göndermek için bir takip kutusu.
Son 30 saniye içinde yazı yazdıysanız hiçbir şey telefonu beklemez ve terminal her zamanki gibi sorar. Uygulamalar abonelik veya ömür boyu satın alma gerektirir; fiyatlandırmaya bakın. Kurulum adımları Telefon eşleştirme rehberinde anlatılıyor.
07SSS
Notification hook'um neden bu kadar geç tetikleniyor?
permission_prompt türü, prompt siz bir şey yazmadan yaklaşık altı saniye ekranda kalana kadar bekler; idle_prompt ise Claude işini bitirdikten yaklaşık 60 saniye sonra tetiklenir. Bu gecikme kasıtlıdır; ekranı izlerken rahatsız edilmezsiniz. Anında "bitti" uyarısı için Stop hook'unu, anında "onay gerekiyor" uyarısı için PermissionRequest hook'unu kullanın.
Claude'u Esc ile durdurursam Stop hook tetiklenir mi?
Hayır. Tur sizin araya girmenizle sona erdiğinde Stop çalışmaz. Tur, rate limit gibi bir API hatasıyla sona erdiğinde de çalışmaz. Claude Code bu durum için ayrı bir StopFailure olayı tetikler; buna da aynı şekilde hook bağlayabilirsiniz.
Stop hook her mesajdan sonra mı tetiklenir, yoksa yalnızca tüm görev bittiğinde mi?
Her turdan sonra. Claude Code genel görevinizin ne zaman bittiğini bilemez, yalnızca yanıt vermeyi ne zaman bıraktığını bilir. Uzun bir karşılıklı konuşmada her yanıt için bir uyarı alırsınız. Bu fazla geliyorsa bunun yerine yalnızca yaklaşık bir dakika uzaklaştığınızda tetiklenen idle_prompt bildirimini kullanın.
Bu, VS Code veya JetBrains terminalinde çalışır mı?
Evet. Hook'lar terminalden değil doğrudan Claude Code'dan çalışır; bu yüzden IDE terminalleri dahil her terminalde çalışır. Terminale bağlı olan, yerleşik bildirimlerdir. IDE terminalleri rehberine bakın.
Telefonuma hiçbir şey kurmadan bildirim alabilir miyim?
Kısmen. ntfy'ye veya bir sohbet webhook'una gönderim yapan bir hook, zaten yüklü olan bir uygulamaya ulaşabilir. Ancak size yalnızca bir şey olduğunu haber verebilir. Telefondan onay vermek veya yanıtlamak için yanıtınızı hook'a geri ileten bir şeye ihtiyacınız var; Claude Code Notifier uygulamaları tam olarak bunu yapar.