Apareció un patrón en correos de soporte que no esperaba enviar.

"Inicié una inferencia larga con Ollama, cerré mi MacBook, y me fui. Cuando volví dos horas después el chat había generado solo 80 tokens y Timex no mostraba nada para el hueco."

El Mac se había dormido. El LLM local se había dormido con él. Timex también se había dormido. Tres cosas se detuvieron a la vez, y solo una debía hacerlo.

Si ejecutas cualquier cosa que necesita seguir trabajando con la tapa cerrada — Ollama, LM Studio, MLX, una transcripción larga de Whisper, un renderizado nocturno, un backup de Time Machine, una build de Docker, un túnel SSH — has chocado con esto. Aquí lo que realmente pasa, y la forma más limpia de arreglarlo sin comprar otra app de barra de menú.

Qué hace macOS cuando cierras la tapa

Por defecto, macOS trata la tapa cerrada como una señal de suspender. La pantalla se apaga. Los planificadores de CPU se aparcan. Las radios bajan a modo de bajo consumo. Tu portátil ahora usa menos de un vatio en vez de quince. Tu batería te lo agradece. Tu inferencia no.

La excepción es el "modo clamshell" oficial de Apple: si el Mac está conectado a alimentación externa, una pantalla externa, y un teclado o ratón externo, macOS mantiene todo despierto cuando la tapa cierra. Ese es el camino soportado.

El camino no soportado-pero-funciona es mantener un power assertion que previene el idle sleep. macOS lo expone como un CLI público:

caffeinate -dimsu

Las flags dicen: previene el sueño de pantalla (-d), idle sleep (-i), system sleep (-s), y mantente despierto incluso en batería (-u). Ejecuta eso en una terminal y tu Mac no dormirá hasta que pulses Ctrl-C, independientemente de la tapa. No hay GUI, no hay indicador en la barra de menú, no hay parada automática al terminar — eso es lo que lo hace frágil en la práctica.

Por qué importa específicamente para LLMs locales

Cuando el Mac se duerme, el contexto de GPU y Neural Engine que Ollama / LM Studio / MLX está usando se desaloja. El siguiente token no llega en 30 ms — llega cuando abres la tapa otra vez. Peor, en algunas configuraciones el contexto de Metal se invalida y el modelo tiene que recargarse desde disco, lo cual puede ser 10–30 segundos para un modelo clase 70B.

La parte frustrante es que esto no es un problema de "tu Mac es lento". El Mac está bien. Está operando bajo una política de energía diseñada para escribir email en un avión, no para inferencia desatendida.

La otra parte frustrante: la mayoría de apps de "stay awake" se escribieron antes de que los LLMs locales fueran comunes, y tratan la prevención de sueño como un toggle global. O mantienes el Mac despierto para siempre, o te acuerdas de apagarlo. No hay modo "manténte despierto hasta que esta tarea termine".

Las configuraciones que funcionan

1. Monitor externo + alimentación + periférico USB. Es el modo clamshell soportado por Apple. Funciona sin más. La pega es que necesitas el hardware y el espacio. Si vives en la carretera, esto no es respuesta.

2. Modo tapa-cerrada con caffeinate(1). El CLI funciona, pero tienes que recordar iniciarlo antes de cerrar la tapa y pararlo después. El Mac correrá felizmente toda la noche a plena potencia en batería si lo olvidas. Pregúntame cómo lo sé.

3. Modo tapa-cerrada con pmset noidle. Mismo resultado que caffeinate, invocación ligeramente distinta. Mismo modo de fallo por olvido.

4. Una app de barra de menú "wake-keeper". Amphetamine, Lungo, KeepingYouAwake — todas envuelven el mismo mecanismo del kernel. Las buenas añaden una duración máxima y un trigger "hasta que esta app salga". Las malas se convierten en adware. Elige con cuidado.

5. Modo Stay Awake en Timex. Este es el que envié para resolver mi propio problema. Cámbialo desde la barra de menú, el Mac queda despierto hasta que lo apagas. Hay una pastilla ámbar clara en la barra de menú para que no se te olvide, y una duración máxima configurable (60 / 120 / 240 minutos) así que si se te olvida, el Mac duerme antes de la mañana.

Soy parcial. Elige lo que encaje. El punto es: no ejecutes una tarea LLM larga con el comportamiento por defecto y esperanza.

Un walkthrough que termina con la tarea acabando

Digamos que quieres fine-tunear un modelo pequeño durante la noche, o ejecutar un batch largo de evaluaciones, en alimentación AC, con la tapa cerrada.

# 1. Enchufa a AC. Con batería + tapa cerrada, macOS fuerza el sueño
#    independientemente de cualquier app — es limitación del kernel.

# 2. Inicia la inferencia en tmux para que sobreviva a desconexiones de terminal.
tmux new -s eval
ollama run llama3:70b < eval-prompts.txt > eval-output.txt
# Desadjunta con Ctrl-b d

# 3. Activa Timex Stay Awake (Settings → Stay awake, o
#    el popover de la barra de menú). El toggle persiste entre lanzamientos.

# 4. Cierra la tapa. Vete. Vuelve por la mañana.

El Mac queda despierto. Las radios siguen encendidas si las necesitas. El contexto del Neural Engine sigue cargado. Timex registra la sesión entera — cuando reabras la tapa, puedes ver exactamente cuándo se generó cada salida.

¿Y el temporizador de descansos?

Esta es la pregunta que siempre viene después: "Si el modo Stay Awake mantiene el Mac despierto, y el temporizador de descansos suena cada 25 minutos, ¿voy a volver a una pila de notificaciones de 200 banners?"

No. macOS coalesce los banners cuando la pantalla lleva un rato apagada. Verás el más reciente cuando abras la tapa, no todos. Y el temporizador de descansos respeta la misma puerta de inactividad que el rastreo — cuando no hay input por 120 segundos, el reloj de descanso también se pausa. Ejecuta una eval de 6 horas sin input, no obtienes 14 notificaciones. Obtienes una cuando vuelves, enmarcando el último bloque activo de trabajo.

La salvedad de "pero mi batería"

El modo Stay Awake no es gratis. La CPU queda despierta, las radios siguen encendidas, el SSD sigue girando. Un modelo 70B haciendo inferencia a plena utilización de Metal va a consumir 30–50 W en batería. Tendrás 90 minutos, quizá dos horas, antes de que el portátil muera.

Para cualquier cosa mayor de una hora, enchufa. La "Optimización de carga de batería" de Apple mantendrá la batería sana incluso al 100 % toda la noche, así que el coste de enchufar para una tirada larga es esencialmente cero.

La otra salvedad: el calor. Una tapa cerrada atrapa el calor contra el teclado. Los Macs Apple Silicon modernos son notables térmicamente, pero siguen diseñados para soltar calor por la superficie del teclado. Si ejecutas una tarea pesada en clamshell horas sobre una superficie blanda (sofá, cama, regazo), el chasis llegará al thermal throttling y tus tokens-por-segundo se reducirán a la mitad. Ponlo en una mesa. Inclínalo de lado si hace falta.

Lo que esto no es

No es un workaround para necesitar verdadero cómputo headless. Si ejecutas inferencia 24/7 para tráfico de producción, la respuesta es un Mac mini en una estantería con pmset -a sleep 0 y tu portátil fuera de escena. El modo Stay Awake en un MacBook es para el caso donde quieres seguir trabajando mañana con la misma máquina, pero también quieres que muela el trabajo de esta noche sin que estés sentado mirando.

Tampoco es un "truco para hacer que la política de sueño de Apple desaparezca". La política de sueño es correcta para portátiles en 2026. La duración de batería es la función estrella. Estamos optando expresamente por salir para una clase específica de tarea de larga duración. Usa el toggle cuando lo necesites. Apágalo cuando no.

TL;DR

  • El sueño con tapa cerrada es el defecto y es correcto para escribir en un avión.
  • Es incorrecto para tareas LLM largas, renders nocturnos, o cualquier cosa que debe seguir corriendo cuando no estás al teclado.
  • La respuesta soportada de Apple es pantalla externa + alimentación + input.
  • La respuesta CLI es caffeinate -dimsu, con la pega de tener que pararlo.
  • La respuesta de Timex es un toggle en la barra de menú para Stay Awake con duración máxima dura para que no corra para siempre.
  • Enchufa para cualquier cosa de más de una hora. Vigila el calor. Bienvenido al mundo de MacBooks que terminan lo que empiezan.

Si ejecutas modelos locales en un MacBook, dale una oportunidad al toggle tapa-abajo. Es parte del tier gratuito — sin límite de prueba, sin licencia requerida. El cap de 100 h solo aplica al lado de rastreo de tiempo. Compra Timex por $49 cuando quieras también el rastreo ilimitado.