Terminal Linux
O terminal do PocketCode dá a você um shell de verdade no celular: o ash do BusyBox sobre um pseudoterminal nativo, com seus projetos como pasta pessoal, abas, tela dividida e um painel com 20 ferramentas. O trabalho remoto (hosts SSH, SFTP, encaminhamento de portas) tem sua própria página.

O que é e como abrir
O Terminal não é uma das cinco páginas do pager: ele abre sobre o app como uma sobreposição em tela cheia. Há três formas de entrar.
- 1Toque no botão Ferramentas da barra de navegação e escolha Terminal no painel Ferramentas de desenvolvimento.
- 2Abra a paleta de comandos e execute Abrir terminal (“Abre uma sessão de terminal”).
- 3Em Início, toque na ação rápida Terminal. É uma das três ações rápidas exibidas por padrão.
Mapa de telas
O Terminal tem três telas (boas-vindas, Terminal e SSH) que compartilham uma barra de abas, um painel de ferramentas e o mesmo conjunto de janelas de ferramentas. Esta página cobre a tela de boas-vindas, a tela do Terminal local e todas as ferramentas do shell local; a tela SSH tem sua própria página.
| Tela | Como chegar | O que você pode fazer |
|---|---|---|
| Tela de boas-vindas | Abre primeiro. Voltar, dentro de uma sessão, volta para cá. | Escolha Shell local, Conexão rápida ou Explorar hosts. Retome uma sessão em andamento pelos chips acima. |
| Terminal (shell local) | Shell local na tela de boas-vindas, ou um chip de sessão local. | Abas, tela dividida, busca na saída, a barra de entrada, gestos e todas as ferramentas abaixo. |
| Tela SSH | Conexão rápida ou Explorar hosts na tela de boas-vindas. | Abas remotas com seu próprio conjunto de 32 ferramentas. Explicada na página de SSH. |
| Painel de ferramentas acoplado | Automático em tela larga (660 dp ou mais, sem tela dividida). | Uma faixa de ícones de ferramentas com a ferramenta aberta logo abaixo. 20 ferramentas no shell local. |
| Menu de ferramentas | O botão de chave inglesa (Mais opções) na barra de abas, quando não há painel acoplado. | Seis categorias no shell local, Buscar ação… e uma linha de FREQUENTES. Abre qualquer ferramenta como uma janela em tela cheia. |
| Snippets | Ferramenta do painel; menu → Snippets. | 98 comandos prontos, os seus, pastas e Gerar com IA. |
| Histórico de comandos | Ferramenta do painel; menu → Sessão. | Busque, marque com estrela, repita e apague os comandos que você enviou desta aba. |
| Gerenciador de arquivos | Ferramenta do painel; menu → Ferramentas Linux. | Navegue por pastas, crie uma pasta ou um arquivo, imprima um arquivo, apague (com confirmação antes). |
| Painel Git | Ferramenta do painel; menu → Ferramentas Linux. | Veja status, branches, histórico e ações de um repositório, via JGit. |
| Processos | Ferramenta do painel; menu → Ferramentas Linux. | Liste, filtre, ordene e encerre processos. |
| Informações do sistema | Ferramenta do painel; menu → Ferramentas Linux. | SO, kernel, tempo ligado, usuário e o modelo do celular e a versão do Android. |
| Uso de disco | Ferramenta do painel; menu → Ferramentas Linux. | Um cartão por partição, com uma barra de uso. |
| Rede | Ferramenta do painel; menu → Ferramentas Linux. | Execute ping, nslookup, traceroute, curl, wget ou dig contra um alvo. |
| Variáveis de ambiente | Ferramenta do painel; menu → Ferramentas Linux. | Liste, busque, adicione, edite e remova variáveis. |
| Gerenciador de aliases | Ferramenta do painel; menu → Sessão. | Liste, crie, execute e remova aliases. |
| Tarefas em segundo plano | Ferramenta do painel; menu → Sessão. | Liste tarefas, encerre uma, traga uma para o primeiro plano. |
| Scripts rápidos (Pro) | Ferramenta do painel; menu → Automação. | Salve scripts de várias linhas e execute-os linha a linha. |
| Macros de teclado (Pro) | Ferramenta do painel; menu → Automação. | Salve sequências de teclas e envie-as à sessão. |
| Regras Expect (Pro) | Ferramenta do painel; menu → Automação. | Responda a um prompt automaticamente quando um padrão aparece na saída. |
| Gravação | Ferramenta do painel; menu → Sessão → Iniciar gravação. | Grave a aba como um arquivo .cast do asciinema. |
| Registros de sessão | Ferramenta do painel; menu → Configurações. | Registre uma sessão em um arquivo criptografado, marque, comente e compartilhe. |
| Partilha o teu servidor | Ferramenta do painel; menu → Sessão. | Dê ao servidor de desenvolvimento que roda no seu celular um link público temporário. |
| Perfis | Ferramenta do painel; menu → Segurança. | Crie e inicie perfis de terminal (veja as limitações). |
| Sincronização e equipes e Importar / Exportar | Ferramentas do painel; menu → Configurações. | Também estão no painel local. Descritas na página de SSH. |
| Explicar com IA | Botão de brilho na barra de entrada, só depois de uma saída que parece uma falha. | Receba uma explicação em linguagem simples das últimas 40 linhas. |
| Copiar para a área de transferência? | Aparece sozinho quando um programa pede a sua área de transferência (OSC 52). | Copiar, Ignorar ou permitir pelo resto da sessão. |
| O comando lê credenciais e envia dados para fora | Aparece antes de um comando assim, digitado na barra de entrada, ser executado. | Leia o que ele toca e depois Executar mesmo assim ou cancele. |
A tela de boas-vindas
A tela de boas-vindas é a página inicial do módulo. Ela mostra o título Terminal e a frase “Shell local, SSH remoto e ferramentas Linux em um só lugar”.
Shell local
Abre um shell neste celular, na tela do Terminal. Uma linha de status sob o nome diz Ferramentas Busybox prontas quando o BusyBox está vinculado, ou Shell básico quando só o shell do próprio Android está disponível.
Conexão rápida e Explorar hosts
Abrem a tela SSH com a Conexão rápida ou com a lista de hosts. Explicado na página de SSH.
Sessões abertas
Chips acima dos cartões listam as sessões que ainda estão rodando, para você voltar a uma delas.
Em tela estreita os cartões ficam empilhados em uma coluna; em tela larga o título fica à esquerda e os cartões à direita. Voltar, aqui, sai do Terminal.
Você pode
- Inicie um shell local com um toque em Shell local.
- Retome qualquer sessão em andamento, local ou remota, pelos chips.
- Vá para a tela SSH com Conexão rápida ou Explorar hosts.
Você não pode, e por quê
- Confiar no status do BusyBox em uma instalação nova: ele é lido uma vez, quando a tela é desenhada, e o BusyBox é vinculado na primeira vez que você abre um shell, então o cartão pode dizer Shell básico até você reabrir o Terminal.Ainda não
O shell local
O shell local é um processo de verdade no seu celular, não uma emulação.
- Shell.
ashdo BusyBox v1.34.1, incluído no app e iniciado em um pseudoterminal nativo (TERM=xterm-256color, redimensionado junto com a tela). Se o BusyBox não estiver disponível, recorre aoshdo próprio Android. - Applets. O binário do BusyBox exporta 373 applets. Na primeira vez que você abre um shell, o PocketCode vincula todos eles, entre os quais
awk,vi,sed,find,tar,gzip,unzip,wget,nc,ping,nslookup,traceroute,ifconfig,ip,netstat,topeless. Se essa etapa falhar, vincula uma lista básica de 70. Os vínculos são reparados na próxima vez que você abre um shell depois de uma atualização do app. - Node. O
nodeé vinculado ao shell quando o build o inclui para a arquitetura do seu dispositivo (arm64-v8a e x86_64), comNODE_OPTIONS=--no-addons. O npm não está incluído. - Pasta pessoal.
~é a sua pasta de projetos.ls,grepediffsão aliases coloridos elléls -la(o PocketCode verifica o.ashrcdo shell a cada início e o restaura se for diferente). - Banco de dados. Enquanto o motor PostgreSQL local está rodando,
DATABASE_URLe as variáveisPG*são definidas apenas no shell local, nunca nas sessões SSH. - Saída. A saída é uma lista de linhas (as últimas 10.000 por aba). Cores e estilos são desenhados (cores de 16, 256 e RGB, negrito, esmaecido, itálico, sublinhado), os retornos de carro fazem as barras de progresso colapsarem, e o backspace e as tabulações funcionam. Movimento do cursor, limpeza de tela, rastreamento do mouse e outras sequências de controle são descartados.


O que não existe aqui, e por quê
- Um gerenciador de pacotes: não há
apt,dpkgnempkg. O app não instala pacotes.Google Play git. Use o Painel Git (ele conversa com o JGit) ou o Controle de código do editor.De propósitopython,docker,curl,ssh,scp,zipenano. Eles não estão no build do BusyBox e o app não baixa executáveis. Para outra máquina, use a tela SSH.Google Play- Root,
chroot/prootou uma distribuição Linux: o shell tem o usuário do próprio app e nada mais.Dispositivo - Programas que redesenham a tela inteira, como
vi,topouless: eles não aparecem como tela cheia porque o movimento do cursor é descartado.top -n 1é oferecido como chip em Processos.De propósito
Sessões, abas e gestos
Cada aba é uma sessão. A barra de abas é compartilhada pelas telas local e SSH, mas cada tela mostra só as abas do seu tipo.
Abas, tela dividida e busca
- + abre outro shell local nesta tela (na tela SSH, abre a lista de hosts).
- Mantenha uma aba pressionada para Renomear e Fechar outros separadores (uma aba remota também oferece Duplicar sessão). Fechar uma aba local é imediato; fechar as outras pergunta antes.
- Cada aba tem um ponto de status (a aba local é sempre verde), e um ponto extra aparece na aba que recebeu saída nova enquanto você estava em outra. Os chips LOG e REC aparecem na barra enquanto o registro ou a gravação está ligado.
- O botão de divisão alterna entre Dividir horizontal, Dividir vertical e Sem divisão. O segundo painel mostra a aba seguinte, o painel ativo tem uma borda de destaque e um toque em um painel o foca. A tela dividida é Pro.
- A lupa (Buscar saída) abre Buscar na saída… com uma contagem (“N de M”) e botões de anterior e próximo. Ela encontra o texto em qualquer ponto da linha, ignorando maiúsculas e minúsculas, e cada painel dividido é pesquisado separadamente.
- Broadcast (enviar o que você digita a todas as abas conectadas) e Shell multiplexado pertencem às abas remotas. Estão na página de SSH.
Gestos e teclas
| Toque duplo na saída | Envia Ctrl+C para interromper o comando em execução. |
| Deslizar na saída | Envia as setas: esquerda e direita movem o cursor, para cima e para baixo percorrem o histórico do shell. |
| Pinça na saída | Muda o tamanho do texto, de 8 a 24. O tamanho é lembrado. |
| Toque longo na saída | Um menu com Copiar linha, Copiar saída e Limpar terminal. |
| Tocar em um link | Um endereço da web abre no navegador. |
| Botões de volume | Funcionam como as setas para cima e para baixo enquanto Botões de volume: ATIVADO estiver ligado. Vem desligado por padrão e o interruptor fica no menu de ferramentas, em Configurações. |
A barra de entrada
- Um campo de uma linha com Enviar. Tudo o que você envia daqui é adicionado ao histórico de comandos desta aba.
- Até cinco sugestões aparecem enquanto você digita: comandos conhecidos, comandos do histórico desta aba e caminhos que começam com
/ou~(só no shell local, um nível de profundidade). - Comando anterior volta pelo histórico desta aba.
- Anexar arquivo escolhe um arquivo. No shell local ele é copiado para a sua pasta de projetos, com
(1),(2)acrescentado quando o nome já existe, e o caminho dele é inserido no campo. Em uma aba remota, ele é enviado para/tmp. - Explicar com IA aparece quando a saída mais recente parece uma falha (veja abaixo).
Limites da tela de sessão
- Uma fileira de teclas extras (ESC, TAB, Ctrl, F1 a F12). As únicas teclas que você pode enviar são Ctrl+C (toque duplo), as setas (deslizar) e o que uma macro enviar.Ainda não
- Abrir um arquivo a partir da saída: caminhos de arquivo e referências
file:line:columnsão destacados, mas não reagem ao toque. Só os endereços da web abrem.Ainda não - Uma segunda sessão na mesma tela no plano Grátis, e a tela dividida.Pro
Avisos que uma sessão pode levantar
Copiar para a área de transferência? (OSC 52)
Aparece sozinho quando um programa da sessão pede para colocar texto na sua área de transferência.
Um comando, um script ou um servidor remoto podem pedir ao terminal que copie texto. O PocketCode pergunta antes, porque um texto colado em um terminal pode executar comandos.
Você pode
- Leia “A sessão quer copiar N caracteres para a área de transferência”, com uma prévia do texto.
- Toque em Copiar ou Ignorar.
- Marque Permitir no resto desta sessão. Essa escolha fica na memória e é esquecida quando a sessão termina.
Você não pode, e por quê
- Deixar uma sessão escrever na sua área de transferência sem perguntar.De propósito
O comando lê credenciais e envia dados para fora
Aparece quando um comando enviado pela barra de entrada toca um repositório de credenciais e também envia dados para algum lugar.
A caixa de diálogo diz o que o comando toca e para onde ele vai. É um aviso, não um bloqueio: existe para comandos copiados de um tutorial ou sugeridos por uma IA, cujo segundo efeito é fácil de não notar.
Você pode
- Leia as duas coisas que o comando faz.
- Toque em Executar mesmo assim para enviá-lo, ou cancele.
Você não pode, e por quê
- Fazer com que ele bloqueie o comando, ou pegar qualquer coisa que não passe pela barra de entrada.De propósito
O painel de ferramentas
Quase tudo o que você faz além de digitar comandos acontece nas ferramentas. Elas aparecem de duas maneiras, conforme a tela.
As 20 ferramentas do shell local, na ordem do painel
Snippets, Histórico de comandos, Gerenciador de arquivos, Painel Git, Processos, Informações do sistema, Uso de disco, Rede, Variáveis de ambiente, Gerenciador de aliases, Tarefas em segundo plano, Scripts rápidos, Macros de teclado, Regras Expect, Gravação, Registros de sessão, Partilha o teu servidor, Perfis, Sincronização e equipes e Importar / Exportar. Uma aba remota acrescenta mais 12, 32 no total (veja a página de SSH).
Painel acoplado
Em tela larga (660 dp ou mais) e sem tela dividida, um painel de 380 dp se acopla à direita: uma faixa de ícones com a ferramenta selecionada logo abaixo. Há sempre uma ferramenta selecionada (Snippets na primeira vez) e o painel lembra a última. A seta da barra de abas (Recolher painel) o recolhe.
Menu de ferramentas
No celular, ou com a tela dividida ligada, o botão de chave inglesa (Mais opções) abre um menu com um campo de busca (Buscar ação…), uma linha de FREQUENTES (uma ação aparece ali depois de dois usos, no máximo seis) e estas categorias:
| Categoria | Ações no shell local |
|---|---|
| Sessão | Partilha o teu servidor, layout dividido, Histórico de comandos, Gerenciador de aliases, Tarefas em segundo plano, Copiar saída, Limpar terminal, Iniciar gravação |
| Ferramentas Linux | Gerenciador de arquivos, Processos, Rede, Uso de disco, Informações do sistema, Variáveis de ambiente, Painel Git |
| Snippets | Todos os Snippets e oito atalhos de categoria (Sistema, Docker, Git, Banco de dados, Segurança, Monitoramento, Rede, Arquivos e texto) |
| Automação | Macros de teclado, Scripts rápidos, Regras Expect |
| Segurança | Perfis |
| Configurações | Registros de sessão, Sincronização e equipes, Importar / Exportar, Botões de volume: ATIVADO / Botões de volume: DESATIVADO |
Em uma aba SSH há uma sétima categoria, Conexão, e mais ações nas outras. Copiar saída e Limpar terminal também estão no menu de toque longo da saída.

- Alcançar Botões de volume: ATIVADO/DESATIVADO em um tablet largo com o painel acoplado: o menu de ferramentas não é desenhado ali. (Iniciar uma tela dividida traz a chave inglesa de volta.)Dispositivo
Ferramentas Linux
Estas ferramentas são atalhos para coisas que você digitaria de qualquer jeito. As listas que elas mostram são lidas por um shell separado e não interativo (cada leitura é limitada a 15 segundos e 512 KB). O que você muda por elas (criar, apagar, encerrar, exportar) é digitado na sua sessão como um comando comum, então você também vê isso na saída.
Gerenciador de arquivos
Ferramenta do painel Gerenciador de arquivos; menu → Ferramentas Linux.
Um navegador de pastas construído sobre ls -la.
Você pode
- Abra pastas e suba um nível com Pasta acima.
- Crie uma pasta (Nova pasta,
mkdir -p) ou um arquivo vazio (Novo arquivo,touch). - Toque em um arquivo para imprimi-lo na sessão com
cat. - Apague uma entrada com o ícone da lixeira. Um diálogo Excluir com o título Excluir <nome>? pergunta antes: o arquivo, ou a pasta e tudo o que há nela, é removido de vez, sem lixeira nem como desfazer. Excluir confirma; Cancelar mantém.
- O
rm -rfdigitado na sessão leva o caminho entre aspas e os caracteres especiais escapados, então um arquivo chamado$(…)é apagado pelo nome e nunca executado. - Use os chips de Comandos rápidos:
du -sh *,find . -name '*.log'echmod +x.
Você não pode, e por quê
- Navegar fora da sua pasta de projetos: o navegador para ali, e as pastas que guardam credenciais do app nunca abrem.De propósito
- Desfazer uma exclusão, ou mandá-la para uma lixeira.De propósito
- Ver proprietário, tamanho ou datas além do que
ls -laimprime.Ainda não
Painel Git
Ferramenta do painel Painel Git; menu → Ferramentas Linux.
Um pequeno painel Git com quatro abas: Estado, Branches, Histórico e Ações. No shell local ele usa o JGit (não existe programa git); em uma aba SSH, digita comandos git no shell remoto. Ele procura o repositório subindo a partir da pasta do Gerenciador de arquivos, ou da sua pasta de projetos.
Você pode
- Inicializar repositório onde você está, Adicionar tudo e tirar tudo da área de preparação.
- Escreva uma mensagem de commit e Confirmar alterações.
- Push, Pull, Fetch, Stash, Stash Pop.
- Troque de branch ou crie uma com Nova ramificação, e descarte as alterações de um arquivo.
Você não pode, e por quê
- Um
git diffouresetcompleto: o painel local não desenha ações que o JGit não consegue fazer. A nota de rodapé do próprio painel aponta para o Controle de código do editor.De propósito - Entrar em um host Git por aqui: push e pull usam as credenciais já configuradas em outro ponto do app, e uma falha mostra a mensagem na janela.De propósito
- Trabalhar em um repositório fora da sua pasta de projetos.De propósito
Processos
Ferramenta do painel Processos; menu → Ferramentas Linux.
Os processos em execução, lidos com ps.
Você pode
- Veja PID, nome, usuário, CPU %, MEM % e estado.
- Filtre por nome ou PID (Filtrar processos…).
- Ordene por CPU %, MEM % ou PID.
- Pare um processo com o ícone de encerrar, que digita
kill -9 <pid>na sessão. - Use os chips
top -n 1,ps aux --sort=-%mem | head -20euptime, e atualize a lista.
Você não pode, e por quê
- Escolher outro sinal (é sempre
-9) ou filtrar por usuário.Ainda não - Mostrar uma árvore de processos.Ainda não
Informações do sistema
Ferramenta do painel Informações do sistema; menu → Ferramentas Linux.
Três abas de cartões: Visão geral (SO, kernel, tempo ligado), Hardware (arquitetura, mais o modelo do seu celular, a versão do Android e o nível do SDK) e Ambiente (usuário e id).
Você pode
- Atualize os cartões.
- Use os chips:
uname -a,uptime,whoami,free -heenv | sortenviam o que dizem. cpuinfo enviacat /proc/cpuinfo, model enviagetprop ro.product.model(com o nome do produto do DMI como alternativa), $PATH enviaecho $PATHe $SHELL enviaecho $SHELL.
Você não pode, e por quê
- Mostrar memória, CPU ou nome do host como cartões próprios.Ainda não
Uso de disco
Ferramenta do painel Uso de disco; menu → Ferramentas Linux.
Um cartão por partição, a partir de df -hP, com uma barra de uso e os tamanhos Usado, Livre e Total.
Você pode
- Atualize os cartões.
- Use os chips
df -h,du -sh * | sort -rh | head -20efind / -size +100M 2>/dev/null.
Você não pode, e por quê
- Ver inodes ou mais do que as colunas de
df -hP.Ainda não
Rede
Ferramenta do painel Rede; menu → Ferramentas Linux.
Ao abri-la, ela executa ifconfig (ou ip addr) e mostra o resultado. A saída aparece na janela como texto monoespaçado simples, não na sessão.
Você pode
- Escolha uma ferramenta (
pingcom 5 pacotes,nslookup,traceroute,curlpara cabeçalhos,wgetcomo teste de alcance,dig), digite um host, endereço ou URL e toque em Executar. - Use os chips
ifconfig,netstat -tlnpess -tuln.
Você não pode, e por quê
- Executar
curloudigno shell local: o build do BusyBox não os inclui, então terminam com uma mensagem de “não encontrado”.Google Play - Executar algo por mais de 15 segundos ou imprimir mais de 512 KB.De propósito
Variáveis de ambiente
Ferramenta do painel Variáveis de ambiente; menu → Ferramentas Linux.
As variáveis, listadas com env e pesquisáveis.
Você pode
- Adicione uma com Nova variável (o nome deve começar com uma letra ou sublinhado e usar só letras, dígitos e sublinhados). Ela é enviada como
export NAME='value'. - Edite uma com Editar variável, ou apague-a, o que envia
unset.
Você não pode, e por quê
- Ter certeza de que a lista corresponde à sua sessão aberta: ela é lida por um shell separado, então uma variável que você definir à mão com
exportpode não aparecer.De propósito
Gerenciador de aliases
Ferramenta do painel Gerenciador de aliases; menu → Sessão.
Aliases da sessão, listados com alias.
Você pode
- Crie um com Novo alias (letras, dígitos, sublinhado e hífen no nome). Ele é enviado como
alias name='command'. - Toque em um alias para executá-lo, ou apague-o (
unalias). - Toque em um dos quatro aliases Sugeridos (
ll,cls,gs,..).gségit status, que o shell local não consegue executar.
Você não pode, e por quê
- Manter aliases depois que o shell fecha: o PocketCode verifica o
.ashrca cada início de shell e o reescreve se for diferente de um modelo fixo, então as edições nele não sobrevivem.De propósito - Ter certeza de que a lista corresponde à sua sessão aberta: ela é lida por um shell separado.De propósito
Tarefas em segundo plano
Ferramenta do painel Tarefas em segundo plano; menu → Sessão.
Tarefas listadas com jobs -l. Quando não há nenhuma, a janela diz “Sem tarefas em segundo plano” e “Use comando & para executar em segundo plano”.
Você pode
- Encerre uma tarefa (
kill <pid>; um pid igual ou menor que 1, ou o do próprio app, é recusado). - Traga uma tarefa para o primeiro plano (
fg %N).
Você não pode, e por quê
- Ver as tarefas do shell em que você está digitando: a lista vem de um shell separado, então as tarefas que você iniciou com
&na sua aba normalmente não aparecem.De propósito
Snippets e histórico
Comandos reutilizáveis e os comandos que você já executou.
Snippets
Ferramenta do painel Snippets (aquela com que o painel abre); menu → Snippets.
98 comandos prontos em 14 categorias, criados na primeira vez que o terminal roda, mais os seus. No shell local os seis snippets de Pacotes ficam ocultos, então aparecem 92.
Você pode
- Filtre por chip de categoria (Sistema, Docker, Git, Nginx, Node/PM2, Banco de dados, Segurança, Deploy/CI-CD, Monitoramento, Rede, Pacotes (somente em abas SSH), Arquivos, Texto, Usuários, Personalizado) e por pasta.
- Toque em um snippet para colocar o comando dele na barra de entrada. Ele só roda quando você o envia.
- Crie um com Novo snippet: nome, comando, categoria, descrição e pasta. Gerar com IA transforma uma frase como “encontrar arquivos maiores que 100MB” em um snippet. Precisa de um provedor de IA conectado e pede consentimento na primeira vez.
- Mova um snippet para uma pasta, crie ou apague pastas e apague snippets.
- Use marcadores:
${DATE}(yyyy-MM-dd),${DATETIME}(yyyy-MM-dd_HH:mm:ss) e${TIMESTAMP}(milissegundos) são preenchidos quando você toca no snippet.${HOST},${USER}e${PORT}são preenchidos em uma aba aberta a partir de um host salvo. Qualquer outra coisa fica como foi escrita, exceto as variáveis de ambiente do grupo ou do perfil de um host salvo. - Salvar até 10 snippets seus no plano Grátis: os 98 embutidos não contam para o limite.
Você não pode, e por quê
- Ter mais de 10 snippets seus no plano Grátis. Os 98 embutidos não contam, então o botão + (que tem a marca PRO) só abre Terminal Pro quando você já tem 10 seus. Uma importação que traz snippets para no mesmo limite.Pro
- Ver os snippets de Pacotes no shell local: não há gerenciador de pacotes para executá-los.Google Play
- Preencher
${HOST},${USER}ou${PORT}em uma aba local: sem host, eles ficam como foram digitados.De propósito
Histórico de comandos
Ferramenta do painel Histórico de comandos; menu → Sessão.
Os comandos que você enviou pela barra de entrada desta aba.
Você pode
- Busque com Buscar comandos….
- Marque um comando com estrela para mantê-lo em Favoritos.
- Execute um comando de novo, ou apague-o.
- Toque em Limpar. A caixa de diálogo diz “Isso removerá todos os comandos do histórico desta aba. Os favoritos serão mantidos.”
Você não pode, e por quê
- Manter o histórico depois que a aba fecha ou compartilhá-lo entre abas: ele guarda os últimos 100 comandos por aba e fica na memória.De propósito
- Ver o que você digitou direto no shell: só os comandos enviados pela barra de entrada são registrados.De propósito
Automação (Pro)
Scripts rápidos, Macros de teclado e Regras Expect são Pro: a trava está em salvá-los, e em executar um Script rápido. No Grátis as janelas abrem, mostram uma marca PRO, e Terminal Pro aparece quando você tenta salvar. O paywall os lista como Automação avançada (regras Expect, Watchdog, macros).
Scripts rápidos
Ferramenta do painel Scripts rápidos; menu → Automação.
Scripts de várias linhas que você envia à sessão com um toque.
Você pode
- Crie um script com Novo script (nome, descrição e o texto do script), busque, edite e apague.
- Toque em Executar: cada linha é enviada à sessão com 150 ms entre elas. Linhas em branco e linhas que começam com
#são ignoradas.
Você não pode, e por quê
- Salvar ou executar um script sem Pro.Pro
- Parar um script no meio, ou organizar scripts por categoria: não há botão de parar e o formulário não pede categoria.Ainda não
Macros de teclado
Ferramenta do painel Macros de teclado; menu → Automação.
Uma sequência de teclas com nome, enviada à sessão como bytes brutos.
Você pode
- Adicionar macro: um nome, a Sequência de teclas e uma descrição opcional.
- Toque em uma macro para enviá-la, ou apague-a.
- Use estes escapes na sequência, e só estes:
\n(Enter),\t(Tab),\x1b(ESC),\x03(Ctrl+C),\x04(Ctrl+D) e\x1a(Ctrl+Z).
Você não pode, e por quê
- Criar uma macro sem Pro.Pro
- Pôr botões de macro na barra de entrada: as macros só rodam a partir desta janela.Ainda não
Regras Expect
Ferramenta do painel Regras Expect; menu → Automação.
Quando um padrão aparece na saída, o PocketCode digita uma resposta por você. As regras são verificadas linha a linha na saída de toda sessão aberta, e só a primeira regra que combina com uma linha responde.
Você pode
- Adicionar regra: um Padrão a detectar, Usar regex (desligado significa que a linha contém o texto, ignorando maiúsculas e minúsculas; ligado significa que a expressão regular é encontrada em qualquer ponto da linha), uma Resposta automática e uma descrição.
- Ligue ou desligue uma regra, ou apague-a.
Você não pode, e por quê
- Criar uma regra sem Pro.Pro
- Acrescentar uma quebra de linha à resposta: o PocketCode já pressiona Enter depois dela (a janela diz “A resposta será enviada automaticamente + Enter”), então um
\na enviaria duas vezes.De propósito
Perfis
Os perfis são a parte menos acabada do terminal. Estão listados aqui porque a janela está no painel e no menu.
Ferramenta do painel Perfis; menu → Segurança.
Uma lista de Perfis de terminal. Cinco vêm com o app: Default, Bash, Dev (Node), Docker e Python Env.
Você pode
- Crie, edite, duplique e apague perfis, e marque um como padrão.
- Preencha nome, tipo de shell, caminho do shell, diretório de trabalho, tema, tamanho da fonte, comandos de inicialização, variáveis de ambiente, scrollback, sinal sonoro, ícone e cor.
- Toque em Iniciar para abrir uma aba e enviar os comandos de inicialização do perfil.
Você não pode, e por quê
- Manter um perfil: os perfis não são gravados no armazenamento, então não conte com eles depois que o app reiniciar.Ainda não
- Ter o tipo de shell, o tema, a fonte, o ambiente ou o diretório de trabalho aplicados: Iniciar faz pouco mais do que abrir uma aba e enviar os comandos de inicialização.Ainda não
- Criar um perfil para um host SSH: o formulário não tem seletor de host.Ainda não
- Executar os comandos dos perfis de fábrica: Docker e Python não estão no shell local.Google Play
Gravação e registros
Duas formas de guardar o que uma sessão imprimiu. Ambas são Grátis.
Gravação
Ferramenta do painel Gravação; menu → Sessão → Iniciar gravação.
“Guarda a sessão como um ficheiro .cast do asciinema que podes reproduzir depois.” O arquivo é asciicast v2, chamado session_<name>_<date>.cast, e não é criptografado.
Você pode
- Iniciar gravação e Parar gravação na aba em foco. O chip REC aparece enquanto ela roda.
- Veja seus arquivos em Gravações guardadas.
- Encontre a gravação também em Registros de sessão: ela é salva no mesmo armazenamento, então dá para marcá-la e compartilhá-la ali, e ela conta para o limite de 100.
Você não pode, e por quê
- Reproduzir uma gravação dentro do app: ela só é listada. Reproduza-a com o asciinema em outro lugar.Ainda não
Registros de sessão
Ferramenta do painel Registros de sessão; menu → Configurações.
Um registro em texto simples de tudo o que uma sessão imprimiu, guardado criptografado no dispositivo (AES-256-GCM, com uma chave mantida no Android Keystore). O texto simples só existe enquanto o registro está ativo; ao parar, o arquivo é selado.
Você pode
- Iniciar registro e Parar registro. O chip LOG aparece enquanto ele roda.
- Use Marcar em um registro (uma estrela), adicione um Comentário (“O que aconteceu, por que importa”) e mostre Somente marcados.
- Compartilhar um registro: ele é descriptografado em uma cópia temporária e entregue à janela de compartilhamento do sistema.
Você não pode, e por quê
- Guardar mais de 100 registros: os mais antigos são descartados, exceto os que você marcou.De propósito
- Buscar registros por texto ou data: você só vê a data de cada registro e o filtro de marcados.Ainda não
Compartilhe seu servidor de desenvolvimento
Um link público para o servidor de desenvolvimento que roda no seu celular.
Ferramenta do painel Partilha o teu servidor; menu → Sessão.
Com um servidor de desenvolvimento rodando no celular (iniciado a partir de um projeto), a janela diz “Dá um endereço público ao servidor que corre neste telemóvel, na porta N”. O link sai por um encaminhamento remoto SSH para o localhost.run: sem conta e sem software extra.
Você pode
- Toque em Criar ligação e depois em Copiar ligação. Se falhar, Tentar de novo.
- Toque em Parar de partilhar quando quiser. O link também fecha sozinho quando o servidor de desenvolvimento para.
Você não pode, e por quê
- Compartilhar sem um servidor: a janela diz “Não há nenhum servidor a correr. Abre um projeto primeiro.”De propósito
- Manter o mesmo endereço ou usar seu próprio domínio: o link é temporário (“muda de cada vez e termina ao parar de partilhar”) e qualquer pessoa com ele alcança o servidor enquanto o compartilhamento estiver ligado.Terceiros
- Compartilhar offline.Precisa de rede
Explicar com IA
Ajuda em linguagem simples quando um comando falha.
O botão de brilho (Explicar com IA) na barra de entrada. Ele só aparece quando a saída mais recente parece uma falha.
O PocketCode envia as últimas 40 linhas da aba (8 KB no máximo) ao seu provedor de IA conectado, com os segredos mascarados antes, e mostra a resposta em Explicação da IA: o que falhou, por quê e o que executar em seguida. Ele espera até 60 segundos. Você usa o seu próprio provedor, então isso não custa nada ao PocketCode.
Você pode
- Leia a explicação e toque em Copiar a explicação.
- Leia a linha sob o título: “As últimas 40 linhas são enviadas ao seu provedor de IA, com os segredos ocultados.”
Você não pode, e por quê
- Usá-lo sem um provedor de IA conectado em Configurações: a janela diz “Nenhuma explicação chegou. Verifique se há um provedor de IA conectado em Configurações e tente de novo.”Precisa de rede
- Executar por um botão o comando que a IA sugere: a janela só o mostra e o copia. O texto não é salvo.De propósito
Aparência
Cores e fontes não são definidas no próprio Terminal.
- Em Configurações, em Aparência, abra Aparência do terminal: tema, fonte, tamanho do texto, papel de parede e opacidade do fundo.
- Há 11 temas de terminal mais Igual ao app, que acompanha o app (12 cartões no seletor). Cinco são grátis (Igual ao app, PocketCode Dark, PocketCode Light, Dark e Light) e sete são Pro (Dracula, Solarized Dark, Monokai, One Dark, Catppuccin Mocha, Gruvbox Dark e Nord). Os temas de terminal instalados pelo Marketplace também são Pro.
- Fazer pinça na saída também muda o tamanho do texto (8 a 24).
SSH, SFTP e ferramentas remotas
A tela SSH, o SFTP e tudo o que é remoto têm sua própria página. Eles compartilham a barra de abas, o painel e o menu que você acabou de ler, com mais 12 ferramentas (32 no total).
- Onde fica: hosts e grupos, Conexão rápida, chaves de host e login interativo por teclado, chaves SSH (inclusive chaves vinculadas ao dispositivo), SFTP, encaminhamento de portas, Watchdog, Webhooks, o gerenciador de pacotes, provedores de nuvem, serial e área de trabalho remota.
- Também neste painel: Sincronização e equipes e Importar / Exportar aparecem na lista de ferramentas locais também. Estão descritos na página de SSH. Em Sincronização e equipes, hospedar, procurar ou entrar em uma sala de equipe faz o Android pedir a permissão de rede local (dispositivos próximos) a partir do Android 13, e a explicação dessa permissão e os erros de conexão aparecem no idioma do app.
- Pro nas abas remotas: um segundo host salvo, um segundo encaminhamento de portas, Broadcast, Watchdog e Webhooks. Os limites deles estão na página de SSH.
Grátis e Pro
O que o terminal local restringe. Todo o resto é Grátis.
| Recurso | Grátis | Pro |
|---|---|---|
| Sessões ativas ao mesmo tempo, por tela (Terminal e SSH têm cada uma a sua vaga) | 1 | Sem limite |
| Tela dividida | Não incluída | Incluída |
| Criar Macros de teclado, Scripts rápidos e Regras Expect (e executar Scripts rápidos) | Não incluído | Incluído |
| Seus próprios snippets | Até 10; os 98 embutidos não contam. Passando de 10, adicionar ou importar um abre Terminal Pro | Sem limite |
| Temas de terminal | 4 embutidos mais Igual ao app | Todos os 11 mais Igual ao app, mais temas do Marketplace |
| Fontes do terminal | Somente Default | Default e mais 7 |
| Shell local, ferramentas Linux, Painel Git, histórico, aliases, ambiente, gravação, registros de sessão, Partilha o teu servidor, Explicar com IA, Perfis | Incluído | Incluído |
Privacidade e segurança
- O shell local roda com as permissões do próprio PocketCode e não é uma sandbox. Um aviso (Sobre este terminal) diz isso na primeira vez que você o usa.
- Seus projetos estão em
~. As janelas das ferramentas ficam dentro dessa pasta e nunca abrem as pastas que guardam credenciais do app. - Os registros de sessão são criptografados no dispositivo com AES-256-GCM e uma chave do Keystore. As gravações são arquivos
.castem texto simples. Compartilhar um registro o descriptografa em uma cópia temporária. - O histórico de comandos fica na memória, os últimos 100 comandos por aba, e não é gravado em disco.
- Um comando enviado pela barra de entrada que lê um repositório de credenciais e também envia dados para fora gera um aviso antes de ser executado.
- Um programa não consegue escrever na sua área de transferência sem uma confirmação (OSC 52).
DATABASE_URLe as variáveisPG*do motor PostgreSQL local são definidas apenas no shell local, e somente enquanto o motor roda. Nunca são enviadas às sessões SSH.- O que sai do dispositivo de propósito: Explicar com IA envia as últimas 40 linhas, com os segredos mascarados e depois de um consentimento único, ao provedor de IA que você conectou. Gerar com IA nos snippets envia a sua frase ao mesmo provedor. Partilha o teu servidor passa pelo localhost.run enquanto o compartilhamento está ligado.
Limitações
Os principais limites do terminal local, cada um com seu motivo. O detalhe está nas seções acima.
- Programas que redesenham a tela (
vi,top,less) não aparecem como tela cheia.De propósito - Sem gerenciador de pacotes,
git,python,docker,curl,sshouzipno shell.Google Play - Sem root e sem distribuição Linux: o shell tem o usuário do próprio app.Dispositivo
- O PocketCode roda em dispositivos de 64 bits (arm64-v8a e x86_64) com Android 9 ou superior. Não há build de 32 bits.Dispositivo
- Uma sessão por vez no Grátis, e sem tela dividida, macros, scripts nem regras expect.Pro
- Não há fileira de teclas extras (ESC, TAB, Ctrl, F1 a F12), e os caminhos de arquivo na saída não abrem.Ainda não
- Os perfis não são salvos e a maioria dos campos deles não é aplicada; as gravações não podem ser reproduzidas no app.Ainda não
- As listas de ambiente, aliases e tarefas são lidas por um shell separado, não pela sua sessão aberta.De propósito
- Em um tablet largo com o painel acoplado, o menu de ferramentas (e o seu interruptor de Botões de volume) não aparece.Dispositivo
- Um link de Partilha o teu servidor é temporário e precisa de conexão.Terceiros
Solução de problemas
Shell básico
O cartão Shell local diz Shell básico quando ainda não encontra o ash do BusyBox. O BusyBox é vinculado na primeira vez que você abre um shell, e de novo depois de uma atualização do app, então abra o shell local uma vez e volte: ele deve passar a dizer Ferramentas Busybox prontas. Até lá você tem o sh do próprio Android, que não tem applets como awk e tar.
Terminal Pro
Você pediu algo que o Grátis não inclui: uma segunda sessão na mesma tela, tela dividida, salvar uma Macro de teclado, um Script rápido ou uma Regra Expect, adicionar um 11º snippet seu ou, no SSH, um segundo host salvo ou encaminhamento de portas. Continuar com plano básico fecha o aviso; Desbloquear Terminal Pro abre o paywall.
O + em Snippets abre o Terminal Pro
Você já tem 10 snippets seus, o limite do Grátis; os 98 embutidos não contam. Exclua um para abrir espaço, ou desbloqueie o Terminal Pro. Você ainda pode tocar em qualquer snippet embutido para usá-lo.
Não há repositório Git aqui
O Painel Git procura uma pasta .git a partir da pasta atual do Gerenciador de arquivos, subindo, ou a partir da sua pasta de projetos. Abra o Gerenciador de arquivos na pasta do seu projeto, ou toque em Inicializar repositório.
Nenhuma explicação chegou. Verifique se há um provedor de IA conectado em Configurações e tente de novo.
Explicar com IA precisa de um provedor com chave ou login. Conecte um nas configurações de IA e tente de novo. Ele também desiste depois de 60 segundos.
Não foi possível gerar um snippet — tente reformular
Gerar com IA espera um pedido em uma frase e responde com um nome, um comando de uma linha e uma descrição. Diga o que você quer fazer, não o comando que você imagina.
Não há nenhum servidor a correr. Abre um projeto primeiro.
Partilha o teu servidor compartilha o servidor de desenvolvimento que o seu projeto iniciou. Inicie o servidor a partir do projeto primeiro; a janela então mostra a porta dele.
O comando lê credenciais e envia dados para fora
O comando que você está prestes a executar toca um repositório de credenciais e também envia dados para a rede. Se você o copiou de algum lugar, leia-o antes de tocar em Executar mesmo assim.
Copiar para a área de transferência?
Um programa da sessão pediu para colocar texto na sua área de transferência. Toque em Copiar só se foi você que pediu.
Abre uma shell ou liga-te a um host para gravar
Gravação grava a aba em foco. Abra primeiro um shell local e depois inicie a gravação.
Não foi possível anexar o arquivo / Não foi possível preparar o registro para compartilhamento
O arquivo não pôde ser copiado para a sessão, ou um registro não pôde ser descriptografado para compartilhar. Tente de novo; se continuar falhando, escolha outro arquivo ou pare e reinicie o registro.
Não há botão Explicar com IA
O botão só aparece quando a saída mais recente parece uma falha. Execute de novo o comando que falhou, ou leia a explicação a partir da última saída com falha.
Meu alias ou variável sumiu em um shell novo
Aliases e variáveis que você cria pelas janelas existem só naquela sessão; o PocketCode restaura o .ashrc a cada início. Ponha um comando repetido em um Script rápido (Pro) ou em um snippet.
Próximos passos