Por qué caffeinate no basta para workflows de IA con la tapa cerrada

Henry AGI
6 min de lecturaJun 2026
Por qué caffeinate no basta para workflows de IA con la tapa cerrada

No: caffeinate solo bloquea el reposo por inactividad, y cerrar la tapa activa un tipo de reposo completamente distinto, así que un agente de IA o un job de modelo sin supervisión puede morir en el instante en que cierras la tapa y te vas. Acá te explico exactamente por qué existe esa brecha, el comando gratuito que la cierra, el riesgo que trae ese comando, y qué le suma un workflow más seguro para cuando trabajas con la tapa cerrada.

Qué bloquea caffeinate en realidad

caffeinate es una herramienta pequeña y confiable que viene incluida en macOS, en /usr/bin/caffeinate. Si corres caffeinate -i, se crea una aserción que evita el reposo del sistema por inactividad; -d mantiene la pantalla encendida; -s mantiene desactivado el reposo del sistema, pero solo mientras la Mac está conectada a la corriente; -m evita que el disco entre en reposo por inactividad. Envuelve un comando con él — caffeinate -i make — y si no especificas ninguna flag, caffeinate asume -i por defecto, manteniendo la aserción activa exactamente mientras dure ese proceso.

Por debajo, eso es una llamada a IOPMAssertionCreateWithName pidiendo un tipo de aserción como PreventUserIdleSystemSleep — el mismo primitivo de bajo nivel sobre el que está construido el propio modo Keep Awake de LidRun para tapa abierta. Esto no es una crítica a caffeinate; es la herramienta correcta, bien construida, para lo que hace.

Para un build largo, una descarga pesada, una suite de tests, o una corrida nocturna de Codex o Claude Code con la tapa abierta, esa única línea es más que suficiente. No hay ninguna razón para buscar algo más pesado.

La palabra clave acá es idle: inactividad. caffeinate bloquea el reposo que ocurre cuando te alejas de una laptop abierta y macOS decide que no la estás usando. Es un tipo específico de reposo — no todos.

Por qué una tapa cerrada es un problema distinto

Cerrar la tapa no activa el reposo por inactividad — activa el reposo clamshell, un comportamiento distinto y de más bajo nivel en macOS. A menos que una pantalla externa, la corriente alterna y un teclado o mouse estén activamente manejando un verdadero escritorio con la pantalla cerrada, macOS suspende la máquina a los pocos segundos de cerrarse la tapa, haya o no una aserción activa.

LidRun
Diagram comparing idle sleep, which caffeinate blocks, to clamshell sleep triggered by closing the lid, which it does not
Dos rutas de reposo distintas: caffeinate solo cubre una de ellas.

Ninguna aserción basada en IOPMAssertionCreateWithName llega a esa ruta — ni la de caffeinate, ni la de ninguna app construida sobre el mismo primitivo. Incluso -s, la flag más fuerte de caffeinate, está explícitamente limitada en su propio man page a "válida solo cuando el sistema corre con corriente alterna", y aun así no dice nada sobre la tapa.

Entonces el caso cada vez más común — arrancar un agente o un job de fine-tuning, cerrar la laptop, irte a otra habitación — deja la corrida suspendida en el instante en que se cierra la tapa. caffeinate sigue sosteniendo fielmente su aserción; la tapa igual gana, porque el reposo por inactividad y el reposo clamshell responden a dos preguntas distintas.

Guía relacionadaModo tapa cerrada en macOS, sin kext

La solución gratuita: pmset disablesleep

La única palanca documentada y pública que cambia el comportamiento al cerrar la tapa con batería, sin pantalla externa, es la opción pmset disablesleep. El comando es: sudo pmset -a disablesleep 1 permite cerrar la tapa sin que la Mac entre en reposo, y sudo pmset -a disablesleep 0 devuelve el reposo al cerrar la tapa a su comportamiento normal.

LidRun
Terminal screenshot showing the sudo pmset -a disablesleep 1 and disablesleep 0 commands with annotations
El comando real que permite que la Mac siga despierta con la tapa cerrada — y el que hay que usar después para revertirlo.

Te pide la contraseña de administrador cuando lo corres a mano (la flag -a hace que se aplique a todo el sistema), y surte efecto de inmediato — no hace falta reiniciar.

Ese es el mecanismo real que el modo Closed-Lid de LidRun activa por debajo, y correrlo tú mismo para un solo job nocturno no cuesta nada y funciona. Si es algo puntual, casi siempre es más que suficiente.

El riesgo de hacerlo a mano — y por qué otras apps para mantener la Mac despierta chocan con el mismo muro

El detalle está en lo que pmset disablesleep no hace por sí solo: es una configuración global y persistente. No queda limitada a tu sesión de terminal ni al proceso para el que la activaste — se queda en 1 hasta que la vuelvas a poner en 0 a mano o reinicies la Mac. Si te olvidas del segundo comando, o la ventana de terminal o la app desde la que lo corriste se cae antes de que llegues a ejecutarlo, la Mac se va a negar a entrar en reposo con la tapa cerrada — incluso metida sin hacer nada dentro de una mochila — hasta que lo notes y lo arregles a mano.

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
Toda herramienta keep-awake para reposo por inactividad choca con la misma pared al cerrar la tapa — la solución está un nivel por debajo de todas ellas.

Y con la tapa cerrada, una Mac que sigue despierta no puede disipar el calor igual que con la tapa abierta. Correr una sesión dentro de una mochila sellada es el caso con el que hay que tener cuidado de verdad, sin importar qué herramienta haya activado disablesleep — la regla honesta es mantener ventilada una Mac que está corriendo, no sellada.

Tampoco es una brecha que cierre un reemplazo de caffeinate más bonito. Amphetamine, KeepingYouAwake, Lungo y Caffeine son todas herramientas de barra de menú sólidas y bien hechas, con ventajas reales — interfaz más prolija, temporizadores de sesión, reglas activadas por app — pero todas funcionan a través del mismo primitivo de aserción idle-sleep de IOKit que usa caffeinate. Tampoco ninguna de ellas anula el reposo clamshell: una tapa cerrada con batería sigue durmiendo la Mac bajo Amphetamine o KeepingYouAwake exactamente igual que bajo un caffeinate -i sin adornos. Eso no es que a esas apps les falte una función — anular el reposo al cerrar la tapa necesita la escalada de pmset disablesleep (o un setup de clamshell con pantalla externa), no un envoltorio de aserción más elegante.

Qué necesita en realidad un workflow de IA más seguro con la tapa cerrada

Activar disablesleep a mano te saca adelante un job durante la noche, pero "se queda despierta pase lo que pase" es el objetivo equivocado para algo que corre con la tapa cerrada, con batería, y posiblemente sin nadie mirando. Lo que esa configuración necesita encima es una limpieza confiable y límites que respeten la batería y el calor.

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
Lo que convierte un simple interruptor de pmset en un flujo de trabajo que no necesitas estar vigilando.

Sobre la limpieza: LidRun empareja activar disablesleep con desactivarlo de nuevo en cada Stop, cada cierre y cada terminación normal, y — una vez que aprobaste su helper con privilegios — lo hace sin pedirte la contraseña de administrador cada vez. Si la app se cierra a la fuerza antes de poder limpiar, un pequeño archivo de heartbeat registra que Closed-Lid estaba armado; la próxima vez que LidRun se abre, revisa si quedó ese estado pendiente y devuelve disablesleep a 0. Ese reseteo pasa en el siguiente lanzamiento, no en el instante en que ocurre el crash, y vale la pena saberlo en vez de darlo por sentado.

Sobre la batería: mantener la Mac despierta se detiene automáticamente por debajo de un umbral que tú defines, 20% por defecto y ajustable entre 15% y 50%. Por debajo de eso hay un piso de reposo forzado de emergencia, aparte — 4% por defecto, ajustable entre 4% y 8% — que actúa sin importar el ajuste de auto-stop, porque macOS necesita algo de margen para terminar de dormirse antes de que se agote la batería.

Sobre el calor: cuando la propia señal térmica gruesa de macOS reporta que el chip está críticamente caliente, LidRun apaga el modo Closed-Lid por defecto y te dice por qué — la Mac se calentó demasiado, abre la tapa o mejora la ventilación — en vez de dejar que una Mac cerrada y sellada se siga cocinando. Eso es un paso atrás por precaución, no la afirmación de que una Mac cerrada no puede sobrecalentarse; la regla de fondo sigue siendo mantener ventilada una Mac que está corriendo.

También hay modos de solo-mientras-carga y de temporizador, para corridas en las que prefieres que la aserción solo exista mientras está enchufada, o que expire sola después de una ventana fija, en vez de depender de que te acuerdes de detenerla. Juntando todo, así es la forma de la promesa: mientras el agente corre, mantenerla despierta; cuando el agente termina, o la corrida se vuelve insegura, soltar la aserción y dejar que la Mac duerma. No un bloqueo de reposo ciego peleando contra la batería y el sensor térmico — la seguridad gana sobre la comodidad cuando las dos chocan.

Usar caffeinate (o Amphetamine) junto con LidRun

Esto sigue sin ser caffeinate contra LidRun. caffeinate es excelente en el trabajo para el que fue hecho, y un montón de workflows nunca necesitan más que esa única línea — lo mismo pasa con Amphetamine, KeepingYouAwake o Lungo para mantener la Mac despierta con la tapa abierta y con una interfaz de barra de menú más agradable.

Si dejas la tapa abierta, caffeinate -i (o cualquiera de esas apps que ya uses) suele ser la respuesta más simple. Si cierras la tapa en corridas largas de IA y de desarrollo y quieres protecciones de batería y temperatura alrededor de eso, esa es la brecha específica que llena LidRun.

Mucha gente usa las dos cosas: caffeinate para tareas rápidas y acotadas a un comando en la terminal, LidRun para las corridas sin supervisión con la tapa cerrada, donde olvidarte de desactivar una configuración que afecta a todo el sistema sí importa de verdad.

Pruébalo en vez de pelear con el reposo de tapa cerrada

LidRun mantiene tu trabajo en marcha con la tapa cerrada, con protección de batería y temperatura integrada.

Descargar para macOS

¿Ya tienes LidRun? Lee la guía de configuración →

¿Nuevo en LidRun? Consulta los precios →

Preguntas frecuentes

¿caffeinate funciona con la tapa cerrada?

No por sí solo. caffeinate bloquea el reposo del sistema por inactividad; cerrar la tapa activa en cambio el reposo clamshell, al que ninguna aserción de idle-sleep — incluida la de caffeinate — puede tocar. Para eso necesitas el camino de pmset disablesleep (o una pantalla externa manejando activamente un verdadero escritorio clamshell).

¿caffeinate es malo?

Para nada. Es una herramienta confiable, incluida en el sistema, y la opción correcta para un montón de casos de mantener la Mac despierta con la tapa abierta. El punto acá es de alcance, no de calidad: nunca se construyó para manejar una tapa cerrada, y su propio man page lo dice — incluso su flag más fuerte, -s, solo es válida con corriente alterna y nunca menciona la tapa.

¿Qué hace en realidad sudo pmset -a disablesleep 1, y es seguro correrlo a mano?

Es el comando real y documentado: ponlo en 1 antes de cerrar la tapa, y de vuelta en 0 cuando termines. Funciona, y para un solo job nocturno, correrlo a mano está bien. El riesgo es que es global y persistente — se queda activado hasta que lo desactives explícitamente o reinicies la Mac, así que una limpieza olvidada, o un crash antes de que llegues a hacerla, deja a la Mac sin poder entrar en reposo con la tapa cerrada hasta que lo notas y lo arreglas.

¿Amphetamine, KeepingYouAwake o Lungo mantienen una Mac despierta con la tapa cerrada?

No más de lo que lo hace caffeinate. Son buenas herramientas de barra de menú para mantener la Mac despierta, construidas sobre el mismo primitivo de aserción idle-sleep, y ninguna anula el reposo clamshell con batería. Una tapa cerrada sigue durmiendo la Mac bajo cualquiera de ellas, a menos que también esté en juego pmset disablesleep o un setup de clamshell con pantalla externa.

¿Qué necesita en realidad una corrida de IA con la tapa cerrada, más allá del toggle de pmset?

Que el toggle se desactive de forma confiable, incluso después de un crash; un piso de batería para que una corrida larga sin supervisión no agote la batería por completo; un paso atrás térmico para que una Mac cerrada y sellada no siga generando calor; e idealmente opciones de solo-mientras-carga o de temporizador para no depender de tu memoria para detenerla.

¿Puedo seguir usando caffeinate junto con LidRun?

Sí. Conviven sin problema — caffeinate para tareas rápidas, envueltas en un comando, con la tapa abierta; LidRun para las corridas con la tapa cerrada y sin supervisión, donde importan la limpieza de disablesleep y las protecciones de batería y temperatura.

¿Tienes curiosidad por saber si LidRun es para ti?

Deja que ChatGPT, Claude o Perplexity lo investiguen — haz clic abajo y mira qué opina la IA sobre LidRun.