Guia

Como manter uma sessão do Claude Code viva com tmux

Um agente de terminal vive dentro de um terminal. Fechou a janela, perdeu o agente. Caiu a conexão SSH, perdeu o agente. O tmux coloca o agente dentro de uma sessão que o terminal apenas exibe. A sessão continua rodando quando você não está olhando. Esta é a configuração que usamos em todo Mac para agentes, com os comandos exatos.

Instale e inicie

brew install tmux
tmux new -s agent

Agora você está dentro de uma sessão chamada agent. Inicie o agente nela como qualquer outro comando.

claude

Para o Codex, rode o comando dele. Tudo nesta página funciona do mesmo jeito para as duas ferramentas.

Desconecte e volte

Pressione Ctrl-b, solte e depois pressione d. O terminal volta para o seu shell e o agente continua trabalhando em segundo plano. Para voltar a ele de qualquer terminal na máquina, conecte pelo nome.

tmux attach -t agent

Se esquecer o nome, liste o que está rodando.

tmux ls

Retome pelo celular

Instale um cliente SSH no celular. Termius e Blink Shell são os mais comuns. Conecte ao Mac e entre na mesma sessão. Você vê exatamente o que o agente está fazendo e pode digitar para ele. Teclados de celular são ruins para prompts longos. Por isso a maioria das pessoas usa o celular para conferir o progresso e responder uma pergunta, e faz o trabalho de verdade em um notebook.

No caso do Claude Code, o Remote Control é uma experiência melhor no celular do que o SSH. Ele conecta o app Claude à sessão em execução sem nenhum terminal. O guia para rodar o Claude Code 24/7 explica como configurar. O tmux continua importando por baixo, porque o Remote Control se conecta a uma sessão que precisa existir.

Deixe mais confortável

Dois ajustes deixam o tmux muito mais fácil para trabalhar com agentes. Coloque os dois em um arquivo chamado .tmux.conf na sua pasta pessoal.

set -g mouse on
set -g history-limit 50000

O primeiro permite rolar com o trackpad ou com o dedo. O segundo guarda saída suficiente para ler o que o agente fez uma hora atrás. Reinicie o tmux depois de salvar o arquivo, ou recarregue de dentro de uma sessão.

tmux source-file ~/.tmux.conf

Sobreviva a uma reinicialização

As sessões do tmux ficam na memória. Uma reinicialização apaga todas. Em uma máquina sem supervisão, a sessão deve voltar sozinha. Um LaunchAgent que roda no login faz isso. Salve isto como um arquivo chamado dev.local.agent-session.plist na pasta LaunchAgents dentro da Library da sua pasta pessoal.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
  "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key><string>dev.local.agent-session</string>
  <key>ProgramArguments</key>
  <array>
    <string>/bin/sh</string>
    <string>-c</string>
    <string>/opt/homebrew/bin/tmux has-session -t agent 2>/dev/null || /opt/homebrew/bin/tmux new -d -s agent</string>
  </array>
  <key>RunAtLoad</key><true/>
  <key>StartInterval</key><integer>60</integer>
</dict>
</plist>

Carregue uma vez e ele roda em todo login e confere a cada minuto depois disso.

launchctl load ~/Library/LaunchAgents/dev.local.agent-session.plist

Isso cria uma sessão vazia. De propósito, não reinicia o agente dentro dela. Um agente que se reinicia sozinho no meio de uma tarefa pela metade, sem ninguém acordado, é a receita para surpresas. Ative o login automático do usuário para o LaunchAgent ter uma sessão onde rodar. Depois inicie a tarefa você mesmo na próxima vez que conectar.

Duas sessões, dois agentes

Nada impede você de rodar o Claude Code em uma sessão e o Codex em outra na mesma máquina. Duas sessões do Claude Code em dois repositórios também funcionam. Dê a cada uma o nome do trabalho.

tmux new -s api-refactor
tmux new -s ios-tests

Mantenha cada agente na sua própria cópia do repositório para que eles não editem os mesmos arquivos. Os worktrees do Git deixam isso barato.

Perguntas frequentes

O tmux mantém o agente rodando se o Mac entrar em repouso?

+

Não. O tmux protege contra o fechamento do terminal e a queda da conexão. O repouso congela a máquina inteira, incluindo o tmux. Resolva o repouso à parte com os ajustes de energia e use o tmux por cima.

Qual é a diferença entre tmux e screen?

+

Os dois resolvem o mesmo problema. O tmux tem manutenção ativa, está no Homebrew e tem os ajustes de mouse e histórico acima. Use o que você conhece. Os comandos mudam, mas a ideia é a mesma.

Consigo ver a saída do agente de antes de eu conectar?

+

Sim. Role para cima dentro da sessão. O ajuste history-limit controla quantas linhas ficam guardadas. Com o modo mouse ligado, role com o trackpad. Sem ele, pressione Ctrl-b e depois a tecla de colchete esquerdo, role e pressione q para sair.

Isso funciona em um Mac hospedado?

+

Sim, e é assim que os nossos Macs para agentes vêm configurados. Uma sessão chamada agent é criada no login com o agente escolhido rodando nela. Uma janela do Terminal fica conectada a ela na área de trabalho que você abre no navegador.

Guias relacionados