Claude Code pelo celular: tmux, /resume e /remote-control

Uso o Claude Code nos containers do homelab até pelo celular. Quando uso o tmux, o /resume e o /remote-control, e o problema que cada um resolve.

Publicado
Leitura
6 min
Neste post

Eu uso o Claude Code nos containers do homelab, e uma pergunta aparece sempre: “e quando você não está no computador?”. A resposta tem três peças, e cada uma resolve um problema diferente: o tmux, o /resume e o /remote-control.

Neste post conto em que situação uso cada um, com o acesso pelo celular que descrevi no post sobre o Termius no iPhone. Os comandos estão conferidos na documentação oficial do Claude Code.

Três problemas diferentes #

Antes das ferramentas, vale separar os problemas, porque muita gente mistura:

  1. A sessão precisa continuar rodando quando eu desconecto. Se o SSH cai, o processo que estava no terminal morre junto. Para uma tarefa longa ou repetitiva, isso é um problema.
  2. Eu quero voltar a uma conversa que já terminou. Fechei o terminal ontem e quero continuar de onde parei, com todo o contexto.
  3. Eu quero usar a sessão por uma interface melhor que o terminal do celular, por exemplo para mandar um arquivo ou uma foto.

O tmux resolve o primeiro, o /resume resolve o segundo e o /remote-control resolve o terceiro.

tmux: a sessão que não morre com o SSH #

O tmux é um multiplexador de terminal. Ele mantém os programas rodando num “terminal virtual” no servidor, independente da sua conexão. Você se desconecta, o processo continua, e depois você se reconecta e encontra tudo como deixou.

Eu uso o tmux só nas máquinas em que preciso manter o Claude Code acordado para tarefas repetitivas, e sempre com uma única sessão. Não transformei o tmux em ferramenta para tudo. Ele está onde faz falta.

O básico para esse uso:

# cria a sessão com um nome e abre o Claude Code dentro dela
tmux new -s claude
claude

# sai sem fechar nada: Ctrl+b e depois d

# volta para a sessão (de outro SSH, do celular...)
tmux attach -t claude

# lista as sessões abertas
tmux ls

O atalho Ctrl+b seguido de d (de detach) é o que mais importa. Ele solta o terminal e deixa a sessão rodando.

/resume: voltar à conversa, não ao processo #

O tmux mantém o processo vivo. O /resume é outra coisa: ele traz de volta uma conversa que já acabou. Pela documentação, o Claude Code salva todas as conversas localmente, e há três formas de voltar:

# continua a conversa mais recente desta pasta
claude --continue

# abre uma lista para escolher qual conversa retomar
claude --resume

E, com o Claude Code já aberto, o comando /resume abre a mesma lista de conversas.

Eu uso o /resume sempre que volto a um projeto. É por isso que nunca perdi trabalho por queda de conexão: mesmo quando o SSH cai e o processo morre, a conversa está salva. Abro de novo, retomo e sigo com o contexto inteiro, sem explicar tudo de novo.

O detalhe que importa é a pasta. O --continue pega a conversa mais recente do diretório em que você está, então entre na pasta do projeto antes de rodar.

/remote-control: a sessão no app ou no navegador #

O terceiro caso é quando o terminal não é a melhor interface. Mandar um print de um erro ou um arquivo pelo terminal do celular não é prático. Para isso existe o Remote Control.

Pela documentação, ele conecta uma sessão do Claude Code que está rodando na sua máquina ao site claude.ai/code ou ao app Claude no celular. O ponto importante: o Claude continua rodando localmente, no seu container. O app e o navegador são só uma janela para essa sessão, e os arquivos, ferramentas e configurações do projeto continuam no servidor.

Há três formas de ligar:

# modo servidor: fica esperando conexões e mostra um link (e um QR code)
claude remote-control

# sessão interativa normal, já disponível remotamente
claude --remote-control

E, numa sessão que já está aberta, o comando /remote-control (ou /rc) conecta a conversa atual. Rodar /remote-control de novo mostra o link e permite desconectar.

Eu uso o /remote-control quando preciso interagir pela web, por exemplo para enviar arquivos. A documentação confirma que dá para anexar fotos e arquivos pelo app ou pelo navegador: o Claude vê as fotos direto e os outros arquivos são baixados para a máquina e passados como referência.

Outro detalhe: como a sessão roda na sua máquina, ela precisa continuar ligada e com o processo claude vivo. É aqui que o tmux e o Remote Control se juntam bem: o tmux mantém o processo rodando, e o Remote Control dá a interface.

Como eu combino os três #

Na prática, o meu uso fica assim:

  • Tarefa repetitiva que precisa continuar rodando: Claude Code dentro de uma sessão do tmux, na máquina onde ele precisa ficar acordado.
  • Voltar a um projeto no dia seguinte ou depois de uma queda: /resume, sempre.
  • Mandar arquivo ou trabalhar pela interface web: /remote-control.

E dá para fazer tudo isso pelo celular, com o Termius e o acesso pelo Cloudflare Tunnel: entrar no container por SSH, voltar para a sessão e seguir.

Cuidados #

Ter o Claude Code acessível de qualquer lugar é ótimo, mas lembre do que ele é: uma ferramenta que executa comandos de verdade. As regras que contei no post sobre como a IA me ajudou a reconstruir o homelab valem em dobro aqui:

  • ele trabalha nos containers e nas aplicações, nunca no host do Proxmox;
  • segredos ficam em arquivos .env fora do código, com permissão 600;
  • nada sai para fora nem gasta dinheiro sem a minha confirmação.

Resumindo #

  • tmux mantém o processo vivo quando o SSH cai. Use onde a sessão precisa ficar acordada.
  • /resume (ou claude --continue e claude --resume) traz de volta conversas que já terminaram, com o contexto.
  • /remote-control leva a sessão local para o app ou o navegador, inclusive para mandar arquivos.
  • Os três se completam: processo vivo, conversa salva e uma interface melhor quando precisa.

Com isso, o computador deixou de ser obrigatório para mexer nos meus projetos. O trabalho fica no servidor, e eu acesso de onde estiver.

Fontes e documentação