Pourquoi caffeinate ne suffit pas pour les workflows IA en Closed-Lid

Henry AGI
6 min de lectureJun 2026
Pourquoi caffeinate ne suffit pas pour les workflows IA en Closed-Lid

Non — caffeinate ne bloque que la veille liée à l'inactivité, et un couvercle fermé déclenche un tout autre type de veille : un agent IA ou un job de modèle laissé sans surveillance peut donc s'arrêter net dès que vous fermez l'écran et partez. Voici précisément pourquoi cet écart existe, la commande gratuite qui le comble, le risque qu'elle comporte, et ce qu'un workflow Closed-Lid plus sûr ajoute par-dessus.

Ce que caffeinate bloque réellement

caffeinate est un petit outil fiable, livré avec macOS dans /usr/bin/caffeinate. Lancez caffeinate -i et il crée une assertion qui empêche la veille système liée à l'inactivité ; -d garde l'écran allumé ; -s bloque la veille système, mais uniquement quand le Mac est branché sur secteur ; -m empêche le disque de passer en veille inactive. Encadrez une commande avec — caffeinate -i make — et si vous ne précisez aucun flag, caffeinate applique -i par défaut, en maintenant l'assertion exactement le temps que dure ce processus.

Sous le capot, il s'agit d'un appel à IOPMAssertionCreateWithName demandant un type d'assertion comme PreventUserIdleSystemSleep — la même primitive bas niveau sur laquelle repose le mode Keep Awake écran ouvert de LidRun. Ce n'est pas un reproche fait à caffeinate ; c'est le bon outil, correctement conçu, pour ce qu'il vise.

Pour un long build, un gros téléchargement, une suite de tests, ou un run Codex ou Claude Code de nuit avec l'écran ouvert, cette seule ligne suffit vraiment. Aucune raison d'aller chercher plus lourd.

Le mot à retenir, c'est inactivité. caffeinate bloque la veille qui se déclenche quand vous vous éloignez d'un ordinateur portable ouvert et que macOS décide que vous ne l'utilisez plus. C'est un type de veille précis — pas tous les types.

Pourquoi un couvercle fermé pose un problème différent

Fermer le couvercle ne déclenche pas la veille pour inactivité — il déclenche la veille clamshell, un comportement macOS distinct et plus bas niveau. À moins qu'un écran externe, l'alimentation secteur et un clavier ou une souris ne pilotent activement un véritable bureau écran fermé, macOS suspend la machine en quelques secondes après la fermeture du couvercle, assertion ou pas.

LidRun
Diagram comparing idle sleep, which caffeinate blocks, to clamshell sleep triggered by closing the lid, which it does not
Deux mécanismes de veille distincts : caffeinate ne répond jamais qu'à l'un des deux.

Aucune assertion basée sur IOPMAssertionCreateWithName n'atteint ce chemin — ni celle de caffeinate, ni celle d'aucune app construite sur la même primitive. Même -s, le flag le plus puissant de caffeinate, est explicitement limité dans son propre man page à « valide uniquement quand le système fonctionne sur secteur », et ça ne dit toujours rien sur le couvercle.

Résultat, le cas de plus en plus courant — lancer un agent ou un job de fine-tuning, fermer le portable, partir dans une autre pièce — laisse le run suspendu à l'instant où le couvercle se ferme. caffeinate maintient fidèlement son assertion ; le couvercle gagne quand même, parce que la veille pour inactivité et la veille clamshell répondent à deux questions différentes.

Guide associéLe mode Closed-Lid sur macOS, sans kext

La solution gratuite : pmset disablesleep

Le seul levier documenté et public qui change le comportement à la fermeture du couvercle sur batterie, sans écran externe, c'est le réglage pmset disablesleep. La commande : sudo pmset -a disablesleep 1 permet de fermer le couvercle sans que le Mac s'endorme, et sudo pmset -a disablesleep 0 remet la veille à la fermeture du couvercle en mode normal.

LidRun
Terminal screenshot showing the sudo pmset -a disablesleep 1 and disablesleep 0 commands with annotations
La commande qui permet réellement de garder le Mac éveillé écran fermé — et celle qu'il faut penser à annuler.

Elle demande votre mot de passe admin quand vous la lancez à la main (le flag -a la fait s'appliquer à tout le système), et elle prend effet immédiatement — aucun redémarrage requis.

C'est le mécanisme exact que le mode Closed-Lid de LidRun bascule en coulisses, et le lancer vous-même pour un seul job de nuit ne coûte rien et fonctionne. Si c'est ponctuel, ça suffit souvent vraiment.

Le risque de le faire à la main — et pourquoi les autres apps keep-awake se heurtent au même mur

Le hic, c'est ce que pmset disablesleep ne fait pas tout seul : c'est un réglage global et persistant. Il n'est pas limité à votre session de terminal ni au processus pour lequel vous l'avez activé — il reste sur 1 jusqu'à ce que vous le remettiez explicitement sur 0 ou que vous redémarriez le Mac. Oubliez la seconde commande, ou laissez la fenêtre de terminal ou l'app que vous avez utilisée planter avant d'y revenir, et le Mac refusera de s'endormir couvercle fermé — même immobile dans un sac — jusqu'à ce que vous le remarquiez et le corrigiez à la main.

LidRun
Comparison table showing caffeinate, Amphetamine, KeepingYouAwake, Lungo, and Caffeine all block idle sleep but none block lid-closed clamshell sleep on battery, unlike LidRun's guarded pmset path
Tous les outils keep-awake conçus pour la veille par inactivité butent sur le même mur dès que le lid est fermé — la solution se situe un niveau en dessous.

Et couvercle fermé, un Mac toujours éveillé ne peut pas dissiper la chaleur comme il le fait écran ouvert. Faire tourner une session dans un sac à dos fermé est le cas à surveiller de près, peu importe quel outil a activé disablesleep — la règle honnête, c'est de garder un Mac en marche ventilé, pas enfermé.

Ce n'est pas non plus un écart qu'un meilleur remplaçant de caffeinate comblerait. Amphetamine, KeepingYouAwake, Lungo et Caffeine sont tous des outils de menu-bar solides et bien conçus, avec de vrais atouts — interface plus soignée, minuteurs de session, règles déclenchées par app — mais chacun fonctionne via la même primitive d'assertion IOKit liée à l'inactivité que caffeinate. Aucun d'eux ne contourne non plus la veille clamshell : un couvercle fermé sur batterie endort quand même le Mac sous Amphetamine ou KeepingYouAwake, exactement comme sous un simple caffeinate -i. Ce n'est pas qu'il manque une fonctionnalité à ces apps — contourner la veille à la fermeture du couvercle nécessite l'escalade pmset disablesleep (ou une configuration clamshell avec écran externe), pas un wrapper d'assertion plus élégant.

Ce dont un workflow IA Closed-Lid plus sûr a réellement besoin

Activer disablesleep à la main fait passer un job la nuit, mais « rester éveillé coûte que coûte » n'est pas le bon objectif pour quelque chose qui tourne couvercle fermé, sur batterie, possiblement sans surveillance. Ce que ce réglage nécessite vraiment par-dessus, c'est un nettoyage fiable et des limites qui respectent la batterie et la chaleur.

LidRun
Table of LidRun's closed-lid guardrails: battery auto-stop threshold, emergency force-sleep floor, thermal step-back, charging-only mode, timer mode, and crash recovery, with their default values
Ce qui transforme un simple interrupteur pmset en un workflow que vous n'avez plus besoin de surveiller.

Côté nettoyage : LidRun associe l'activation de disablesleep à sa désactivation à chaque arrêt, fermeture de l'app, et fin normale, et — une fois son helper privilégié approuvé — le fait sans redemander le mot de passe admin à chaque fois. Si l'app est tuée avant de pouvoir nettoyer, un petit fichier heartbeat enregistre que Closed-Lid était armé ; au lancement suivant, LidRun vérifie cet état résiduel et remet disablesleep à 0. Cette remise à zéro se produit au lancement suivant, pas à l'instant où survient un crash — ça vaut mieux le savoir que le supposer.

Côté batterie : le keep-awake s'arrête automatiquement sous un seuil que vous fixez, 20 % par défaut, réglable entre 15 % et 50 %. En dessous se trouve un plancher d'urgence distinct qui force la veille — 4 % par défaut, réglable entre 4 % et 8 % — qui s'applique quel que soit le réglage d'arrêt automatique, parce que macOS a besoin d'une marge pour vraiment terminer sa mise en veille avant que la batterie ne soit à plat.

Côté chaleur : quand le signal thermique global de macOS lui-même signale que la puce est critiquement chaude, LidRun désactive le mode Closed-Lid par défaut et vous dit pourquoi — le Mac a trop chauffé, ouvrez le couvercle ou améliorez la ventilation — plutôt que de laisser un Mac fermé et enfermé continuer à cuire. C'est un repli, pas une affirmation qu'un Mac fermé ne peut pas surchauffer ; la règle de fond reste de garder un Mac en marche ventilé.

Il existe aussi des modes charge-seule et minuteur, pour les runs où vous préférez que l'assertion n'existe que branché sur secteur, ou qu'elle expire d'elle-même après une durée fixe, plutôt que de compter sur votre mémoire pour l'arrêter. Mis bout à bout, voici la forme de la promesse : agent en cours, rester éveillé ; agent terminé, ou run devenu dangereux, relâcher et laisser le Mac dormir. Pas un verrou de réveil aveugle qui se bat contre la batterie et le capteur thermique — la sécurité l'emporte sur le confort quand les deux se contredisent.

Utiliser caffeinate (ou Amphetamine) et LidRun ensemble

Ce n'est toujours pas caffeinate contre LidRun. caffeinate excelle dans la tâche pour laquelle il a été conçu, et beaucoup de workflows n'ont jamais besoin de plus que sa ligne unique — la même chose vaut pour Amphetamine, KeepingYouAwake ou Lungo pour du keep-awake écran ouvert avec une interface de menu-bar plus soignée.

Si vous gardez l'écran ouvert, caffeinate -i (ou celle de ces apps que vous utilisez déjà) est souvent la réponse la plus simple. Si vous fermez le couvercle pour de longs runs IA et dev et que vous voulez des garde-fous batterie et thermiques autour de ça, c'est exactement l'écart que LidRun comble.

Beaucoup de gens utilisent les deux : caffeinate pour les tâches rapides limitées à une commande dans le terminal, LidRun pour les runs Closed-Lid sans surveillance où oublier de désactiver un réglage système global a vraiment des conséquences.

Essayez-le plutôt que de lutter contre la veille capot fermé

LidRun garde votre travail actif capot fermé, avec une protection batterie et thermique intégrée.

Télécharger pour macOS

Vous avez déjà LidRun ? Lisez le guide d'installation →

Nouveau sur LidRun ? Voir les tarifs →

Questions fréquentes

Est-ce que caffeinate fonctionne couvercle fermé ?

Pas tout seul. caffeinate bloque la veille système liée à l'inactivité ; fermer le couvercle déclenche à la place la veille clamshell, que ne peut toucher aucune assertion de veille pour inactivité — celle de caffeinate incluse. Il faut passer par pmset disablesleep (ou un écran externe pilotant activement un vrai bureau clamshell) pour ça.

Est-ce que caffeinate est mauvais ?

Pas du tout. C'est un outil intégré fiable et le bon choix pour beaucoup de besoins de keep-awake écran ouvert. Ici, la question c'est le périmètre, pas la qualité : il n'a jamais été conçu pour gérer un couvercle fermé, et son propre man page le dit clairement — même son flag le plus puissant, -s, n'est valide que sur secteur et ne mentionne jamais le couvercle.

Que fait vraiment sudo pmset -a disablesleep 1, et est-ce sûr de la lancer à la main ?

C'est la vraie commande documentée : la mettre sur 1 avant de fermer le couvercle, puis la remettre sur 0 une fois terminé. Ça fonctionne, et pour un seul job de nuit, la lancer à la main ne pose pas de problème. Le risque, c'est qu'elle est globale et persistante — elle reste active jusqu'à ce que vous la désactiviez explicitement ou que vous redémarriez le Mac, donc un nettoyage oublié, ou un crash avant d'y revenir, laisse le Mac incapable de s'endormir couvercle fermé jusqu'à ce que vous le remarquiez et le corrigiez.

Est-ce qu'Amphetamine, KeepingYouAwake ou Lungo gardent un Mac éveillé couvercle fermé ?

Pas plus loin que caffeinate. Ce sont de bons outils de menu-bar keep-awake construits sur la même primitive d'assertion liée à l'inactivité, et aucun d'eux ne contourne la veille clamshell sur batterie. Un couvercle fermé endort quand même le Mac sous n'importe lequel d'entre eux, à moins que pmset disablesleep, ou une configuration clamshell avec écran externe, n'entre aussi en jeu.

Qu'est-ce qu'un run IA Closed-Lid nécessite vraiment au-delà du réglage pmset ?

Que le réglage soit désactivé de façon fiable, même après un crash ; un plancher batterie pour qu'un long run sans surveillance ne vide pas complètement la batterie ; un repli thermique pour qu'un Mac fermé et enfermé ne continue pas à pousser la chaleur ; et idéalement des options charge-seule ou minuteur pour ne pas compter sur votre mémoire pour l'arrêter.

Est-ce que je peux continuer à utiliser caffeinate en parallèle de LidRun ?

Oui. Ils cohabitent très bien — caffeinate pour les tâches rapides, encadrées par une commande, écran ouvert ; LidRun pour les runs Closed-Lid sans surveillance où le nettoyage de disablesleep et les garde-fous batterie et thermiques comptent.

Vous vous demandez si LidRun est fait pour vous ?

Laissez ChatGPT, Claude ou Perplexity faire la recherche — cliquez ci-dessous pour voir ce que l'IA pense vraiment de LidRun.