Terminal

O terminal do Mobile SSH foi feito para operação em telefone e tablet. Ele combina uma área de terminal, uma linha de teclas extras, painéis de várias sessões, tratamento de rolagem e comportamento de reconexão.

Noções básicas do terminal

Grade de várias sessões

O Mobile SSH pode executar até oito sessões SSH ao mesmo tempo. Cada sessão aparece como um painel na grade de terminais. Toque em um painel para selecioná-lo, ou use + Add Session para iniciar outra conexão.

O cabeçalho do painel diz onde você está. No Android, ele mostra o diretório de trabalho real do painel, obtido do tmux ou informado pela shell via OSC 7 e atualizado enquanto o app está aberto; no iOS, ele mostra o título definido pelo lado remoto, com user@host:port como alternativa.

Fechar um painel desconecta aquela sessão SSH. Voltar à tela inicial mantém as sessões ativas disponíveis em Active Sessions.

Eternal Terminal (ET)

Cada servidor salvo pode usar um de dois transportes, escolhido com o seletor Transport ao adicionar ou editar um servidor:

O ET mantém a sessão ativa no servidor, de modo que, quando o seu telefone muda de rede ou desperta da suspensão, o Mobile SSH reanexa ao mesmo shell em execução em vez de abrir um novo. Isso o torna uma boa escolha para dados móveis, transições entre Wi-Fi e rede celular e comandos de longa duração.

O ET precisa de um processo etserver no host. Se o servidor não tiver um, o Mobile SSH pode instalá-lo e iniciá-lo para você pela conexão SSH existente — sem necessidade de configuração manual no servidor. Quando o ET estiver disponível, conecte com o transporte Eternal Terminal selecionado.

Linha de teclas extras

As duas plataformas deixam ao alcance uma linha de treze teclas de terminal — justamente aquelas que são difíceis ou inexistentes em um teclado de toque. No Android, é uma faixa na parte de baixo da sessão (que se esconde sozinha quando há um teclado físico conectado); no iOS, ela fica acima do teclado virtual.

Os dois conjuntos padrão têm o mesmo tamanho, mas não são idênticos:

AndroidiOS
PadrõesESC TAB CTRL setas HOME PGUP END PGDN ESC TAB CTRL setas HOME END PGUP PGDN
Diferençatem tecla de retrocesso, não tem Shifttem Shift fixo, não tem tecla de retrocesso

A linha nunca rola. Quando as teclas deixam de caber na largura, elas dividem o espaço por igual e quebram para uma segunda linha; o que ainda sobrar se recolhe em um menu de excedentes . Nada fica escondido atrás de um deslize nem cortado na borda da tela, e um modificador armado continua valendo para uma tecla que você escolha no menu de excedentes.

CTRL age como modificador fixo: toque em CTRL e depois digite C para enviar Ctrl-C. O Shift é mais “grudento” no iOS do que no Android — no iOS ele também deixa maiúsculo o próximo caractere que você digitar no teclado virtual, enquanto no Android ele vale apenas para as teclas da própria barra (Shift+Tab, Shift+setas).

Segure uma tecla como uma seta ou PGDN e ela se repete.

Comportamento do teclado

O terminal usa uma conexão nativa e direta (pass-through) com o teclado na tela: cada caractere é enviado ao shell remoto conforme você digita, com a autocorreção e as sugestões preditivas desativadas, de modo que o teclado nunca reescreve a entrada antes de ela chegar ao shell. Isso mantém previsíveis o Vim, o tmux, o htop, o less, shells com combinações de teclas incomuns e prompts remotos de senha — não há buffer de sugestões para desativar.

O ditado por voz do teclado virtual continua funcionando: o texto ditado é enviado diretamente ao shell como qualquer outra entrada digitada.

Teclados físicos

Teclados externos e Bluetooth controlam o terminal diretamente no Android e no iOS. Além dos caracteres comuns, o Mobile SSH mapeia as teclas de seta, Home/End, PgUp/PgDn, Insert, Delete, Esc, as teclas de função F1F12, combinações Ctrl+tecla e Alt/Option como Meta, e Shift+Tab. As teclas modificadoras se combinam com os modificadores fixos da linha de teclas extras.

Colar

A colagem em um programa que a solicita (bash, Vim e outros aplicativos com bracketed paste) é envolvida em marcadores de bracketed paste, para que o conteúdo de várias linhas da área de transferência seja inserido como texto em vez de ser executado automaticamente linha por linha. Apenas colagens reais são envolvidas; o texto digitado e ditado não é afetado.

Selecionar, copiar, compartilhar

Pressione e segure dentro do terminal para selecionar a palavra sob o seu dedo e, em seguida, arraste as alças para ajustar. A barra de seleção oferece três ações:

Pesquisar no terminal

Pesquise em todo o buffer do terminal — o scrollback e a tela visível — e pule entre as correspondências. Abra a pesquisa a partir dos controles do terminal, digite uma consulta e percorra os resultados. Isso funciona tanto no Android quanto no iOS.

Cor, itálicos e área de transferência remota

Integração de shell e imagens em linha

Aparência e teclas

Tanto no Android quanto no iOS, as Configurações permitem personalizar o terminal:

Redefinir restaura os padrões de fábrica em vez de congelar a lista de hoje, então as melhorias de uma versão futura continuam chegando até você. As alterações são aplicadas ao vivo aos painéis já abertos.

Rolagem

O Mobile SSH direciona os gestos de rolagem conforme o estado do terminal:

No Android, um toque dentro de um programa com rastreamento de mouse é entregue como um clique com o botão esquerdo naquela célula, então o htop, o vim e os painéis com foco por clique respondem ao toque. No iOS, um toque no mesmo programa levanta o teclado em vez de clicar; apenas a rolagem por roda é reportada.

Se você digitar enquanto está com o buffer rolado para trás, o Mobile SSH retorna à visão ao vivo do terminal.

Comportamento do tmux

O Mobile SSH observa os comandos tmux de attach e nova sessão enviados pelo usuário, como:

tmux attach -t work
tmux a -t work
tmux new -A -s work

Quando uma conexão cai enquanto você estava no tmux, o app pode lembrar o nome da última sessão tmux daquele servidor e tentar reanexar após a reconexão. Se nenhum nome de sessão explícito foi observado, mas o app identificou que você estava em uma sessão de tela alternativa semelhante ao tmux, ele pode tentar um tmux attach genérico.

Esse comportamento é feito na medida do possível. Se a sessão tmux remota não existir mais, o shell remoto continua disponível.

Gerenciador do tmux

O Mobile SSH inclui um gerenciador do tmux para que você possa navegar e controlar o tmux sem digitar combinações de prefixo. Abra-o com o botão Tmux a partir de uma sessão conectada. Ele lista, em três seções:

A partir do gerenciador, você pode:

Um 🔔 marca qualquer sessão cujo agente esteja aguardando entrada, para que você possa identificar de relance uma execução pausada do Claude Code ou do Codex e anexar a ela. Isso complementa as dicas de reanexação acima: a lógica de reanexação restaura automaticamente a sua última sessão ao reconectar, enquanto o gerenciador oferece controle manual completo.

As duas plataformas também conseguem gerenciar mais de um servidor tmux (socket) no mesmo host e ordenar as sessões por nome ou data de criação.

Herdr e Zellij (Android)

O Android traz a mesma ideia para outros dois multiplexadores. Cada um ganha o seu próprio ícone na barra de ferramentas, e um ícone só aparece depois que o app realmente encontrou aquele programa no servidor — então a barra de ferramentas informa o que está instalado lá sem que você precise rodar which.

Se o herdr ou o Zellij estiver instalado, mas fora do PATH da shell de login, a página oferece adicioná-lo.

Cada servidor salvo tem uma opção Attach on connect: Auto (detect), Nothing, tmux, herdr ou Zellij. O modo automático escolhe aquele que você usou por último naquele servidor, depois aquele que tiver sessões ativas, depois aquele que estiver instalado — e não anexa nada, em vez de adivinhar, quando ainda não sondou o servidor.

O app iOS hoje funciona apenas com tmux.

Agent alerts

O Mobile SSH avisa você quando um agente remoto de programação com IA — Claude Code, Codex, Gemini — está bloqueado esperando por você. Ele não adivinha lendo a saída do seu terminal. Há dois caminhos, e eles funcionam com níveis diferentes de detalhe.

A campainha

Sem nenhuma configuração, uma campainha (bell) de terminal vinda de uma sessão que você não está olhando dispara um alerta, assim como as sequências de escape de notificação de desktop (OSC 9, OSC 777) que muitas ferramentas já emitem. Campainhas que chegam logo depois de você digitar são ignoradas, para que o barulho comum de autocompletar da shell não fique chamando você.

Isso não exige preparo nenhum, mas o app só sabe que alguma coisa tocou.

O hook de agente

Para que o app saiba qual agente está esperando e o que ele está fazendo, instale o hook de agente no servidor:

Isso grava um pequeno script de shell em ~/.mobile-ssh/agent-hook.sh naquele servidor. Ele é agnóstico quanto ao agente — recebe argumentos de linha de comando em vez de interpretar o formato de um fornecedor específico — então qualquer coisa capaz de executar um comando pode se reportar por ele. Apagar o arquivo é uma desinstalação limpa.

Assim que um agente se reporta pelo hook:

Responder sem digitar

Quando um agente faz uma pergunta com um conjunto fixo de respostas, o app mostra um botão por opção — até seis — na lista de Agentes. No Android, você também pode tocar no chip do agente no cabeçalho do painel.

A sua resposta não é digitada na sessão. Ela é gravada em um arquivo por um canal separado e recolhida pelo hook, de modo que responder não pode estragar o que está na tela. O app se recusa a enviar uma opção que o prompt não tenha realmente oferecido e avisa com clareza se a conexão caiu nesse meio-tempo, em vez de falhar em silêncio.

Configurações

Os alertas vêm ativados por padrão nas duas plataformas, com chaves individuais para a notificação, o som, a vibração e para decidir se a sessão que você está vendo no momento também deve alertar.

Vale conhecer um padrão: o som se limita aos fones de ouvido. Sem nada conectado ou pareado, um alerta notifica e vibra, mas não toca nenhum som. Desative essa opção se quiser o alerta audível no alto-falante do celular.

Não existe ajuste de sensibilidade nem seletor de som — os controles são apenas ligar/desligar.

Programas de terminal em tela cheia

Para programas como Vim, less, htop, ferramentas ncurses e painéis tmux: