Claude Code uzak bir sunucuda çalıştığında, notify-send veya osascript hook'u sunucuda tetiklenir; orada da bildirimi gösterecek bir masaüstü yoktur. İşe yarayan iki yol var. Birincisi terminal escape sequence'ıdır: Claude Code'un yerleşik bildirimi ya da terminalSequence döndüren bir hook, SSH bağlantısı üzerinden geri gelir ve yerel terminaliniz (Ghostty, Kitty veya iTerm2) bunu gösterir; ancak yalnızca bağlıyken ve terminal açıkken. İkincisi, sunucudan telefonunuza ağ üzerinden ntfy, bir webhook veya Claude Code Notifier aracılığıyla gönderilen bir push'tur; bu, laptop'unuz kapalıyken de çalışmaya devam eder.
01Yerel bildirim komutları SSH üzerinden neden hiçbir şey yapmaz
Hook, Claude Code'un çalıştığı makinede Claude Code tarafından çalıştırılan bir komuttur. SSH ile bağlandığınız bir sunucuda bu makine sunucunun kendisidir. Oradaki notify-send bir masaüstü bildirim daemon'u gerektirir; Anthropic'in hooks rehberinde belirtildiği gibi headless sunucularda ve SSH oturumlarında bu bulunmaz. osascript ve PowerShell toast'ları ise orada hiç yoktur.
Yani asıl soru "hangi bildirim komutu" değil, "bir sinyal sunucudan bana nasıl ulaşır" sorusudur. Üç yolu var:
021. yol: SSH terminaliniz üzerinden bildirimler
Claude Code'un kendi bildirimi, terminale yazılan bir escape sequence'tır. Anthropic'in terminal rehberine göre bu, SSH üzerinden yerel makinenize ulaşır; dolayısıyla uzak bir oturum da sizi uyarabilir. Ghostty ve Kitty bunu hiçbir ayar gerektirmeden masaüstünüzün bildirim merkezine iletir. iTerm2 ise etkinleştirdiğinizde iletir: Settings > Profiles > Terminal bölümünde Notification Center Alerts seçeneğini işaretleyin, ardından Filter Alerts altında Send escape sequence-generated alerts seçeneğini açın.
Terminaliniz bunlardan biri değilse ya da kendi metninizi kullanmak istiyorsanız, bir hook Claude Code'un yazması için bir escape sequence döndürebilir. Hook'ların kendi terminali olmadığı için bunu terminalSequence alanında döndürürsünüz. Aşağıdakini sunucuda ~/.claude/hooks/notify-ssh.sh olarak kaydedin:
#!/bin/bash
body=$(jq -r '.message // "Claude Code needs your attention"')
# OSC 9 for iTerm2, WezTerm and ConEmu; use '\033]777;notify;%s;%s\007' for Ghostty
seq=$(printf '\033]9;%s\007' "$body")
jq -nc --arg seq "$seq" '{terminalSequence: $seq}'
Ardından sunucudaki ~/.claude/settings.json dosyasına ekleyin:
{
"hooks": {
"Notification": [
{
"matcher": "",
"hooks": [
{ "type": "command", "command": "~/.claude/hooks/notify-ssh.sh" }
]
}
]
}
}
chmod +x ~/.claude/hooks/notify-ssh.sh komutunu çalıştırın ve sunucuya jq kurun. Anthropic'in referansı kabul edilen sequence'ları listeler: OSC 9 (iTerm2, ConEmu, Windows Terminal, WezTerm), OSC 99 (Kitty), OSC 777 (urxvt, Ghostty, Warp) ve düz bir bell. Claude Code sequence'ı yalnızca etkileşimli bir oturumda, arayüzü ekrandayken yazar.
Bu yöntemin sınırları doğasından gelir. SSH bağlantısı koparsa, laptop'unuz uyku moduna geçerse ya da sekmeyi kapatırsanız hiçbir şey gelmez. Claude Code'u tmux içinde çalıştırıyorsanız sunucudaki ~/.tmux.conf dosyasına set -g allow-passthrough on ekleyin; bu konu ve detached oturumlar tmux rehberinde anlatılıyor.
032. yol: sunucudan push
Push terminalinize bağlı olmadığı için uzun işler için doğru seçimdir. Hook sunucudan bir HTTPS isteği yapar ve bir servis bunu telefonunuza veya sohbet uygulamanıza iletir. ntfy rehberinde ve Telegram, Slack ve Discord rehberinde çalışan hook örnekleri var. Bunlar size bir şey olduğunu haber verir; ancak bir komutu onaylayamaz veya bir soruyu yanıtlayamaz, bu yüzden Claude yine yeniden bağlanmanızı bekler.
043. yol: sunucuda Claude Code Notifier
Claude Code Notifier bağımsız bir araçtır (Anthropic değil, TouchTap tarafından geliştirilmiştir). Ücretsiz komut satırı aracı ccn Mac, Windows ve Linux'ta çalışır; bu yüzden onu Claude Code'un çalıştığı sunucuya kurarsınız:
curl -fsSL https://claudecodenotifier.com/install.sh | sh
Hook girdilerini sunucudaki ~/.claude/settings.json dosyasına ekler, geri kalanına dokunmaz ve bir yedek alır. ccn'in masaüstü bildirimleri ccn'in çalıştığı makinede görünür; headless bir sunucuda bu, işe yarar hiçbir yerde görünmemesi demektir. İşe yarayan yol telefondur: telefon bildirimleri SSH bağlantınız üzerinden değil, TouchTap'in şifreli relay sunucusu üzerinden gider; dolayısıyla ccn'in çalıştığı ve internete erişebilen her makineden çalışır.
SSH üzerinden eşleştirme
Eşleştirme için sunucuda tarayıcı gerekmez. SSH oturumunuzda ccn pair komutunu çalıştırabilirsiniz; terminalde telefonunuzun kamerasıyla tarayacağınız bir QR kodu ve 24 saat geçerli bir bağlantı yazdırır. Ya da telefonunuzda uygulamayı açıp Computers > Add a computer bölümüne gidin ve gösterilen satırı çalıştırın; bu, kurulumu ve eşleştirmeyi tek adımda yapar:
curl -fsSL https://claudecodenotifier.com/install.sh | sh -s 482913
(Altı haneli kod bir örnektir; uygulamanızın gösterdiği kodu kullanın.) Bir telefona birden fazla bilgisayar bağlanabilir, böylece hem laptop'unuz hem de sunucunuz aynı telefona bildirim gönderebilir. Ayrıntılar için eşleştirme rehberine bakın.
Telefondan neler yapabilirsiniz
Eşleştirme tamamlandıktan sonra Claude işini bitirdiğinde, izin istediğinde veya bir soru sorduğunda push bildirimi alırsınız. Bir izne bir kez izin verebilir, oturum boyunca izin verebilir ya da reddedebilir; Claude'un sorusuna bir yanıt seçebilir ve Claude bitirdikten sonra bir sonraki talimatı gönderebilirsiniz. Başında değilseniz terminal, belirlediğiniz üst sınıra kadar telefondan gelecek yanıtı bekler ve klavyede bir şey yazdığınız anda beklemeyi bırakır. Hook'ları, kimlik bilgilerini ve relay bağlantısını kontrol etmek için sunucuda ccn doctor komutunu çalıştırın. Telefon uygulamaları için fiyatlandırma sayfasına bakın; komut satırı aracı ücretsizdir.
05SSH bağlantısı koptuğunda Claude Code'u çalışır durumda tutun
Üç yöntemin de çalışması için Claude Code'un kendisinin çalışmaya devam etmesi gerekir. claude'u doğrudan SSH shell'inizden başlatırsanız bağlantı koptuğunda oturum da sona erer. Bağlantı kopmasından etkilenmemesi için onu tmux veya GNU screen içinde çalıştırın, sonra yeniden bağlanın. Hook'lar detached bir oturumda da tetiklenmeye devam eder; telefona push bildiriminin asıl işe yaradığı yer de burasıdır. Bu iş akışı tmux rehberi ve uzun görevlerde bilgisayar başından ayrılma rehberinde anlatılıyor.
06SSS
Claude Code'u SSH üzerinden kullanırken notify-send neden hiçbir şey yapmıyor?
Hook sunucuda çalışır ve sunucuda bir masaüstü bildirim servisi yoktur. Yerel terminalinizin anladığı bir escape sequence ya da bir push servisi kullanın.
Claude Code'un yerleşik bildirimi SSH üzerinden çalışır mı?
Evet, destekleyen terminallerde çalışır. Anthropic'in dokümantasyonuna göre masaüstü bildirimi SSH üzerinden yerel makinenize ulaşır; Ghostty ve Kitty bunu ek ayar gerektirmeden gösterir, iTerm2 ise escape sequence uyarılarını etkinleştirdikten sonra gösterir. Bağlantının açık olması gerekir.
ccn'i dizüstü bilgisayarıma mı yoksa sunucuya mı kurmalıyım?
Sunucuya, çünkü Claude Code ve hook'ları orada çalışır. Claude Code'u dizüstü bilgisayarınızda da çalıştırıyorsanız oraya da kurun; tek bir telefon her ikisiyle de eşleştirilebilir.
SSH oturumum koparsa yine bildirim alır mıyım?
Yalnızca sunucudan gönderilen bir push ile ve yalnızca Claude Code hâlâ çalışıyorsa, örneğin tmux içinde. Escape sequence'ler bağlantı kapandığı anda çalışmaz.
Telefon bildirimleri için sunucuda açık port gerekir mi?
ccn gelen bağlantıya ihtiyaç duymaz. Relay sunucusuna ulaşmak için yalnızca giden internet erişimi gerekir.