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.