Wendov1.0 · iOS e Android
Português (Brasil)

Aprender

tmux para agentes de código: o mínimo para mantê-los rodando

Se você inicia um agente direto de um shell SSH, ele vive enquanto essa conexão viver. Com o tmux, o agente roda no servidor esteja você conectado ou não, e você se reconecta quando quiser, do notebook ou do celular. Você não precisa conhecer o tmux a fundo: uma dúzia de comandos resolve.

Este é o companheiro de Mosh ou SSH no celular, e se encaixa no guia Como usar o Claude Code pelo celular.

Uma sessão que sobrevive

O comando que você mais vai usar:

tmux new-session -A -s agents

A opção -A significa que, se existir uma sessão com esse nome, você entra nela; senão, ela é criada. Assim você pode sempre rodar o mesmo comando. Lá dentro, inicie seu agente como faria em qualquer shell:

cd ~/code/my-app
claude

Para sair sem matar nada, faça o detach com Ctrl-b e depois d. O agente continua rodando. Para voltar:

tmux attach -t agents

E para ver quais sessões existem:

tmux ls

Se você fecha o terminal, o Wi-Fi cai ou o SSH morre, não importa: a sessão continua no servidor. Esse é o ponto principal.

Janelas: um agente por janela

Uma sessão tem janelas, como abas. A situação típica: uma refatoração longa rodando na janela 2 enquanto os testes rodam na janela 3, e você mexendo em algo na janela 1.

Dentro do tmux, todo atalho começa com Ctrl-b:

  • c cria uma janela nova.
  • , renomeia a janela atual.
  • n e p vão para a janela seguinte e para a anterior.
  • 0–9 pulam para uma janela pelo número.
  • w abre uma lista para escolher.

Você também pode criar e nomear janelas por fora, ou a partir de um script:

tmux new-window -n claude -c ~/code/my-app
tmux new-window -n codex -c ~/code/my-app
tmux rename-window -t agents:2 refactor

Dar nome a cada janela importa mais do que parece. No celular você vai ler “claude”, “codex” ou “tests” numa lista pequena, e “bash” quatro vezes seguidas não ajuda.

Painéis

Se você quer ver duas coisas ao mesmo tempo na mesma janela, divida-a:

  • Ctrl-b % divide a janela em duas colunas.
  • Ctrl-b " divide em duas linhas.
  • Ctrl-b o pula para o próximo painel.
  • Ctrl-b x fecha o painel atual (pergunta antes).

Numa tela de celular, uma janela por tarefa costuma valer mais que painéis. No notebook, use painéis.

Um ~/.tmux.conf pequeno

Duas configurações mudam muito a experiência: suporte ao mouse e mais histórico. O histórico padrão é de cerca de 2.000 linhas, e um agente gasta isso rápido.

set -g mouse on
set -g history-limit 50000
set -g allow-rename off

Com mouse on você rola com o dedo ou a roda e seleciona painéis tocando neles. allow-rename off impede que o programa em execução renomeie sua janela. Recarregue com:

tmux source-file ~/.tmux.conf

Para ler o que rolou para fora sem mouse, entre no modo de cópia com Ctrl-b [ e suba com as setas ou PgUp; saia com q. É isso que o Mosh não dá e o tmux dá.

Vários agentes ao mesmo tempo: git worktrees

Dois agentes editando o mesmo diretório se atropelam. A solução limpa é um worktree por agente: cada um trabalha na sua própria branch, na sua própria pasta, compartilhando o mesmo repositório.

cd ~/code/my-app
git worktree add ../my-app-auth -b feature/auth
git worktree add ../my-app-reports -b feature/reports
git worktree list

Depois, uma janela do tmux para cada um:

tmux new-window -n auth -c ~/code/my-app-auth
tmux new-window -n reports -c ~/code/my-app-reports

Quando uma branch é mergeada e você terminou com ela:

git worktree remove ../my-app-auth

Como o Wendo usa isso

O Wendo é um cliente SSH para iOS e Android feito para acompanhar agentes de código, e o tmux é a peça central dele. A integração com o tmux é um recurso do Wendo Pro.

  • Ao conectar, entrar em: escolha tmux e, se quiser, um nome de sessão. O Wendo roda tmux new-session -A -s wendo (ou o nome que você definir), então toda vez que você abre a conexão cai de volta na sua sessão.
  • Máquinas mostra as sessões, janelas e painéis de cada computador. Toque em um e ele abre ali mesmo.
  • Com o tmux, a folha de espaços de trabalho deixa você trocar de janela, renomear, fechar painéis ou janelas e criar uma sessão. Você também pode iniciar um agente (Claude Code, Codex, OpenCode ou Gemini CLI) numa janela nova, ou criar um git worktree numa branch nova e abri-lo na própria janela, que é o que você acabou de fazer à mão acima.
  • Os avisos da Caixa de entrada levam ao painel exato se o Claude roda dentro de um multiplexador. A instalação do hook está em avisos e aprovações.

Os ajustes do terminal incluem aplicar opções globais do tmux (títulos, mouse e barra de status). Tudo está nas docs do tmux; e se a sua conexão é instável, as docs de sessões explicam o Mosh e o ET.

Alternativas: zellij e herdr

Se você prefere outro multiplexador, o Wendo também funciona com o zellij (zellij attach -c wendo) e o herdr (herdr ou herdr --session <name>). Eles precisam estar instalados no seu computador. A ideia é a mesma: o agente vive no servidor e você vai e vem.