Documentação
Entenda a arquitetura, o modelo de segurança e como começar.
O que é o SShvTerm
O SShvTerm é um cliente SSH desktop multiplataforma com sincronização em nuvem zero-knowledge. Ele gerencia hosts, identidades, chaves, grupos, tags, snippets e regras de port forwarding, com um terminal de alta qualidade. Os campos sensíveis são cifrados no cliente, e o servidor nunca vê a sua senha nem a sua chave de cifra.
Arquitetura
O SShvTerm é dividido em três camadas. O frontend nunca fala direto com a nuvem ou com o SSH: tudo passa por um agente local que mantém a chave de cifra apenas em memória.
Frontend (desktop)
A casca do aplicativo, a interface e o terminal (xterm.js).
Agente local (sidecar)
Backend local que cuida de autenticação, sincronização, cofre e das sessões SSH. Roda apenas em 127.0.0.1.
Servidor de sincronização
Peça separada e auto-hospedável que guarda apenas blobs cifrados — nunca dados em claro.
Modelo de segurança
A criptografia é zero-knowledge: a chave de cifra deriva da sua senha e vive somente na memória do agente local. Campos sensíveis são cifrados com RNCryptor (AES-256-CBC + HMAC-SHA256) antes de qualquer sincronização. As conexões SSH usam verificação TOFU de host key — a impressão digital é fixada na primeira conexão e qualquer divergência bloqueia a sessão para barrar ataques MITM.
Agente de IA
O agente é opcional e começa desligado. Ativado, ele pode ler (com a sua permissão) as últimas linhas do terminal focado, sugerir o próximo passo e — com a execução ⚡ ligada — operar o terminal: o comando é digitado na sessão visível da aba, nunca numa shell oculta. A chave de API de cada provedor é sua (BYOK) e fica cifrada no cofre, como qualquer outro segredo.
Como um comando acontece
-
1. Você pede
Em linguagem natural, no chat do agente, com o host da aba escolhido.
-
2. O modelo propõe
Provedores com function-calling devolvem uma chamada estruturada (propose_command); modelos só-texto usam a ponte de texto (bloco ```run). Os dois caminhos convergem no mesmo executor.
-
3. A sua política decide
Regras de permitir, perguntar ou negar, configuráveis no Settings. Na dúvida, o agente mostra o comando exato e espera a sua aprovação.
-
4. Você vê acontecer
O comando é digitado no terminal da aba; a saída (stdout, stderr, exit code) volta ao modelo, que responde com o resultado. Conversas e comandos ficam na auditoria.
Provedores e modelos
Anthropic (Claude), ShvIA (Blue3) e qualquer endpoint OpenAI-compatible — Ollama local, LM Studio, vLLM e afins. Para tools nativas o modelo precisa suportar function-calling (ex.: Claude, qwen3, llama3.1); quando não suporta, a ponte de texto assume automaticamente.
Primeiros passos
-
1. Baixe o aplicativo
Instaladores para macOS (.dmg), Windows (.msi) e Linux (.AppImage / .deb).
-
2. Crie a sua conta
A sua senha gera a chave de cifra. Guarde-a bem: sem ela, ninguém — nem o servidor — recupera os seus dados.
-
3. Adicione um host e conecte
Cadastre o servidor, escolha uma identidade ou chave e abra o terminal. Tudo é sincronizado cifrado.
Diretório de dados local
Hosts, identidades, chaves SSH e os host keys confiáveis (TOFU) ficam no diretório de dados local do aplicativo, na sua máquina.
~/.sshvterm/
Backend de nuvem
Por padrão o cliente fala com o backend hospedado. Quem prefere controle total pode apontar para um servidor próprio — a implementação de referência é auto-hospedável.
API pública
O site expõe uma API pequena, sem autenticação, para downloads e auto-update do aplicativo. Todas as respostas são servidas em HTTPS por sshvterm.com.
GET /api/update/{target}/{arch}/{versao_atual}
Verificação de atualização (formato do updater do app). target: linux, darwin ou windows; arch: x86_64 ou aarch64; versao_atual no formato X.Y.Z. Responde 200 com o manifesto JSON quando existe versão mais nova assinada, ou 204 (sem corpo) quando você já está na última versão.
$ curl https://sshvterm.com/api/update/darwin/aarch64/0.5.20
{
"version": "0.5.28",
"notes": "...",
"pub_date": "2026-06-11T21:30:00+00:00",
"url": "https://sshvterm.com/d/61",
"signature": "...assinatura minisign do instalador..."
}
GET /d/{id}
Download de um instalador específico — redireciona (302) para o arquivo hospedado no site. Os links de cada plataforma e o SHA-256 para verificação de integridade estão na página de Downloads.
A sincronização do aplicativo usa uma API separada e autenticada por token, que transporta apenas blobs cifrados no cliente (zero-knowledge) — o servidor não consegue decifrá-los. Ela não é uma API pública: o contrato é versionado junto com o app e pode mudar entre releases.