Mosh ou SSH no celular: qual usar para acompanhar seu agente
Você inicia o Claude Code numa tarefa longa, fecha o notebook e sai. O trem entra num túnel, o celular cai do Wi-Fi para os dados móveis e fica um minuto sem sinal, e quando você olha de novo a sessão SSH está morta. É o esperado: o SSH nunca foi pensado para um cliente que muda de rede a cada poucos minutos, e o Mosh e o Eternal Terminal existem justamente para isso.
Aqui está o que cada um faz, o que acontece num celular e como escolher. Se você quer o quadro completo de rodar um agente do bolso, comece por Como usar o Claude Code pelo celular.
O que acontece com o SSH num celular
O SSH roda sobre uma conexão TCP, e essa conexão está presa a um endereço IP e a um par de sockets. Quando o celular passa do Wi-Fi para os dados móveis, o IP muda e o servidor nunca fica sabendo. A conexão trava até um timeout matá-la. O mesmo acontece quando o iOS ou o Android desligam a rede do app para economizar bateria, ou matam o app porque precisam da memória.
Você perde mais que a tela. Um processo pendurado nessa sessão SSH pode receber um SIGHUP e morrer junto. Por isso um agente iniciado direto de um shell SSH é frágil, e por isso o companheiro deste artigo, tmux para agentes de código, é quase obrigatório.
Mosh: UDP e reconexão silenciosa
O Mosh (mobile shell) só usa o SSH para começar. Ele autentica por SSH, inicia o mosh-server no seu computador e, a partir daí, fala por UDP. Sem conexão TCP para quebrar, o cliente pode mudar de IP, perder sinal ou entrar em repouso, e quando a rede volta a sessão continua lá.
Na prática:
- Você troca do Wi-Fi para os dados móveis e a sessão nem percebe.
- Se o servidor para de responder, o app avisa em vez de fechar a sessão.
- Eco local com previsão: o que você digita aparece na hora, sublinhado, e é confirmado quando o servidor responde. Num link móvel com lag, você sente a diferença.
O que isso custa:
- O UDP 60000–61000 precisa estar aberto no seu computador (cada sessão usa uma porta dessa faixa).
- Sem scrollback. O Mosh só sincroniza o que está na tela. Se você quer rolar para cima e ler o que o agente imprimiu, trabalhe dentro do tmux.
- Se o sistema operacional mata o app, a sessão Mosh termina e não pode ser retomada.
Eternal Terminal: TCP, mas retoma
O Eternal Terminal (ET) vai pelo caminho oposto. Roda sobre TCP, por padrão na porta 2022, mas mantém seu próprio estado de sessão, então quando a conexão cai ele a reconstrói e reenvia o que se perdeu. Precisa do etserver rodando no seu computador e do etterminal no PATH da sessão SSH.
Num celular, a vantagem dele é ser o único transporte do Wendo que sobrevive ao fechamento do app. A sessão aparece em Início e continua de onde estava quando você a abre. O Wendo marca o ET como experimental, então tenha isso em mente antes de depender dele.
Comparação rápida
| | SSH | Mosh | ET |
|---|---|---|---|
| Transporte | TCP | UDP | TCP (2022) |
| Wi-Fi ↔ dados móveis | Cai | Sobrevive | Sobrevive |
| Celular em repouso | Cai | Sobrevive | Sobrevive |
| App morto pelo sistema | Cai | Perdida | Retoma |
| Scrollback | Sim | Não | Sim |
| Com Jump Host no Wendo | Sim | Não | Não |
Instalando o mosh-server
No computador onde o agente roda:
# macOS
brew install mosh
# Debian / Ubuntu
sudo apt install mosh
# Fedora
sudo dnf install mosh
Confira que ele está no PATH de uma conexão SSH comum, não só no seu terminal interativo:
ssh my-server 'which mosh-server'
Num Mac com Apple Silicon, o Homebrew o instala em /opt/homebrew/bin/mosh-server, que nem sempre está no PATH de uma sessão não interativa. Se isso acontecer, o Wendo permite definir o caminho do mosh-server na conexão.
Notas sobre o firewall
O Mosh precisa de UDP de entrada em 60000–61000. No Linux com ufw:
sudo ufw allow 60000:61000/udp
Com o firewalld:
sudo firewall-cmd --permanent --add-port=60000-61000/udp
sudo firewall-cmd --reload
Se o seu computador está atrás de um roteador, redirecione essa faixa UDP do mesmo jeito que redirecionaria a porta 22. Para o ET, abra a TCP 2022 do mesmo modo (sudo ufw allow 2022/tcp).
Se o seu SSH passa por um proxy ou um balanceador de carga, o UDP do Mosh pode ser enviado ao IP errado. O Wendo tem a opção “Usar IP do servidor para UDP” para esse caso.
Escolhendo no Wendo
Ao editar uma conexão, o campo Transporte oferece Auto, SSH, MOSH e ET. Com Auto, o Wendo tenta o Mosh primeiro, depois o ET, e volta para o SSH se nenhum estiver disponível. Comece com o Auto.
Uma regra prática:
- Você vai andar com o celular e as sessões duram minutos: Mosh.
- Você quer fechar o app, voltar uma hora depois e achar a sessão em Início: ET.
- Você se conecta por um Jump Host: SSH. Nem o Mosh nem o ET funcionam com Jump Host no Wendo.
- Seu computador não pode abrir portas UDP: ET ou SSH.
Mosh e Eternal Terminal são recursos do Wendo Pro; sem o Pro a conexão vai por SSH. Os campos estão descritos nas docs de sessões.
Seja qual for o transporte, inicie o agente dentro do tmux. O transporte mantém a tela viva; o tmux mantém o processo vivo e dá o scrollback que o Mosh não tem. A combinação habitual é Mosh ou ET para o fio e tmux para o trabalho, e aqui está o mínimo de tmux de que você precisa. Para receber avisos quando o agente pede permissão, veja os hooks.