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

Aprender

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.