tmux içinde, ~/.tmux.conf dosyasına set -g allow-passthrough on ekleyene kadar Claude Code'un masaüstü bildirimleri dıştaki terminalinize hiç ulaşmaz. Bu, oturuma bağlıyken sorunu çözer. Detach ettiğinizde ise oturumu gösteren bir terminal kalmaz, dolayısıyla ekrandaki hiçbir şey sizi uyaramaz; ama Claude Code çalışmaya, hook'ları da tetiklenmeye devam eder. Detached bir oturumdan haber almak için terminale bağlı bir hook yerine ağ üzerinden telefonunuza veya bir sohbet uygulamasına push gönderen bir hook kullanın.
01Bağlıyken: bildirimlerin tmux'tan geçmesine izin verin
tmux, Claude Code ile terminaliniz arasında durur ve varsayılan olarak Claude Code'un masaüstü bildirimleri için kullandığı escape sequence'leri yutar. Anthropic'in terminal rehberi ~/.tmux.conf için şu bloğu veriyor:
set -g allow-passthrough on
set -g focus-events on
set -s extended-keys on
set -as terminal-features 'xterm*:extkeys'
Çalışan sunucuya uygulayın:
tmux source-file ~/.tmux.conf
allow-passthrough, bildirimlerin ve ilerleme güncellemelerinin dıştaki terminale ulaşmasını sağlar. Diğer satırlar yeni satır için Shift+Enter'ı düzeltir. Bu ayar yapıldığında, Claude Code'un bildirimlerini tmux dışında gösteren terminaller (Ghostty, Kitty ve uyarıları etkinleştirilmiş iTerm2) bunları tmux içinde de gösterir.
Aynısı terminalSequence döndüren hook'lar için de geçerlidir. Anthropic'in hooks referansına göre bu sequence'leri Claude Code kendisi yazar ve bu, tmux ile GNU screen içinde çalışır. Örnekler için macOS, Linux ve SSH rehberlerine bakın.
02Bağlı ama başka bir penceredeyken: bell kullanın
Claude Code bir tmux penceresinde çalışırken siz başka bir pencerede çalışıyorsanız, bell basit bir sinyaldir. Claude Code'a her zaman bell göndermesini söyleyin:
{
"preferredNotifChannel": "terminal_bell"
}
Ardından ~/.tmux.conf içinde tmux'un buna tepki vermesini sağlayın:
setw -g monitor-bell on
set -g bell-action other
set -g visual-bell off
monitor-bell (varsayılan olarak açık) bell çalan pencereyi işaretler ve tmux durum satırında onu ! ile gösterir. bell-action other, baktığınız pencere dışındaki pencerelerden gelen bell'leri terminalinize iletir; böylece terminal bip sesi çıkarabilir veya simgeyi zıplatabilir. Mevcut pencereyi de dahil etmek için any kullanın. visual-bell ayarını on yaparsanız bell iletilmek yerine tmux içinde bir mesaj gösterilir.
03Hangi oturumun size ihtiyaç duyduğunu belirtin
Birden fazla oturum çalışırken yalnızca "Claude size ihtiyaç duyuyor" diyen bir bildirim pek işe yaramaz. Hook, pane'in ortamında çalıştığı için tmux'tan oturum ve pencere adını isteyebilir. Bu Linux örneği bunları bir masaüstü bildiriminde gösterir:
#!/bin/bash
msg=$(jq -r '.message // "Claude Code needs your attention"')
where=""
if [ -n "$TMUX_PANE" ]; then
where=$(tmux display-message -p -t "$TMUX_PANE" '#S:#W')
fi
notify-send "Claude Code ${where}" "$msg"
Bunu ~/.claude/hooks/notify-tmux.sh olarak kaydedin, üzerinde chmod +x çalıştırın ve Notification veya Stop hook komutu olarak kullanın. #S oturum adı, #W ise pencere adıdır; oturumlarınıza tmux new -s api-refactor ile ad verirseniz bildirim size nereye gitmeniz gerektiğini söyler. notify-send yerine platformunuzun komutunu veya bir push kullanabilirsiniz. Oturumları birbirinden ayırmanın başka yolları için birden fazla oturum rehberine bakın.
04Detached durumdayken: push gerekir
tmux'un asıl amacı detach etmektir: uzun bir görev başlatır, detach eder ve gidersiniz. Claude Code detached oturumda çalışmaya devam eder. Ancak artık escape sequence veya bell gösterecek bir terminal yoktur; tmux sunucusu SSH üzerinden başlatıldıysa masaüstü bildirim komutunun gidebileceği bir yer de olmayabilir.
Ağ isteği yapan bir hook, oturuma bağlı biri olup olmamasını umursamaz. Herhangi bir push servisi işinizi görür. ntfy rehberi ve Telegram, Slack ve Discord rehberi doğrudan yapıştırabileceğiniz hook'lar içerir. Bunlar bir şey olduğunu size bildirir ama Claude'a yanıt veremez; bu yüzden bir izin prompt'u, tmux attach -t api-refactor ile yeniden bağlanana kadar bekler.
05Claude Code Notifier'ın yeri
Claude Code Notifier, Claude Code'un hook'ları üzerine kurulmuş 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 üzerinde çalışır. Terminale değil Claude Code'a bağlandığı için tmux, screen veya düz bir shell içinde, bağlı ya da detached olsun, aynı şekilde çalışır:
curl -fsSL https://claudecodenotifier.com/install.sh | sh
Masaüstü bir makinede Claude işini bitirdiğinde, izin istediğinde veya soru sorduğunda bir masaüstü bildirimi gösterir. Bir telefon eşleştirdiğinizde aynı olaylar, ccn'in çalıştığı her makineden (SSH ile bağlandığınız bir sunucu dahil) TouchTap'in şifreli relay'i üzerinden push bildirimi olarak gelir.
Telefon, detached bir oturumun bıraktığı boşluğu doldurur. Bir izin istendiğinde telefondan bir kez izin verebilir, oturum boyunca izin verebilir veya reddedebilirsiniz; Claude siz yeniden bağlanmadan devam eder. Claude bir soru sorduğunda yanıt seçebilir, Claude bitirir bitirmez bir sonraki talimatı gönderebilirsiniz. Son 30 saniye içinde bir şey yazdıysanız telefon beklenmez ve terminal her zamanki gibi sorar. Başında değilseniz terminal, belirlediğiniz üst sınıra kadar (hold_ceiling_seconds) telefondan gelecek yanıtı bekler ve klavyeye dokunduğunuz anda beklemeyi bırakır.
Telefon eşleştirme, uzun görevlerde bilgisayar başından ayrılma ve ccn sayfası rehberlerine bakın. Telefon uygulamaları abonelik veya ömür boyu satın alma gerektirir; fiyatlandırma sayfasına bakın.
06GNU screen
Bu konuda screen de tmux'a çok benzer çalışır. Anthropic'in hooks referansına göre hook'ların terminalSequence çıktısı screen içinde çalışır ve screen, bakmadığınız bir pencere bell çaldığında bir mesaj gösterir. Detached screen oturumları da detached tmux ile aynı sorunu yaşar: ekranda hiçbir şey yoktur, bu yüzden push kullanın.
07SSS
Claude Code bildirimleri tmux içinde neden görünmüyor?
Passthrough açık olmadığı sürece tmux, Claude Code'un kullandığı escape sequence'leri engeller. ~/.tmux.conf dosyasına set -g allow-passthrough on ekleyin ve tmux source-file ~/.tmux.conf komutunu çalıştırın.
tmux oturumundan ayrıldığımda (detach) Claude Code çalışmaya devam eder mi?
Evet. İşlem tmux sunucusunda çalışmaya devam eder ve hook'ları tetiklenmeyi sürdürür. Yalnızca bağlı bir terminal gerektiren bildirimler size ulaşmaz.
Ayrılmış (detached) bir tmux oturumundan nasıl bildirim alırım?
Ağ üzerinden push gönderen bir hook kullanın; örneğin ntfy, bir sohbet webhook'u ya da Claude Code Notifier telefon uygulaması. Terminal escape dizileri ve zil sesi, bağlı bir istemci gerektirir.
Oturuma yeniden bağlanmadan bir izni onaylayabilir miyim?
Sıradan bir push servisiyle hayır. Claude Code Notifier ve eşleştirilmiş bir telefonla isteği telefondan onaylayabilir veya reddedebilirsiniz; ayrılmış oturum da kaldığı yerden devam eder.
Hangi tmux oturumunun beni beklediğini nasıl anlarım?
Oturumlarınıza ad verin ve bu adı bildirime ekleyin. Bir hook bu adı tmux display-message -p -t "$TMUX_PANE" '#S:#W' ile okuyabilir.