Guia do usuário Sugestões de comandos e IA

Sugestões de comandos e IA

Sugestões em linha

Enquanto você digita um comando em qualquer painel de terminal (local, SSH, Telnet, Mosh ou serial), o PlexusTerm desenha em cinza, depois do cursor, o restante de um comando que você já executou. As sugestões vêm do seu próprio histórico de comandos, então funcionam sem nenhuma IA configurada: primeiro os comandos do mesmo host, depois os de todos os hosts, os mais recentes e mais usados primeiro.

  • Seta para a direita ou End, com o cursor no fim da linha, aceita a sugestão inteira; Ctrl+Seta para a direita aceita a próxima palavra dela. O texto aceito é enviado como se fosse digitado, então a multiexecução e a gravação de macros também o veem.
  • Todas as outras teclas chegam ao shell como de costume: Tab continua sendo o complemento do próprio shell.
  • As sugestões ficam em pausa até o próximo Enter assim que o PlexusTerm não pode mais ter certeza do que a linha contém: depois de Seta para cima/Seta para baixo (histórico do shell), Ctrl+R, complemento com Tab, a seta para a esquerda ou outras teclas de cursor, atalhos com Alt, ou uma colagem com várias linhas. Elas também ficam ocultas em programas em tela cheia (vim, less, top), em pedidos de senha e de frase secreta, enquanto o painel está rolado para trás ou sem foco, e quando o shell desenha algo depois do cursor (um prompt à direita, ou outro plugin de autossugestão).

Cada comando enviado com Enter é registrado neste computador em history.json na pasta de configuração do app (legível somente por você), por host (user@host:port para SSH e Mosh, telnet:host:port, serial:device, local), sem duplicatas e limitado a 2000 comandos por host e 200 hosts. Nunca são registrados: as linhas que começam com um espaço, qualquer coisa digitada em um pedido de senha, frase secreta, PIN ou código de uso único (reconhecido nos dez idiomas da interface e em russo, como o sudo, o ssh, o PAM, o cryptsetup e o gpg os mostram), qualquer coisa digitada em um programa em tela cheia, e os comandos que chegam a um painel apenas pela multiexecução.

A seção IA das Configurações contém:

  • Sugestões em linha (ativado por padrão): as sugestões em cinza acima.
  • Histórico de comandos (ativado por padrão): registra os comandos e sugere a partir deles. Limpar histórico esvazia history.json na hora.
  • Sugestões de IA (desativado por padrão): quando o histórico não tem nada para a linha digitada, consulta o provedor de IA (veja Sugestões de IA).
  • Provedor: Anthropic, Gemini, OpenAI, Compatível com OpenAI ou OpenCode Go; URL base para um endpoint compatível com OpenAI (por exemplo http://localhost:11434/v1 para o Ollama).
  • Modelo (Anthropic: claude-opus-5-5, Gemini: gemini-3.5-flash-lite, OpenAI e compatíveis: preencha com o seu modelo; OpenCode Go: escolha um da lista, veja OpenCode Go). Mudar o provedor enquanto o modelo ainda é um padrão de provedor o troca pelo padrão do novo provedor.
  • Chave de API: armazenada no chaveiro do sistema, uma por provedor. O campo só mostra se há uma chave salva; Salvar chave e Remover chave se aplicam na hora.
  • Comandos do histórico enviados como contexto (0-20, padrão 5).
  • Atalho do assistente (padrão Ctrl+Shift+Space): clique no campo e pressione a nova combinação; Esc mantém a atual. Ela precisa de Ctrl, Alt ou Meta, e as combinações que o PlexusTerm já usa são recusadas.

Sugestões de IA

Com Sugestões de IA ativado, quando o histórico não tem sugestão para a linha digitada, o PlexusTerm espera uma breve pausa na digitação (cerca de 400 ms; digitar de novo a cancela) e pergunta ao provedor de IA como o comando continua. A resposta é desenhada em cinza como uma sugestão do histórico e aceita com as mesmas teclas.

  • Enviado: a linha digitada, o sistema operacional, a pasta atual (só quando o shell a informa por OSC 7) e os últimos comandos do histórico do host (Comandos do histórico enviados como contexto, 0 não envia nenhum; nenhum também enquanto Histórico de comandos está desativado).
  • Nunca enviado: a saída do terminal, qualquer coisa digitada em um pedido de senha ou de frase secreta, qualquer coisa digitada em um programa em tela cheia.
  • Cada painel envia no máximo uma solicitação por vez e no máximo uma por segundo; só a linha mais recente espera, as mais antigas são descartadas.
  • As falhas nunca interrompem a digitação: o painel mostra uma pequena dica cinza no canto inferior direito, como IA: sem chave de API, IA: chave rejeitada, IA: limite de solicitações ou IA: indisponível (passe o mouse sobre ela para ver a mensagem do provedor). Ela some com a próxima resposta.

Provedores e chaves de API

Provedor Modelo padrão Observações
Anthropic (padrão) claude-opus-5-5 API Messages. Com os modelos Claude Opus 5.5, o PlexusTerm permite que a Anthropic tente novamente com um modelo recomendado quando o escolhido não consegue responder (fallback no servidor). Um modelo mais rápido e mais barato pode ser digitado em Modelo.
Gemini gemini-3.5-flash-lite API do Google Gemini.
OpenAI nenhum: digite o seu modelo API da OpenAI.
Compatível com OpenAI nenhum: digite o seu modelo Qualquer endpoint com a API da OpenAI em URL base: Ollama (http://localhost:11434/v1), LM Studio (http://localhost:1234/v1), OpenRouter (https://openrouter.ai/api/v1). Uma chave é opcional; servidores locais geralmente não precisam de nenhuma. Quando a URL base está em opencode.ai, o cabeçalho de sessão do OpenCode também é enviado.
OpenCode Go nenhum: escolha um modelo da lista Só a chave de API é necessária: a lista de modelos e a API de cada modelo vêm do OpenCode (veja abaixo).

As chaves de API são armazenadas somente no chaveiro do sistema (uma por provedor), nunca em settings.json; as Configurações mostram apenas se há uma chave salva. As solicitações vão do backend do PlexusTerm direto para o provedor por HTTPS (ou para a URL base que você definir), identificadas como PlexusTerm/<version>. Os redirecionamentos não são seguidos, então uma chave nunca é repassada a outro host; um redirecionamento aparece como um erro pedindo que você verifique a URL base.

OpenCode Go

Escolha OpenCode Go como provedor e salve sua chave de API do OpenCode; nada mais é necessário.

  • Modelo passa a ser uma lista dos modelos do OpenCode Go com seus nomes. O PlexusTerm a lê da lista pública do OpenCode (https://opencode.ai/inference/go/v1/models) e descobre qual API cada modelo usa pelo models.dev. A lista é guardada por 24 horas em opencode-go-models.json na pasta de configuração do app; Atualizar modelos a busca novamente.
  • Os modelos servidos pelas APIs chat completions, Anthropic messages ou OpenAI responses funcionam. Os modelos na API do Google aparecem como ainda não suportado e não podem ser escolhidos.
  • Se o models.dev não puder ser acessado, todos os modelos são tratados como chat completions e uma nota informa isso; se nada puder ser buscado, a lista salva antes é mostrada, ou você pode digitar um id de modelo.
  • Cada solicitação leva um ID de sessão (x-opencode-session), como o OpenCode pede: um por painel de terminal para as sugestões em linha e um por painel de chat de IA.
  • O OpenCode Go é destinado a agentes de programação e monitora o tráfego; as sugestões de IA em linha enviam muitas solicitações curtas. As Configurações mostram essa nota quando o OpenCode Go está selecionado.

Chat de IA

O chat de IA responde a qualquer pergunta ou pedido em palavras simples (explicações, passos, o que um erro significa, ajuda geral, qualquer assunto), no idioma em que você escreve, e só oferece um comando para o seu terminal quando um for adequado. Pressione Ctrl+Shift+Space (alterável em Configurações → IA → Atalho do assistente; a tecla nunca chega ao shell) ou clique no X do PlexusTerm à esquerda da barra de ferramentas: o terminal em foco é dividido e o chat abre em um painel abaixo dele, vinculado a esse terminal. O X gira uma vez cada vez que o chat abre ou recebe o foco (não quando o sistema pede movimento reduzido).

  • Cada terminal tem no máximo um chat: pressionar o atalho em um terminal que já tem um move o foco para ele; pressioná-lo em um chat volta ao terminal dele. Clicar no X enquanto um chat está aberto (ele ou o terminal dele tem o foco) fecha esse chat, com o mesmo giro do X.
  • O chat conta como um dos 4 painéis da aba. Quando a aba está cheia, um aviso informa isso e nenhum chat abre; feche um painel antes.
  • Digite sua pergunta e pressione Enter ou Enviar (Shift+Enter começa uma nova linha). A conversa rola acima do campo de entrada. Parar cancela a resposta que está sendo aguardada e coloca a pergunta de volta no campo de entrada. Um erro é mostrado abaixo da pergunta a que pertence.
  • As perguntas seguintes enviam as perguntas e respostas anteriores do mesmo chat como contexto: no máximo as últimas 10, e no máximo 16.000 caracteres no total (as mais antigas ficam de fora primeiro). Cada chat é uma conversa (um ID de sessão para o OpenCode).
  • A resposta é mostrada como texto simples: as quebras de linha são mantidas e o código entre cercas ``` é mostrado em blocos monoespaçados; nada nela é tratado como HTML nem executado. Os caracteres de controle e de formatação invisível são removidos (as quebras de linha e as tabulações ficam), e uma resposta com mais de 8000 caracteres é encurtada, terminando com "… (answer shortened)".
  • Quando um único comando de shell faz o que você pediu, ele é mostrado abaixo da resposta com Copiar, Inserir e Executar; caso contrário, não há caixa de comando. Inserir digita o comando no terminal do chat sem Enter e move o foco para lá, então nada é executado até você mesmo pressionar Enter. Executar limpa o que estava digitado pela metade nesse terminal, digita o comando e pressiona Enter; ele se recusa (e avisa) enquanto o terminal está em um pedido de senha ou em um programa em tela cheia como o vim. Copiar o coloca na área de transferência. Nada é executado a menos que você clique em Executar ou pressione Enter. Um comando inserido é registrado no histórico de comandos assim que você o envia com Enter, como um que você digitou. Os comandos sempre voltam em uma única linha, sem caracteres de controle nem caracteres de formatação invisível (como espaços de largura zero ou substituições da direita para a esquerda); um comando com mais de 2000 caracteres fica de fora e só a resposta é mostrada.
  • Quando há texto selecionado no terminal ao abrir o chat, ele é anexado à sua primeira pergunta e mostrado acima do campo de entrada antes de você enviar; no máximo 2000 caracteres são enviados. Clique no × dele para deixá-lo de fora. Com texto ou arquivos anexados, Enviar funciona com o campo de entrada vazio: a pergunta enviada é "Explique isto." (no idioma da interface).
  • Os arquivos soltos no chat são anexados à próxima pergunta: veja Soltar arquivos no chat de IA.
  • Além da sua pergunta, o chat envia o sistema operacional, a pasta atual do terminal (quando conhecida) e os comandos recentes do host, sob as mesmas regras das sugestões de IA; nunca a saída do terminal.
  • O cabeçalho do chat mostra o provedor e o modelo; clique nele para escolher outro modelo em uma lista rolável. A lista contém os modelos de todos os provedores com uma chave de API salva (e do servidor compatível com OpenAI quando a URL base dele está definida; em opencode.ai, só quando esse provedor tem sua própria chave, já que o OpenCode só responde com uma), cada um com o nome do seu provedor, e pode ser filtrada digitando. Escolher um o torna o provedor e o modelo de IA, como em Configurações → IA, para todos os chats e para as sugestões de IA. Um provedor cuja lista não pode ser lida mostra o motivo, e os outros continuam listados.
  • Quando nenhuma chave está salva para o provedor, o chat informa isso e Abrir as configurações de IA abre as Configurações na seção IA, onde a chave é salva.
  • Conversas com a IA (o botão de relógio no cabeçalho do chat) lista as conversas, das mais recentes para as mais antigas, com a primeira pergunta e a data; a atual fica destacada. Clique em uma para continuá-la neste chat (as perguntas, as respostas e a sessão de IA dela voltam), ou na lixeira dela para excluí-la. Com Configurações → IA → Manter as conversas com a IA depois de fechar o PlexusTerm (ativado por padrão), elas são salvas neste computador em ai-chats.json na pasta de configuração do app (só o seu usuário pode lê-lo; no máximo 100, as mais antigas saem primeiro) e listadas de novo depois de reiniciar. Desativado, nada é lido nem gravado e a lista contém só as conversas desta execução. Uma pergunta que ainda aguarda resposta nunca é salva, e os arquivos anexados mantêm só seus caminhos.
  • O chat fecha com o × à direita do cabeçalho, ou com Ctrl+Shift+W enquanto ele tem o foco. Fechar o chat mantém a conversa: abri-lo de novo para o mesmo terminal mostra as perguntas e respostas anteriores e continua a mesma conversa. Nova conversa (o botão de balão de fala ao lado do ×) começa do zero. Uma conversa permanece em Conversas com a IA quando o terminal dela fecha ou o PlexusTerm é encerrado, a menos que guardá-las esteja desativado. Fechar o terminal dele (ou o encerramento do shell) também fecha o chat.
  • O chat nunca faz parte da multiexecução, as macros nunca são reproduzidas nele nem gravam a partir dele, o que é digitado nele não é registrado no histórico de comandos, e enquanto ele tem o foco o navegador SFTP continua acompanhando o terminal dele.