Dans tmux, les notifications de bureau de Claude Code n'atteignent jamais ton terminal externe tant que tu n'as pas ajouté set -g allow-passthrough on à ~/.tmux.conf. Ça règle le problème tant que tu es attaché. Une fois détaché, aucun terminal n'affiche la session, donc rien à l'écran ne peut te prévenir, mais Claude Code continue de tourner et ses hooks de se déclencher. Pour avoir des nouvelles d'une session détachée, utilise un hook qui envoie un push via le réseau, vers ton téléphone ou une appli de chat, plutôt qu'un hook qui dépend d'un terminal.
01Attaché : laisser passer les notifications à travers tmux
tmux se place entre Claude Code et ton terminal et, par défaut, avale les séquences d'échappement que Claude Code utilise pour les notifications de bureau. Le guide terminal d'Anthropic donne ce bloc pour ~/.tmux.conf :
set -g allow-passthrough on
set -g focus-events on
set -s extended-keys on
set -as terminal-features 'xterm*:extkeys'
Applique-le au serveur en cours d'exécution :
tmux source-file ~/.tmux.conf
allow-passthrough laisse les notifications et les mises à jour de progression atteindre le terminal externe. Les autres lignes corrigent Shift+Enter pour les retours à la ligne. Avec ça, les terminaux qui affichent les notifications de Claude Code hors de tmux (Ghostty, Kitty, et iTerm2 avec les alertes activées) les affichent aussi dans tmux.
C'est pareil pour les hooks qui renvoient une terminalSequence. D'après la référence des hooks d'Anthropic, Claude Code écrit lui-même ces séquences, ce qui fonctionne dans tmux et GNU screen. Les guides macOS, Linux et SSH contiennent des exemples.
02Attaché, mais dans une autre fenêtre : utilise le bell
Si Claude Code tourne dans une fenêtre tmux et que tu travailles dans une autre, le bell est un signal simple. Dis à Claude Code d'en envoyer un à chaque fois :
{
"preferredNotifChannel": "terminal_bell"
}
Puis fais réagir tmux, dans ~/.tmux.conf :
setw -g monitor-bell on
set -g bell-action other
set -g visual-bell off
monitor-bell (activé par défaut) signale une fenêtre qui a déclenché son bell, et tmux la marque d'un ! dans la barre d'état. bell-action other transmet à ton terminal les bells des fenêtres autres que celle que tu regardes, pour qu'il puisse biper ou rebondir. Utilise any pour inclure aussi la fenêtre courante. Régler visual-bell sur on affiche un message dans tmux au lieu de transmettre le bell.
03Indiquer quelle session a besoin de toi
Avec plusieurs sessions en cours, une notification qui dit juste « Claude a besoin de toi » n'aide pas beaucoup. Un hook s'exécute dans l'environnement du pane, il peut donc demander à tmux le nom de la session et de la fenêtre. Cet exemple Linux les affiche dans une notification de bureau :
#!/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"
Enregistre-le sous ~/.claude/hooks/notify-tmux.sh, lance chmod +x dessus et utilise-le comme commande de hook Notification ou Stop. #S est le nom de la session et #W celui de la fenêtre ; nomme tes sessions avec tmux new -s api-refactor et la notification te dit où aller. Remplace notify-send par la commande de ta plateforme, ou par un push. Le guide sur les sessions multiples propose d'autres façons de distinguer les sessions.
04Détaché : il te faut un push
Se détacher, c'est tout l'intérêt de tmux : tu lances une tâche longue, tu te détaches et tu t'en vas. Claude Code continue de travailler dans la session détachée. Mais il n'y a plus de terminal pour afficher une séquence d'échappement ou un bell, et si le serveur tmux a été lancé via SSH, une commande de notification de bureau n'a peut-être nulle part où aller non plus.
Un hook qui fait une requête réseau se fiche de savoir si quelqu'un est attaché. N'importe quel service de push fait l'affaire. Le guide ntfy et le guide Telegram, Slack et Discord ont des hooks prêts à coller. Ils te préviennent qu'il s'est passé quelque chose ; ils ne peuvent pas répondre à Claude, donc une demande de permission attend toujours que tu te rattaches avec tmux attach -t api-refactor.
05Où se situe Claude Code Notifier
Claude Code Notifier est un outil indépendant (créé par TouchTap, pas par Anthropic) basé sur les hooks de Claude Code. Son outil en ligne de commande gratuit, ccn, tourne sur Mac, Windows et Linux. Comme il se branche sur Claude Code plutôt que sur un terminal, il fonctionne de la même façon dans tmux, screen ou un simple shell, attaché ou détaché :
curl -fsSL https://claudecodenotifier.com/install.sh | sh
Sur un poste de bureau, il affiche une notification quand Claude a terminé, a besoin d'une permission ou pose une question. Appaire un téléphone et ces mêmes événements arrivent en push via le relais chiffré de TouchTap, depuis n'importe quelle machine où tourne ccn, y compris un serveur auquel tu accèdes en SSH.
Le téléphone comble le vide laissé par une session détachée. Quand une permission se présente, tu peux autoriser une fois, autoriser pour la session ou refuser depuis le téléphone, et Claude continue sans que tu aies à te rattacher. Tu peux choisir une réponse quand Claude pose une question, et envoyer l'instruction suivante dès que Claude a terminé. Si tu as tapé quelque chose dans les 30 dernières secondes, rien n'attend le téléphone et le terminal pose la question comme d'habitude. Si tu n'es pas là, le terminal attend la réponse du téléphone jusqu'à une durée maximale que tu choisis (hold_ceiling_seconds), et arrête d'attendre dès que tu touches le clavier.
Consulte appairer un téléphone, laisser tourner les tâches longues et la page ccn. Les applis mobiles nécessitent un abonnement ou un achat à vie ; consulte les tarifs.
06GNU screen
screen fonctionne à peu près comme tmux pour ça. D'après la référence des hooks d'Anthropic, la sortie terminalSequence des hooks fonctionne dans screen, et screen affiche un message quand une fenêtre que tu ne regardes pas déclenche son bell. Les sessions screen détachées ont le même problème que tmux détaché : rien n'est affiché, donc utilise un push.
07FAQ
Pourquoi les notifications de Claude Code ne s'affichent-elles pas dans tmux ?
tmux bloque les séquences d'échappement utilisées par Claude Code tant que le passthrough n'est pas activé. Ajoute set -g allow-passthrough on à ~/.tmux.conf et lance tmux source-file ~/.tmux.conf.
Est-ce que Claude Code continue de tourner quand je me détache de tmux ?
Oui. Le processus continue de tourner dans le serveur tmux, et ses hooks continuent de se déclencher. Seules les notifications qui ont besoin d'un terminal attaché ne t'arrivent plus.
Comment être notifié depuis une session tmux détachée ?
Utilise un hook qui envoie un push via le réseau, comme ntfy, un webhook de chat ou l'app mobile de Claude Code Notifier. Les séquences d'échappement du terminal et la cloche ont besoin d'un client attaché.
Est-ce que je peux approuver une permission sans me rattacher ?
Pas avec un simple service de push. Avec Claude Code Notifier et un téléphone appairé, tu peux autoriser ou refuser la demande depuis ton téléphone, et la session détachée continue.
Comment savoir quelle session tmux a besoin de moi ?
Donne un nom à tes sessions et ajoute-le dans la notification. Un hook peut le lire avec tmux display-message -p -t "$TMUX_PANE" '#S:#W'.