Cómo hice LidGuard, un programa que creé porque quería dejar a un agente de IA trabajando y bajarme del bus o del metro cerrando la laptop
(github.com/airtaxi)Suelo programar mucho en la laptop mientras me traslado. Sobre todo últimamente, cada vez más le dejo tareas que toman algo de tiempo a agentes de codificación con IA como Codex.
El problema era al momento de bajarme del bus o del metro.
El prompt ya estaba enviado y el agente seguía procesando, pero si cerraba la tapa de la laptop podía entrar en suspensión y el trabajo interrumpirse. Así que muchas veces me bajaba cargando la laptop medio cerrada con la pantalla encendida, esperaba un poco más o simplemente interrumpía la tarea para retomarla después.
Puede parecer una incomodidad menor, pero al repetirse resultaba bastante molesta.
Así que hice esto
LidGuard es una herramienta de administración de energía que evita que la laptop entre en suspensión mientras un agente local de codificación con IA está trabajando y, cuando termina, devuelve todo a la política de energía original.
La idea era lograr más o menos este flujo:
- Encargarle al agente una tarea que tome tiempo.
- Si tengo que moverme, cerrar la tapa de la laptop.
- Mientras el agente trabaja, bloquear temporalmente la suspensión y la suspensión al cerrar la tapa.
- Cuando termina el trabajo, restaurar la configuración de energía original.
- Según la configuración, entrar en suspensión o hibernación.
Personalmente, lo que más me gusta es esa última parte. Si solo se quedara en “seguir ejecutándose aunque cierre la tapa”, al final el usuario igual tendría que volver a ocuparse después; LidGuard apunta a que, cuando termine el trabajo del agente, la laptop también pueda descansar.
Por qué lo hice aparte
También busqué programas existentes para evitar la suspensión.
Por lo que encontré, la mayoría se acercaba a una de estas opciones:
- Bloquear la suspensión mientras cierto proceso esté en ejecución
- Mantener un temporizador activo
- Que el usuario lo encienda y apague manualmente
- Bloquear solo la suspensión mientras la tapa de la laptop está abierta
Lo que yo quería era un poco distinto:
- Cambiar temporalmente incluso el comportamiento de suspensión al cerrar la tapa
- Saber cuándo termina de verdad una sesión del agente de IA
- Restaurar la política de energía original al finalizar
- Si hace falta, enviar automáticamente el equipo a suspensión o hibernación
Por eso, en los agentes compatibles lo hice para seguir el inicio y el fin del trabajo usando hooks. Más que una herramienta para “mantener la computadora siempre encendida”, se parece a una para “mantenerla despierta solo mientras el agente está trabajando”.
Funciones que le añadí
Al principio pensé que con que funcionara bien Codex en Windows era suficiente. Mi entorno principal es Windows y casi siempre uso Codex como agente.
Pero mientras lo iba haciendo, me dio la impresión de que este problema podía ser bastante general, así que le fui agregando funciones poco a poco.
- Control de energía en Windows, Linux basado en systemd/logind y macOS
- Integración con Codex, Claude Code y GitHub Copilot CLI
- Suspensión o hibernación automáticas al terminar el trabajo
- Configuración para manejar solicitudes de permisos con la tapa cerrada
- Liberar el bloqueo de suspensión en sesiones sin actividad durante cierto tiempo
- Hibernación de emergencia según sensores de temperatura
Mi laptop es Windows on ARM, así que con cargas como las de un agente no suele calentarse demasiado dentro de la mochila. Aun así, creo que hay que tener cuidado al trasladarse con una laptop cerrada pero encendida, así que en los entornos compatibles también añadí una función que intenta hibernar o suspender de inmediato si la temperatura supera cierto nivel.
Puntos a tener en cuenta
LidGuard no significa que “puedes meter la laptop en la mochila de cualquier forma y ya está”.
La administración de energía, los sensores de temperatura, los permisos, el firmware y las políticas del sistema operativo pueden comportarse distinto según el entorno. Incluso la hibernación de emergencia no deja de ser una medida de seguridad complementaria.
También se puede usar una configuración que procese automáticamente las solicitudes de permisos con la tapa cerrada, pero como el trabajo puede seguir avanzando mientras no estás viendo la pantalla, conviene usarla con cuidado.
Alcance actual de las pruebas
El entorno que más probé fue Windows + Codex.
También implementé soporte para Linux, macOS, Claude Code y GitHub Copilot CLI, pero no he podido usar en la práctica todas las combinaciones durante el tiempo suficiente. Si lo prueban en otro sistema operativo o con otro agente y encuentran algo raro, pueden dejar un issue —incluso si lo escriben en coreano está bien— e intentaré corregirlo en la medida de lo posible.
Al final, LidGuard es una herramienta pequeña que hice porque quería usar agentes de IA de forma un poco más cómoda mientras me traslado. Ojalá también le sirva a quienes hayan pasado por esa misma situación de pensar “solo quisiera que la laptop no se durmiera hasta que termine esta tarea” mientras se mueven entre el bus, el metro, una cafetería o una sala de reuniones.
6 comentarios
Qué genial. ¿También puede detectar en Windows Codex o Cline instalados en WSL?
Estuve pensando cuál sería el mejor enfoque en un entorno WSL, y concluí que la forma más limpia sería llamar a LidGuard instalado del lado de Windows desde el hook del agente instalado en Linux.
En relación con eso, publiqué el parche 1.0.1 y reflejé el método de instalación detallado en
README(.ko).md, así que pueden revisarlo allí.O bien, también agregué en
agent-install.mdun prompt relacionado con la detección del entorno WSL para dejar la instalación en manos del agente, así que por ahí¡También pueden aprovecharlo! Presioné por error el botón de enviar a mitad del mensaje T_T
Ah, no, creo que no había considerado esa situación. ¡Voy a pensar cómo podría darle soporte!
Quizá esto no sea un elogio enorme del tipo: "lógicamente es una idea perfecta a la que no se le puede encontrar ninguna falla, y me da envidia".
Por favor, revisen la sección sobre cómo comentar en las instrucciones de uso del sitio.
Hablen con amabilidad y cortesía.
Por favor, no ataquen directamente a quien escribió la publicación.
Si tienen una objeción, escriban solo su contenido.