24/7
Rodando agentes de código 24/7 no seu próprio servidor
Um agente de código sempre ligado precisa de três coisas: uma máquina que não dorme, um processo que sobrevive à sua conexão e um jeito de perceber quando ele precisa de você. Veja as formas de conseguir cada uma, do tmux ao systemd e a um daemon de sessões, além dos limites que a sua assinatura impõe.
Resposta rápida
Coloque o agente numa máquina que nunca dorme (uma VPS ou uma máquina sempre ligada em casa). Rode-o sob algo que sobreviva à sua sessão SSH: tmux para uso interativo, um serviço de usuário do systemd (com lingering ativado) para trazer o tmux de volta no boot, ou um daemon que seja dono das sessões. Dê a cada sessão paralela a própria git worktree. Os limites de uso do seu plano, e não o hardware, são o que normalmente para um agente 24/7: os planos do Claude são renovados a cada cinco horas e também têm limites semanais.
Um agente de código no seu notebook para quando a tampa fecha. Levá-lo para uma máquina que fica ligada é a parte fácil. As partes que as pessoas pulam são a supervisão (o que mantém o processo vivo e o que o traz de volta depois de um reboot), o isolamento entre sessões paralelas e os limites de uso, que vão parar o agente muito antes do hardware. Este guia cobre cada uma delas, para o Claude Code, o Codex e os outros agentes de terminal.
Nuvem ou máquina própria
Primeiro decida se você precisa de uma máquina. Os fornecedores agora rodam agentes para você:
| Nuvem do fornecedor (ex.: sessões na nuvem do Claude Code, tarefas na nuvem do Codex) | Seu próprio servidor ou máquina em casa | |
|---|---|---|
| Configuração | Conectar o GitHub (o Claude também pode enviar um bundle de um repositório local) | Uma VPS ou máquina sempre ligada, mais instalação e autenticação |
| Ambiente | Uma VM isolada por sessão, preparada por um script; recuperada após um tempo de inatividade | O seu toolchain, os seus bancos de dados, os seus segredos, de forma persistente |
| Rede e serviços privados | Limitada por padrão (lista de domínios permitidos); a sua rede privada fica fora de alcance | Tudo que a máquina alcança: VPN, tailnet, bancos de staging |
| Agentes | Os de um único fornecedor | Qualquer CLI: Claude Code, Codex, OpenCode, Grok Build, agy |
| Custo | O uso do seu plano (Anthropic: sem cobrança separada de computação) | O uso do seu plano mais alguns euros por mês pela máquina |
Se o seu projeto está no GitHub e faz build a partir de um script de configuração, a nuvem do fornecedor dá menos trabalho. A documentação das sessões na nuvem da Anthropic é o ponto de partida; claude --cloud "…" inicia uma pelo terminal. Escolha uma máquina própria quando o agente precisa de coisas que só a sua máquina tem, ou quando você quer agentes de vários fornecedores lado a lado. O guia de compra de VPS cobre dimensionamento e preços atuais. Um Mac mini em casa também serve, desde que você desative a suspensão.
Supervisão de processos
Agentes interativos são programas de terminal. Eles morrem com o terminal, a menos que outra coisa o segure. Você tem quatro opções, da mais simples à mais robusta.
1. tmux
tmux new -A -s main
cd ~/src/api && claude # detach: Ctrl-b d · re-attach: tmux attach -t main
O tmux sobrevive a desconexões, não a reboots. É a ferramenta certa para trabalho interativo, e é o que a documentação da Anthropic sugere para manter viva uma sessão do Remote Control numa máquina remota. Nosso guia de tmux, mosh e Tailscale tem a configuração de que os agentes precisam.
2. systemd + tmux, para voltar depois de um reboot
Não dá para rodar uma TUI interativa diretamente como serviço, porque ela precisa de um terminal. Mas dá para o systemd iniciar uma sessão destacada do tmux no boot. Com o seu usuário normal, crie ~/.config/systemd/user/agents.service:
[Unit]
Description=tmux session for coding agents
[Service]
Type=forking
ExecStart=/usr/bin/tmux new-session -d -s main
ExecStop=/usr/bin/tmux kill-session -t main
[Install]
WantedBy=default.target
systemctl --user daemon-reload
systemctl --user enable --now agents.service
sudo loginctl enable-linger "$USER" # start user services at boot, without a login
Isso traz de volta uma sessão vazia, não as suas conversas. Retomá-las é um passo à parte (veja O que acontece num reboot abaixo).
3. Execuções headless agendadas
Para tarefas recorrentes, como atualizar dependências toda noite, fazer a triagem de novas issues ou regenerar a documentação, pule a TUI. Rode claude -p "…" ou codex exec "…" pelo cron ou por um timer do systemd. Não há ninguém ali para aprovar nada, então defina o modo de permissão e a lista de permissões de propósito. Rodar agentes com permissões totais, com segurança explica como.
4. Um daemon de sessões
A opção mais robusta é um processo que é dono das sessões dos agentes: ele as inicia, guarda as transcrições e deixa você se conectar de qualquer lugar. O modo servidor do Remote Control do Claude Code (claude remote-control) é um deles. Ele atende até 32 sessões simultâneas por padrão, configurável com --capacity, mas você ainda precisa rodá-lo dentro do tmux ou de um serviço. O agy remote-control start registra o daemon do Antigravity como serviço do sistema. Ferramentas de terceiros, entre elas o Maude, implantam o próprio daemon, que cuida de vários agentes.
Sessões paralelas e worktrees
Dois agentes editando o mesmo checkout vão sobrescrever as mudanças um do outro. Dê a cada sessão a própria git worktree, um diretório de trabalho e uma branch separados que compartilham o histórico do repositório:
git worktree add ../api-auth -b feature/auth
git worktree add ../api-billing -b fix/billing
# one tmux window per worktree, one agent per window
O Claude Code pode fazer isso por você: claude --worktree feature-auth (ou -w) cria uma worktree em .claude/worktrees/ numa branch nova e inicia a sessão dentro dela. Veja a documentação de worktrees.
Quantas sessões uma máquina aguenta depende do que elas rodam, não dos agentes em si. Uma regra prática útil é 4 GB para a primeira sessão mais 1–2 GB para cada sessão adicional que faz build ou roda testes, e mais se cada worktree roda o próprio servidor de desenvolvimento ou banco de dados. Acompanhe o free -h numa hora de pico antes de adicionar outra. O disco também pesa, porque cada worktree tem o próprio node_modules.
Cotas e limites de taxa
Uma máquina 24/7 só é útil se o seu plano deixar o agente continuar trabalhando, então leia os limites antes de planejar em cima deles:
- Claude (Pro, Max). Os limites de uso são renovados a cada cinco horas, e também há um limite semanal, segundo o artigo sobre limites de uso da Anthropic. Várias sessões paralelas consomem da mesma cota. Você pode ver como está em Configurações → Uso.
- Codex (planos do ChatGPT). O Plus e planos parecidos usam janelas móveis de cinco horas, e limites semanais também podem se aplicar. O uso local da CLI e as tarefas na nuvem dividem a mesma cota. Veja a página de preços do Codex da OpenAI para o seu plano.
- Chaves de API. Sem janela de plano, mas você paga por token, então um loop descontrolado custa dinheiro em vez de parar. Defina limites de gasto no console do provedor.
Na prática, "24/7" significa que o agente pode trabalhar sempre que houver trabalho e cota, não que ele roda a todo vapor o dia inteiro. Deixe as tarefas longas na fila para quando você estiver fora, e conte com ele parando até a próxima renovação.
O que acontece num reboot
Atualizações de kernel, manutenção do provedor e processos encerrados por falta de memória reiniciam as coisas. As conversas dos agentes ficam salvas em disco, então nada se perde, mas nada reinicia sozinho:
- Claude Code:
claude --continueretoma a conversa mais recente do diretório atual, eclaude --resumedeixa você escolher uma. - Codex:
codex resume --last, oucodex resumepara um seletor. - tmux: o servidor se foi, e com ele o layout das janelas. A unit do systemd acima recria a sessão. Plugins como o tmux-resurrect também podem restaurar layouts.
Qualquer coisa que estava em andamento quando a máquina caiu, como uma edição pela metade ou um teste rodando, precisa ser conferida à mão. É mais um motivo para o agente fazer commits com frequência.
Acompanhando pelo celular
Um agente sempre ligado vai precisar de você em horas estranhas: um pedido de permissão, uma pergunta, uma tarefa concluída para revisar. Suas opções são um app de SSH conectado ao tmux, que é gratuito mas não tem notificações; os apps de Remote Control dos fornecedores, que funcionam agente por agente; hooks do ntfy para push, tratados em aprovar pedidos pelo celular; ou um app que faz tudo isso.
O Maude foi feito para esse cenário. Ele implanta via SSH um daemon que roda as suas sessões no servidor 24/7, as mantém rodando com o app fechado e cuida de Claude Code, Codex, OpenCode, Grok Build e Antigravity em quantos servidores você adicionar. Você recebe notificações push com Permitir/Negar, uma caixa de entrada com o que está esperando, e git worktrees por sessão, revisão de diff e um terminal. Quando um agente fica sem cota, você pode passar a sessão para outro agente junto com um resumo do trabalho feito até ali. Você ainda precisa do plano ou da chave de API de cada agente. O app custa $2.99 por semana depois de um teste de 3 dias, ou $59.99 por ano depois de um teste de 7 dias.
Perguntas frequentes
A minha assinatura permite uso 24/7?
Quantas sessões de agentes uma VPS aguenta?
free -h antes de adicionar mais.O que acontece com os meus agentes quando o servidor reinicia?
claude --continue ou claude --resume, e codex resume --last. Um serviço de usuário do systemd com lingering ativado pode trazer a sua sessão do tmux de volta no boot.Posso rodar o Claude Code 24/7 num Mac mini em casa?
sudo pmset -a sleep 0), use rede cabeada e acesse pelo Tailscale ou por um app que se conecta para fora. O Remote Control e o tmux funcionam ali; um Mac que entra em suspensão pausa tudo.Posso rodar o Claude Code e o Codex no mesmo servidor?
~/.claude e ~/.codex). Rode-os em janelas do tmux ou worktrees separadas para que não editem os mesmos arquivos.