Garder Claude Code actif après une coupure SSH : la recette tmux
Garde Claude Code actif après une coupure SSH avec tmux. Retrouve le même processus et vérifie la persistance avant de quitter AgentsRoom.
L'agent travaille sur ton serveur. Tu fermes le portable. À ton retour, il n'y a plus de processus à retrouver.
Nous avons reçu exactement cette demande : des sessions distantes persistantes qui survivent à une coupure du client, pour continuer depuis une autre machine. Notre lancement SSH exécutait déjà le CLI sur l'hôte. Cela ne suffisait pas : le processus dépendait encore du terminal SSH interactif.
Nous avons livré le changement dans AgentsRoom 1.198.0. Voici d'abord la recette à la main, puis ce que l'app en fait. Le même problème de durée de vie concerne Claude Code, Codex et les autres CLI de code interactifs.
Le terminal doit survivre à la connexion
Notre lancement distant ordinaire utilisait un canal SSH avec un terminal attaché. Si ce canal disparaît, l'hôte peut envoyer un signal de déconnexion et l'agent meurt. Un processus distant n'est pas automatiquement persistant.
tmux donne au processus un terminal qui vit sur l'hôte indépendamment de celui qui le regarde. Son guide de démarrage décrit précisément cet usage : protéger des programmes distants des coupures et y accéder depuis un autre ordinateur.
Il s'agit ici de garder un processus actif. Pour choisir entre une session cloud, une télécommande sur téléphone et ton propre serveur, lis les trois sens d'un agent distant.
Lance tmux avant l'agent
Sur un hôte de type Unix, connecte-toi avec ton alias SSH habituel. Remplace le chemin du dépôt par le tien :
ssh my-server
tmux -V
tmux new-session -s coding
cd ~/projects/my-repo
claude
Pour Codex, remplace la dernière ligne par codex. Le CLI doit être installé et connecté à ton compte sur le serveur. Commence dans un dépôt où tu peux expérimenter sans conséquence.
Détache-toi avec Ctrl+B, puis D. Reconnecte-toi plus tard :
ssh my-server
tmux list-sessions
tmux attach-session -t coding
Le manuel de tmux documente le détachement et le rattachement. Tu retrouves le terminal actif. Tu ne renvoies pas la tâche et tu ne lances pas un deuxième agent.
Vérifie le cycle avant de confier du vrai travail
Tu peux vérifier la recette sans consommer de quota d'agent. Dans la nouvelle session tmux, lance cette commande finie à la place d'un CLI :
python3 -u -c 'import time; [(print(i, flush=True), time.sleep(1)) for i in range(60)]'
Détache-toi, coupe SSH et rattache-toi dans la minute qui suit. Les nombres doivent avoir avancé pendant ton absence. C'est une procédure pour ton hôte, pas une mesure que nous aurions faite sur toutes les configurations de serveur.
Essaie ensuite une courte tâche d'agent. Après reconnexion, regarde les fichiers modifiés et s'il attend une réponse. Une session peut survivre pendant que l'agent attend une permission. Le garder actif ne le rend pas autonome.
Ce que nous avons changé dans AgentsRoom
Ouvre la connexion SSH enregistrée et active Garder les agents actifs sur cet hôte quand AgentsRoom se ferme. L'option est désactivée par défaut. L'hôte doit avoir tmux 3.0 ou plus récent.
Ouvre ensuite un projet distant et lance un agent dessus. Le CLI tourne dans une session tmux nommée sur l'hôte. Quitter AgentsRoom, mettre le portable en veille ou perdre la connexion laisse cette session tranquille. Ouvrir à nouveau le même agent enregistré s'y rattache, y compris depuis un autre ordinateur de ton compte.
Nous avons fait quatre choix techniques parce que chacun change un geste utilisateur :
- Le nom de session suit l'identité de l'agent. Rouvrir cet agent retrouve son processus ; un nouvel agent a une nouvelle session.
- L'app utilise un serveur tmux séparé et ignore ta configuration tmux personnelle. Elle ne réorganise pas les sessions que tu gères à la main.
- Le préfixe tmux est désactivé dans l'app. Ctrl+B reste disponible pour le CLI de code et Échap lui parvient sans le délai habituel de tmux.
- Redémarrer explicitement l'agent remplace le processus distant. Quitter l'app détache celui qui le regarde. Ces gestes doivent avoir des effets différents.
La dernière distinction compte le plus. Fermer l'onglet de l'agent n'est pas le geste pour le laisser travailler. Quitte l'app ou déconnecte-toi de sa vue. Si tu fermes ou redémarres explicitement l'agent, AgentsRoom tente aussi d'arrêter la session distante ; si l'hôte est injoignable, cet arrêt ne peut pas être garanti.
Si tmux manque ou est trop ancien, l'app lance l'agent comme avant. La case cochée ne prouve pas à elle seule la persistance : vérifie l'hôte et fais l'exercice de déconnexion. Ces détails de l'implémentation publiée ont été vérifiés le 7 octobre 2026.
La place de nohup et de Mosh
nohup fait ignorer les signaux de déconnexion à une commande, comme l'explique son manuel. Il ne donne pas un terminal interactif auquel se rattacher ensuite. Il convient mieux à une commande de traitement avec entrée et sortie redirigées qu'à un agent qui peut poser une question.
Mosh gère les connexions intermittentes et les changements de réseau. Sa documentation prévient aussi qu'il synchronise l'écran visible plutôt que tout l'historique défilant. Il peut s'utiliser avec tmux ; retrouver une session après avoir volontairement quitté le client est une autre question que changer de réseau en cours de route.
Ce que la persistance ne règle pas
L'hôte doit rester allumé. Un redémarrage met fin aux processus actifs. Une limite de quota, un plantage du CLI ou une question de permission peut encore bloquer le travail. Tu retrouves l'écran courant ; tout l'historique de console affiché sur l'autre ordinateur n'est pas promis à la reprise.
Garde le travail dans des fichiers que la prochaine session pourra lire : une courte note de tâche, les changements eux-mêmes et le résultat des vérifications. Un terminal qui survit est utile. Une tâche dont l'état n'existe que dans ce terminal reste fragile.
La page d'accès distant explique comment atteindre tes agents. Cette recette répond à la question suivante : reste-t-il un agent à atteindre quand la connexion a disparu ?
Questions fréquentes
Un agent de code sur un serveur survit-il à une coupure SSH ?
Un simple terminal SSH interactif ne garantit aucune persistance. Perdre son terminal peut arrêter l'agent. Lance-le dans tmux sur le serveur avant de te déconnecter, puis rattache-toi à cette session. Le serveur doit rester allumé et l'agent peut toujours s'arrêter pour ses propres raisons.
Puis-je me reconnecter depuis un autre ordinateur ?
Oui, connecte-toi au même serveur avec le même utilisateur de l'hôte et rattache-toi à la session tmux nommée. Dans AgentsRoom, active les sessions persistantes de la connexion SSH, puis ouvre le même agent enregistré depuis un autre ordinateur de ton compte. Un nouvel agent crée une autre session.
Se reconnecter revient-il à reprendre une conversation ?
Non. Se rattacher à une session tmux active retrouve un processus qui n'a jamais été arrêté. Reprendre une conversation enregistrée lance un processus qui relit l'historique du CLI. Un fichier de conversation ne restaure ni une commande en cours ni un processus de terminal mort.
Fermer AgentsRoom arrête-t-il un agent distant persistant ?
Quitter l'app le laisse actif si l'option de sessions persistantes de la connexion SSH est activée et si l'hôte dispose de tmux 3.0 ou plus récent. Fermer ou redémarrer explicitement l'agent demande l'arrêt ou le remplacement de son processus ; un hôte injoignable ne peut pas confirmer cette action. Sans tmux compatible, le lancement revient au comportement SSH habituel.
Télécharger AgentsRoom
Lancez tous vos agents IA, sur tous vos projets, depuis une seule fenêtre.
App companion : suivez vos agents en déplacement
Utilisez Claude, Codex, Antigravity CLI ou un autre fournisseur IA.
Remontez bugs et demandes directement dans votre backlog public.
Continuer la lecture
Dix agents ont lancé le même typecheck en même temps. La solution était un dossier.
Dix-sept agents de code dans le même checkout, dix tsc en parallèle, load average 37 et 87 Mo de RAM libre. Un typecheck de quatre-vingt-dix secondes a mis 7 min 36. Voici la mesure, pourquoi la machine ne calculait pas, et le petit verrou partagé qui a réglé le problème. Recopiable dans n'importe quel dépôt.
Lire l'articleClaude Code ne retient qu'une session à la fois. Voici comment en faire tourner plusieurs.
Guide de terrain pour faire cohabiter un compte pro et un compte perso sur la même machine : la variable d'environnement qui décide quel compte est actif, pourquoi la méthode par le shell casse dès le troisième terminal, et comment épingler un compte par projet.
Lire l'articleLes Routines de Claude Code : ce qui tourne dans le cloud, ce qui reste sur ta machine, et comment choisir
Les Routines sont la façon qu'a Claude Code de lancer un prompt enregistré sans toi : à heure fixe, sur un appel d'API ou sur un événement GitHub, dans une cloud session qui part d'un clone neuf de ton dépôt. Elles sont en research preview. Claude Code a aussi deux façons locales de planifier un travail, les tâches planifiées de l'app Desktop et /loop, et les trois ne se comportent pas pareil : intervalle minimum, accès à tes fichiers locaux, demandes de permission, ce qui se passe quand le portable dort. Ce guide pose les trois avec les limites de la documentation, puis explique pourquoi nos sept agents de nuit tournent sur une machine locale.
Lire l'article