Mantén tu Mac despierto desde la línea de comandos con el CLI keepresso
Keepresso incluye una pequeña herramienta de línea de comandos para que puedas controlarla desde la terminal, un script de shell, un Makefile o una tarea de CI, sin tener que ir a la barra de menús. El comando es keepresso, y funciona de dos formas: puede hablar con la app de la barra de menús, o puede mantener el Mac despierto por sí solo, como el caffeinate integrado.
Instala el comando
Si instalaste Keepresso con Homebrew, el comando keepresso ya está en tu PATH, no hay nada que hacer:
brew install --cask gyorgysh/keepresso/keepresso
Si instalaste la app desde el DMG, la herramienta está dentro del paquete de la app y tu PATH todavía no sabe de ella. Enlázala una vez:
sudo ln -s /Applications/Keepresso.app/Contents/Helpers/keepresso /usr/local/bin/keepresso
Comprueba que quedó bien conectada:
keepresso version
Controla la app
Estos comandos se entregan a la app Keepresso, lanzándola si aún no se está ejecutando. Son el gemelo controlable por script del menú.
keepresso start # start an open-ended session
keepresso start --for 90 # start a 90 minute session
keepresso start --until 18:00 # run until a wall-clock time
keepresso stop # end the current session
keepresso toggle # flip it on or off
Así, una tarea larga puede despertar el Mac cuando empieza y dejarlo entrar en reposo cuando termina:
keepresso start
make release
keepresso stop
Consulta el estado
keepresso status te dice si hay una sesión en marcha, y su código de salida hace fácil ramificar en un script:
0el Mac se está manteniendo despierto1no lo está2la app no se está ejecutando
keepresso status && echo "awake" || echo "asleep"
Añade --json para obtener una respuesta legible por máquina:
keepresso status --json
El mismo estado de la sesión también se refleja en un archivo, así que una herramienta de la barra de menús, una línea de estado o un widget pueden leerlo sin lanzar nada:
~/Library/Application Support/Keepresso/status.json
Contiene el estado actual y marcas de tiempo ISO 8601.
Sesiones independientes, sin necesidad de la app
A veces no quieres involucrar la app para nada, solo quieres que este shell mantenga el Mac despierto, igual que caffeinate. En este modo, el propio proceso keepresso sostiene la aserción de energía, y el Mac queda libre para volver a entrar en reposo en el momento en que termina.
keepresso -i # hold until you press Ctrl-C
keepresso -t 3600 # hold for a number of seconds
keepresso -w 5123 # hold until process 5123 exits
keepresso -d # also keep the display awake (combine with the above)
keepresso -u # declare user activity: wake the display now
El patrón más útil es atar la vigilia a la vida de un comando o un shell:
keepresso -w $$ & # stay awake as long as this shell lives
ffmpeg -i in.mov out.mp4 && keepresso stop
Como estas sesiones son aserciones de energía reales de macOS, aparecen en pmset -g assertions y en el propio panel de Actividad de Keepresso, junto a cualquier otra app que mantenga el Mac despierto.
Relacionado
- Controla Keepresso desde Shortcuts, Raycast o un script cubre las acciones de Shortcuts y el URL scheme
keepresso://para automatización sin terminal. - Una alternativa a caffeinate para macOS explica cómo se relaciona Keepresso con el comando
caffeinateintegrado.
Consigue Keepresso
Gratis y de código abierto, para macOS 14 y versiones posteriores. Instálalo y mantén tu Mac despierto, a tu manera.
Más en Usar Keepresso