Guide

Claude Code s’arrête quand votre Mac se met en veille

Vous avez confié une longue tâche à Claude Code, rabattu l’écran, et retrouvé une session morte. L’agent n’y est pour rien. macOS a mis la machine en veille. La veille suspend tous les processus, coupe le réseau et ferme toute connexion SSH. Cette page présente les réglages qui l’empêchent, dans l’ordre où les essayer. Elle dit aussi quand la vraie solution est une autre machine.

Ce qui se passe vraiment à la mise en veille

Quand un Mac se met en veille, le CPU cesse d’exécuter vos processus. L’agent n’est pas tué. Il est figé. Au réveil, le processus reprend. Mais entre-temps, sa connexion à l’API a expiré. L’appel d’outil qu’il était en train de faire a échoué. Sur un portable, un écran rabattu entraîne la veille en quelques secondes, sauf si quelque chose l’en empêche. L’écran de verrouillage ne provoque pas la veille. L’économiseur d’écran non plus. Seuls le minuteur de veille et l’écran rabattu la provoquent.

Solution 1 : caffeinate pour une seule tâche

macOS fournit un outil qui garde la machine éveillée pendant l’exécution d’une commande. Lancez l’agent à travers lui, et le Mac reste éveillé jusqu’à ce que l’agent se termine.

caffeinate -i claude

Cette option empêche la veille du système pour inactivité. Ajoutez une deuxième option pour garder aussi l’écran allumé. Cela ne compte que pour les outils qui pilotent l’écran.

caffeinate -di claude

Cela ne résiste pas à un écran de portable rabattu. Le capteur de l’écran l’emporte sur toute demande de maintien en éveil. Et cela ne sert plus à rien une fois l’agent terminé, si vous lancez la tâche suivante sans caffeinate.

Solution 2 : désactiver la veille de la machine

Sur un Mac de bureau, ou un portable sur secteur, réglez le minuteur de veille sur jamais et n’y touchez plus. Ce sont les réglages que nous utilisons sur chaque Mac pour agents.

sudo pmset -a sleep 0
sudo pmset -a disksleep 0
sudo pmset -a displaysleep 10
sudo pmset -a womp 1

L’écran peut toujours se mettre en veille. Cela économise de l’énergie et ne change rien pour un processus dans le terminal. La dernière ligne active le réveil par le réseau. C’est utile si quelque chose finit quand même par endormir la machine.

Solution 3 : l’écran rabattu

Un MacBook écran rabattu se met en veille, sauf s’il est sur secteur et relié à un écran, un clavier ou une souris externes. C’est la règle du mode clamshell d’Apple. Sans écran externe, un réglage de plus force la machine à rester éveillée écran fermé.

sudo pmset -a disablesleep 1

Annulez-le plus tard avec la même commande et un zéro. Deux mises en garde. Le portable va chauffer dans un sac ou sur un lit, donc posez-le sur une surface dure. Et si le câble d’alimentation se débranche, il videra sa batterie en quelques heures. Il s’éteindra alors sans arrêt propre.

Solution 4 : le terminal, pas la machine

Parfois le Mac est resté éveillé et la session a quand même disparu. C’est la fenêtre du terminal qui s’est fermée, ou la connexion SSH qui a sauté. Cela envoie un signal de raccrochage à tout ce qui tourne dedans. La réponse est un multiplexeur de terminal. Lancez l’agent dans une session tmux. Il survit alors à la fenêtre, à la coupure SSH et au hoquet du Wi-Fi.

brew install tmux
tmux new -s agent
claude

Détachez-vous avec Ctrl-b puis d. Rattachez-vous plus tard depuis n’importe quel terminal, ou depuis votre téléphone via SSH, avec une seule commande.

tmux attach -t agent

Un guide complet décrit cette configuration : garder une session Claude Code active avec tmux.

Solution 5 : revenir après un redémarrage

Les mises à jour de sécurité redémarrent la machine. Les coupures de courant aussi. Après un redémarrage, rien ne tourne tant que personne ne s’est connecté. Pour une machine censée tourner sans surveillance, activez l’ouverture de session automatique pour l’utilisateur de l’agent dans Réglages Système. Ajoutez ensuite un LaunchAgent qui recrée la session tmux à la connexion. La checklist du Mac toujours allumé donne la liste complète, onduleur compris.

Quand le portable n’est pas la bonne machine

Tout ce qui précède fonctionne. Mais cela transforme aussi votre portable en serveur que vous ne pouvez emporter nulle part. Dès que l’agent fait du vrai travail la nuit, la plupart des gens le déplacent sur une machine dont le seul rôle est de rester allumée. Il y a quatre options. Un Mac mini de rechange à la maison. Une machine Linux, si vous n’avez pas besoin de Xcode. Un Mac dans un cloud. Ou un Mac mini hébergé que quelqu’un d’autre garde éveillé. La comparaison des endroits où faire tourner un agent 24/7 met les coûts côte à côte.

Questions fréquentes

caffeinate garde-t-il Claude Code actif écran rabattu ?

+

Non. Sur un MacBook, le capteur de l’écran l’emporte sur caffeinate. Il faut la machine sur secteur avec un écran externe branché, ou le réglage d’alimentation disablesleep.

L’écran de verrouillage ou l’économiseur d’écran arrêtent-ils l’agent ?

+

Non. Verrouiller l’écran ou lancer l’économiseur ne met pas la machine en veille. Seuls le minuteur de veille, une batterie faible ou un écran rabattu le font. Un écran verrouillé ne gêne pas un agent dans le terminal.

Cela vaut-il aussi pour Codex ?

+

Oui. Codex CLI est un processus de terminal, comme Claude Code. Les mêmes réglages de veille, caffeinate et tmux s’appliquent, ainsi que la même règle de l’écran rabattu.

Puis-je garder le Mac éveillé depuis mon téléphone ?

+

Vous pouvez lancer une tâche depuis votre téléphone avec le Remote Control de Claude Code ou via SSH. Mais vous ne pouvez pas empêcher à distance un Mac de se mettre en veille une fois qu’il l’a décidé. Faites les réglages d’alimentation une fois, sur la machine elle-même.

Guides associés