caffeinate no Mac: exemplos de comando, limites e opções de workflow mais seguras para IA

Henry AGI
6 min de leituraJun 2026
caffeinate no Mac: exemplos de comando, limites e opções de workflow mais seguras para IA

caffeinate é a ferramenta de linha de comando que já vem em todo Mac para mantê-lo acordado sem precisar abrir as Configurações do Sistema — rode sozinho e ele bloqueia o sono por inatividade até você apertar Ctrl-C; adicione -t 3600 e ele se desliga sozinho depois de uma hora; ou envolva um comando com ele e o Mac fica acordado só enquanto aquele comando roda. O que ele não faz é mexer no sleep de tampa fechada, no nível de bateria ou no calor: feche a tampa e um MacBook dorme, não importa há quanto tempo o caffeinate esteja rodando. Abaixo estão os comandos reais, as formas gratuitas de contornar o limite de tampa fechada (incluindo uma que quase ninguém conhece) e onde uma ferramenta atenta à segurança como o LidRun entra em cena depois que o caffeinate para.

O que o comando caffeinate realmente faz

caffeinate é um pequeno utilitário de linha de comando que já vem com o macOS há anos. Ele cria uma power assertion — um pedido ao sistema para não dormir — enquanto estiver rodando, e libera essa assertion automaticamente no instante em que termina. Não existe um passo separado de "desligar de volta", e isso importa mais adiante neste artigo, quando chegarmos a um workaround que não se libera sozinho.

Rode sem flags e ele bloqueia o sono por inatividade por padrão. Adicione flags específicas para assertions específicas: -d também impede que a tela durma, -m impede que os discos parem de girar, -s evita o sleep do sistema (mas só enquanto estiver na tomada), e -u declara o usuário como ativo, o que acorda a tela e equivale, na prática, a -d -t 5. Elas se acumulam — são assertions separadas e combináveis, não um interruptor único. Rode caffeinate -d -i e você está segurando duas travas independentes, e as duas precisam terminar antes que o Mac volte a dormir.

A parte útil para quem programa é que o caffeinate não tem interface gráfica, nem ícone na barra de menus, nem arquivo de configuração. Ele foi feito para ser usado em scripts — iniciado, executado e liberado sem precisar tocar em nenhum painel de configurações. Para uma sessão de terminal ou um script com começo e fim bem definidos, essa é realmente a ferramenta certa.

Exemplos de comandos caffeinate — e como conferir se está funcionando de verdade

A forma mais simples é só caffeinate, rodado numa janela de terminal que você deixa aberta — ele bloqueia o sono por inatividade até você apertar Ctrl-C ou fechar a janela.

LidRun
Terminal showing caffeinate command examples and confirming an active assertion with pmset -g assertions
Uma execução com tempo definido, um build command encapsulado, e a confirmação de que o caffeinate realmente está mantendo o Mac acordado.

Para uma duração fixa, caffeinate -t 3600 mantém o Mac acordado por exatamente uma hora, depois encerra e libera a assertion sozinho — sem precisar lembrar de parar manualmente.

Para uma tarefa específica, envolva o comando diretamente: caffeinate -i npm run build mantém o Mac acordado só enquanto o build roda, e libera assim que termina ou falha. O mesmo padrão funciona com caffeinate -i ./deploy.sh, um rsync longo, ou qualquer outro comando com começo e fim bem definidos. Se você não iniciou o processo manualmente — por exemplo, um build disparado pela IDE — caffeinate -w <pid> espera por um ID de processo já existente.

Jobs de cron rodam sem terminal interativo, então envolver o job com caffeinate é um padrão comum para qualquer coisa agendada de madrugada: 0 2 * * * /usr/bin/caffeinate -i /path/to/nightly-backup.sh mantém o Mac acordado só pela duração do backup, nem um minuto a mais.

Para confirmar que o caffeinate está realmente segurando o Mac acordado, rode pmset -g assertions — ele lista todas as power assertions ativas e o processo dono de cada uma; procure por PreventUserIdleSystemSleep ao lado do PID do caffeinate. Uma checagem mais simples, se você só precisa saber se o processo está vivo, é ps aux | grep caffeinate.

Cada chamada do caffeinate segura sua própria assertion, independente das outras, então rodar duas ou três ao mesmo tempo é tranquilo — o Mac fica acordado enquanto qualquer uma delas ainda estiver viva, e matar uma não libera as outras.

Guia relacionadoLidRun vs caffeinate: qual ferramenta de manter o Mac acordado combina com o seu fluxo de trabalho?

Onde o caffeinate para: tampa fechada, bateria e calor

No trabalho para o qual foi feito — bloquear o sono por inatividade durante um script, um build, ou uma sessão de terminal que você está acompanhando — o caffeinate faz exatamente o que promete, sem dependências e sem precisar instalar nada.

Os limites aparecem no trabalho com a tampa fechada, e é exatamente aí que agentes de IA para código e cargas de trabalho de dev tropeçam: um refactor longo no Claude Code, uma imagem Docker sendo construída, um modelo baixando no Ollama — coisas que as pessoas querem deixar rodando com a tampa fechada, numa mesa, dentro de uma mochila entre reuniões, ou durante a noite. As assertions do caffeinate não sobrepõem o sleep que o macOS dispara ao fechar a tampa; um MacBook continua dormindo com a tampa fechada mesmo com o caffeinate rodando, ponto final.

Ele também não tem noção de nível de bateria ou de calor. Rode caffeinate -t 28800 para uma sessão de oito horas na bateria e ele segura a assertion o tempo todo, não importa o quanto a bateria caia, sem nenhuma forma de perceber um Mac esquentando dentro de uma mochila e recuar.

Também é manual e sem estado — não detecta o que está realmente rodando, não guarda memória entre sessões. Você redigita as flags e o comando-alvo toda vez.

As formas gratuitas de manter um MacBook acordado com a tampa fechada

O caminho oficial da Apple não precisa de nenhum software extra: conecte um monitor externo, um teclado ou mouse externo, e o carregador, e um MacBook não dorme ao fechar a tampa. Isso é o verdadeiro modo clamshell, e o macOS cuida dele nativamente assim que os três estão conectados — sem precisar de linha de comando.

Sem um monitor externo — na bateria, tampa fechada, nenhum monitor — a única alavanca pública que bloqueia o sleep de tampa fechada é um comando totalmente diferente do caffeinate: sudo pmset -a disablesleep 1. Funciona, mas é uma ferramenta mais pesada que o caffeinate. Precisa de senha de admin e, ao contrário da assertion do caffeinate, não se libera sozinha quando um processo termina — é uma configuração persistente e para o sistema inteiro, que fica ativa até você rodar explicitamente sudo pmset -a disablesleep 0 ou reiniciar o Mac.

Além da linha de comando, vários apps de barra de menus embrulham a mesma ideia básica numa interface gráfica. O Amphetamine (grátis, Mac App Store) adiciona gatilhos mais ricos — abertura de app, horário do dia, rede Wi-Fi, nível de bateria — em cima do mesmo tipo de assertion. O KeepingYouAwake é uma interface gratuita e open-source de barra de menus para essencialmente a mesma trava no estilo caffeinate. O Lungo é um toggle minimalista de um toque na barra de menus, com temporizador embutido. O Caffeine é o clássico ícone de xícara de café que dá nome à categoria inteira, com versões grátis e pagas ao longo dos anos. Todos eles são sólidos no único trabalho para o qual foram feitos — um toggle manual de liga/desliga para manter acordado — e nenhum deles foi projetado para responder "ainda tem trabalho real rodando", "quanto de bateria sobrou" ou "esse Mac está quente demais", porque não é para isso que um toggle de manter acordado serve.

O risco do workaround manual

A flag disablesleep é a parte que merece cuidado. Como é global e persistente, se o script ou a sessão que a colocou em 1 travar — ou você simplesmente esquecer o comando de reset — o Mac não volta a dormir normalmente, com a tampa aberta ou fechada, até alguém rodar o comando com 0 ou reiniciar. Deixada ligada durante a noite por acidente, isso é drenagem de bateria real e evitável, e um Mac que nunca ganha o descanso que um notebook deveria ter.

Rodar processamento pesado com a tampa fechada também tira parte do caminho normal de resfriamento do Mac — o fluxo de ar ao redor do teclado e da dobradiça depende, em parte, da tampa estar aberta. Seja qual for a forma que você usa para manter um Mac acordado com a tampa fechada, mantenha-o ventilado — um suporte, uma mochila aberta, nunca empilhado embaixo de outros equipamentos — em vez de confiar só no software para controlar o calor.

Nenhuma das opções gratuitas acima — caffeinate, a flag disablesleep, ou os toggles de barra de menus — está ligada a saber se aquilo que realmente importa (o build, o agente, o render) ainda está rodando. Elas mantêm o Mac acordado num timer ou num toggle manual, o que significa que ou você fica de olho o tempo todo, ou corre o risco de ele continuar acordado, quente e drenando bateria muito depois de o trabalho já ter terminado.

Um padrão mais seguro para cargas de trabalho de IA e dev

A solução não é um truque diferente de prevenção de sleep — é combinar o mesmo mecanismo com guardrails ligados ao que está de fato acontecendo no Mac, não a um timer. O modo de tampa fechada do LidRun usa por baixo dos panos essa mesma alavanca pmset -a disablesleep, não uma API privada — mas ele sempre casa o 1 com um 0 correspondente: ao parar, ao fechar o app, e reconciliado de novo na próxima abertura se encontrar um 1 esquecido de uma queda. É essa a diferença entre uma alavanca que qualquer um pode puxar e uma que não fica presa ligada por acidente.

Além disso, ele detecta trabalho real em vez de rodar num timer cego: Claude Code, Cursor, Codex, Aider, Cline, Ollama, LM Studio, e mais uma dúzia de outros agentes de código e runners de modelos locais, além de processos gerais de desenvolvimento. Ele conta a simples presença de um agente como "trabalhando", porque um agente de código esperando uma resposta de API pode ficar com CPU quase zero no meio de uma tarefa — uma checagem simples de uso de CPU leria essa pausa, erradamente, como "terminado".

Ele também condiciona cada sessão às duas coisas que o caffeinate ignora completamente. Uma auto-parada de bateria configurável, 20% por padrão, encerra a sessão antes que a bateria fique perigosamente baixa, e um piso de emergência não negociável — 4% por padrão, ajustável até 8% — força o Mac a dormir para protegê-lo, não importa o que mais esteja configurado. Uma proteção térmica lê a temperatura real do chip e o sinal de thermal-throttle da CPU, não só a flag térmica genérica do sistema que a maioria das ferramentas usaria se ao menos monitorasse calor, e desativa o modo de tampa fechada automaticamente se o Mac estiver realmente superaquecendo. Não é uma trava de sono cega — a segurança vence a conveniência quando as duas entram em conflito.

A versão honesta do padrão é curta: agente rodando → mantém acordado; agente terminou, ou o Mac não está seguro para continuar → libera e deixa dormir. Os modos Keep Awake, Timer e Somente Carregamento rodam grátis para sempre, sem período de teste e sem limite de sessões. O suporte a tampa fechada faz parte do plano pago Pro, com algumas execuções gratuitas de tampa fechada para testar antes de decidir.

Experimente em vez de brigar com a suspensão de tampa fechada

O LidRun mantém seu trabalho rodando com a tampa fechada, com proteção de bateria e temperatura embutida.

Baixar para macOS

Já tem o LidRun? Leia o guia de configuração →

Novo no LidRun? Veja os preços →

Perguntas frequentes

O caffeinate mantém o Mac acordado com a tampa fechada?

Não — as assertions do caffeinate não sobrepõem o sleep que o macOS dispara ao fechar a tampa. Um MacBook continua dormindo com a tampa fechada mesmo com o caffeinate rodando, a menos que esteja em modo clamshell de verdade (monitor externo, teclado e carregador todos conectados) ou tenha o disablesleep ativado via pmset.

Como faço para rodar o caffeinate por um período de tempo definido?

Use a flag -t com um número de segundos, por exemplo caffeinate -t 3600 para uma hora. O caffeinate encerra e libera a assertion automaticamente quando o tempo acaba — sem precisar de Ctrl-C.

O caffeinate consegue manter o Mac acordado só para um comando?

Sim — envolva o comando diretamente, como em caffeinate -i npm run build. O Mac fica acordado só enquanto aquele comando roda, e a assertion se libera no instante em que ele termina. caffeinate -w <pid> faz a mesma coisa para um processo que você não iniciou manualmente.

Como eu verifico se o caffeinate está rodando no momento?

Rode pmset -g assertions para ver todas as power assertions ativas e qual processo é dono de cada uma — procure por PreventUserIdleSystemSleep ao lado do PID do caffeinate. ps aux | grep caffeinate também funciona, se você só precisa confirmar que o processo está vivo.

Qual a diferença entre o caffeinate e o pmset disablesleep?

O caffeinate bloqueia só o sono por inatividade, e só enquanto o processo dele está rodando — ele não sobrepõe o sleep de tampa fechada e se libera sozinho quando termina. sudo pmset -a disablesleep 1 é uma alavanca diferente e mais pesada, que também bloqueia o sleep de clamshell (tampa fechada), mas é global e persistente: fica ativa para o sistema inteiro até você voltar explicitamente para 0 ou reiniciar, então é fácil deixar ligada sem querer.

Existe uma alternativa mais segura ao caffeinate para cargas de trabalho de IA e dev?

Para sessões de terminal curtas e acompanhadas, o caffeinate realmente já é suficiente. Para execuções de IA/dev com a tampa fechada ou sem supervisão, o LidRun soma detecção automática de agentes e suporte a tampa fechada à mesma ideia básica, com auto-parada de bateria e temperatura para o Mac não ficar acordado, quente e drenando depois que o trabalho já terminou.

Ficou curioso se o LidRun é pra você?

Deixe o ChatGPT, o Claude ou o Perplexity investigar — clique abaixo e veja o que a IA realmente acha do LidRun.