3 pontos por kck4156 12 일 전 | 6 comentários | Compartilhar no WhatsApp

Costumo programar bastante no notebook enquanto estou em deslocamento. Especialmente nos últimos tempos, passei a deixar tarefas mais demoradas com agentes de codificação por IA como o Codex.

O problema aparecia na hora de descer do ônibus ou do metrô.

Eu já tinha enviado o prompt, e o agente ainda estava processando, mas se eu fechasse a tampa do notebook ele poderia entrar em modo de suspensão e interromper o trabalho. Então eu frequentemente descia segurando o notebook com a tampa meio fechada e a tela ligada, esperava mais um pouco, ou simplesmente interrompia o trabalho para retomar depois.

Parece um incômodo pequeno, mas quando isso se repete acaba incomodando bastante.

Então eu fiz isto

O LidGuard é uma ferramenta de gerenciamento de energia que impede o notebook de dormir enquanto um agente local de codificação por IA está trabalhando e, quando o trabalho termina, restaura a política de energia original.

Eu o fiz pensando mais ou menos neste fluxo.

  • Entregar ao agente uma tarefa demorada.
  • Se for preciso se deslocar, fechar a tampa do notebook.
  • Enquanto o agente estiver trabalhando, bloquear temporariamente a suspensão e a suspensão ao fechar a tampa.
  • Quando o trabalho terminar, restaurar as configurações originais de energia.
  • Dependendo da configuração, entrar em suspensão ou hibernação.

Pessoalmente, a última parte é a que eu mais gosto. Se tudo terminasse apenas em “continuar executando mesmo com a tampa fechada”, no fim o usuário ainda teria de se preocupar com isso depois; com o LidGuard, a ideia é fazer o notebook descansar junto quando o trabalho do agente acabar.

Por que fiz algo separado

Também procurei programas existentes para evitar a suspensão.

Pelo que encontrei, a maioria se aproximava de um destes modelos.

  • Impedir a suspensão quando um processo específico está em execução
  • Manter um temporizador ligado
  • Exigir que o usuário ligue e desligue manualmente
  • Impedir apenas a suspensão quando a tampa do notebook está aberta

O que eu queria era um pouco diferente.

  • Alterar temporariamente até o comportamento de suspensão ao fechar a tampa
  • Saber o momento em que a sessão do agente de IA realmente termina
  • Restaurar a política de energia original ao terminar
  • Se necessário, colocar automaticamente em suspensão ou hibernação

Por isso, nos agentes compatíveis, fiz a ferramenta rastrear o início e o fim do trabalho com base em hooks. Em vez de ser uma “ferramenta para manter o computador ligado o tempo todo”, ela está mais para uma “ferramenta para mantê-lo acordado só enquanto o agente trabalha”.

Recursos incluídos

No começo, achei que bastaria funcionar bem com Codex no Windows. Como meu ambiente principal é Windows e o agente que mais uso é o Codex.

Mas, conforme fui desenvolvendo, percebi que esse problema provavelmente é bem geral, então fui adicionando recursos aos poucos.

  • Controle de energia no Windows, Linux baseado em systemd/logind e macOS
  • Integração com Codex, Claude Code e GitHub Copilot CLI
  • Suspensão ou hibernação automática após o fim do trabalho
  • Configuração para lidar com solicitações de permissão com a tampa fechada
  • Liberação da prevenção de suspensão em sessões sem atividade por um certo tempo
  • Hibernação de emergência com base em sensor de temperatura

Meu notebook é Windows on ARM, então com cargas como o trabalho de um agente ele não costuma esquentar muito dentro da mochila. Mesmo assim, acho que é preciso ter cuidado ao se deslocar com um notebook fechado e ainda ligado, então em ambientes compatíveis também incluí um recurso que tenta hibernação ou suspensão imediata quando a temperatura passa de certo nível.

Pontos de atenção

O LidGuard não significa que “agora pode jogar o notebook na mochila de qualquer jeito”.

Gerenciamento de energia, sensores de temperatura, permissões, firmware e políticas do sistema operacional podem se comportar de forma diferente em cada ambiente. Até a hibernação de emergência é mais um mecanismo auxiliar de segurança.

Também é possível usar uma configuração para lidar automaticamente com solicitações de permissão quando a tampa está fechada, mas como o trabalho pode continuar sem que você veja a tela, é melhor usar isso com cautela.

Escopo atual de testes

O ambiente que testei com mais frequência foi Windows + Codex.

Também implementei suporte para Linux, macOS, Claude Code e GitHub Copilot CLI, mas não cheguei a usar todas as combinações extensivamente no dia a dia. Se você testar em outro sistema operacional ou com outro agente e encontrar algo estranho, pode abrir uma issue — mesmo que escreva em coreano — e eu vou tentar corrigir da melhor forma possível.

No fim das contas, o LidGuard é uma ferramenta pequena que eu fiz porque queria usar agentes de IA com um pouco mais de conforto enquanto me desloco. Espero que também ajude quem já passou por situações parecidas no ônibus, no metrô, em um café ou indo para uma sala de reunião, pensando: “queria que o notebook não dormisse só até este trabalho terminar”.

6 comentários

 
autobe 10 일 전

Muito legal. No Windows, ele também consegue detectar o Codex ou o Claude Code instalados no WSL?

 
kck4156 8 일 전

No ambiente WSL, pensei bastante sobre qual seria a melhor abordagem, e concluí que a forma mais limpa seria chamar o LidGuard instalado no Windows a partir do hook do agente instalado no Linux.
Em relação a isso, publiquei o patch 1.0.1, e o método de instalação detalhado foi refletido no README(.ko).md, então você pode conferir por lá.

Ou então, no agent-install.md, onde a instalação é deixada a cargo do agente, também incluí um prompt relacionado à detecção do ambiente WSL, então por lá

 
kck4156 8 일 전

Pode usar também! Apertei o botão de enviar no meio sem querer, buá

 
kck4156 10 일 전

Ah, não, acho que não consideramos essa situação. Vou pensar em como dar suporte a isso!

 
kaydash 5 일 전

Talvez isso não seja um elogio do tipo: "é uma ideia perfeita que, logicamente, não dá para criticar, e eu estou com inveja e ciúmes"?

 
moderator 8 일 전

Por favor, confira a seção sobre comentários em Como usar o site.

Fale de forma gentil e educada.
Por favor, não ataque diretamente quem escreveu o post.
Se houver uma contestação, escreva apenas o conteúdo dela