Resumo: O TERMINAL//NG é o novo projeto open source da Plugged Ninja: um cliente SSH pela web que parece um cyberdeck saído de um cyberpunk RPG — só que profundamente funcional. Ele une um terminal xterm.js completo, um dashboard visual que interpreta a saída de comandos em tempo real, um copilot de IA (Claude, Gemini, OpenAI, modelos locais), navegador SFTP com editor embutido, browser interno que roda até via SSH, proteção contra comandos destrutivos, 20 temas e trilha sonora sintetizada. Tudo num único binário Node, sem serviços externos, licença MIT.
Quem administra Linux passa a vida em três abas do navegador e cinco janelas de terminal ao mesmo tempo. O TERMINAL//NG — “SSH cyberdeck for Linux operators”, como o próprio README define — resolve isso empacotando terminal, browser, editor de arquivos, dashboard de saúde e assistente de IA numa única interface web, tudo pendurado na mesma sessão SSH. É a resposta que a comunidade brasileira de infra estava dando desde o Termius fechar recursos importantes atrás de paywall e o Warp virar puro AI-first para desenvolvedor Mac.
O projeto acaba de ser publicado no GitHub sob a organização PluggedNinja/terminal-ng, com licença MIT, stack Vite + React no frontend e Node com Express, ws e ssh2 no backend. Não há banco de dados: tudo mora em pequenos arquivos JSON dentro de server/data/. Não há serviço externo obrigatório: sobe em npm start, escuta em uma única porta (3001 por padrão) e pronto — UI, API REST e WebSocket SSH compartilham a mesma origem, o que elimina uma classe inteira de bugs chatos de proxy reverso.
A estética entrega a promessa do nome: fundo escuro, tipografia monoespaçada com brilho neon âmbar-laranja, HUD com CPU/RAM/portas na base, painel de sessões salvas à esquerda, painel de agente IA à direita. É bonito de doer. Mas o que impressiona não é o visual — é a ideia por trás.
Aqui está o diferencial que ninguém mais entrega: o painel Diag. Você roda um comando comum — ss -tulpn, ip addr, df -h, ps aux, vmstat 1, journalctl -f, ls -la /etc/apache2/sites-enabled/ — e o TERMINAL//NG detecta o formato de saída e monta automaticamente uma visualização em cima daquilo, sem que você troque de janela, sem plugin, sem tela extra.
ss/netstat, ip addr/route, iptables/nft viram tabela sortável com destaque para portas escutando e conexões estabelecidas.vmstat, iostat, mpstat desenham sparklines ao vivo enquanto rodam. Você vê o gargalo de I/O acontecendo em tempo real.journalctl, dmesg, auth.log, syslog, logs do Apache e Nginx ganham um severity chart (FATAL/ERROR/WARN/INFO/DEBUG) e destaque colorido. O tail -f é parseado ao vivo.df, lsblk, fdisk, LVM, du, smartctl, systemctl e systemd-analyze ganham visualização de partições, uso e árvore de dependência.ls -la vira tabela clicável. Arquivos .conf, .yaml, .toml abrem direto no editor embutido.Some a isso o error hints: quando um comando falha por permissão negada, disco cheio, porta ocupada ou DNS quebrado, o painel aponta exatamente qual parâmetro você digitou errado. A tradução de exit codes avisa que 137 é OOM killer e 143 é SIGTERM. E o config helper mostra o valor default e a descrição da diretiva embaixo do seu cursor enquanto você edita sshd_config, nginx.conf, fstab, sysctl.conf, postgresql.conf, haproxy.cfg, netplan, docker-compose.yml, .env, crontab — este último traduzido para linguagem natural com as próximas execuções calculadas. É o tipo de assistência que operador sênior demorou dez anos para incorporar como reflexo, entregue a quem está começando na primeira semana.
A parte do AI copilot respeita o operador. Nada é enviado a modelo externo por padrão. Você escolhe o provedor em Settings → IA: Claude da Anthropic, Gemini do Google, OpenAI, ou qualquer API compatível com OpenAI — Groq, OpenRouter, DeepSeek, Mistral, Ollama local ou endpoint customizado. Dá até para logar via ChatGPT (Codex OAuth). As chaves são armazenadas criptografadas no perfil do usuário e nunca são reexibidas.
O copilot opera em três modos: chat ancorado na saída recente do terminal; Auto-Pilot (⚡) que explica todo comando executado — somente quando ativado; e o Agent mode, que roda diagnósticos read-only rumo a um objetivo declarado e reporta achados + correções sugeridas, com níveis de bloqueio de segurança e trilha de auditoria completa. Fora da caixa, sem chave configurada, o sistema roda em modo heurístico local — dá para virar operacional imediato numa VM isolada sem contato com nuvem.
“O AI Auto-Pilot só manda a saída de comando pro modelo que você configurou quando você liga a chave.” — README do projeto
Esse tipo de contrato explícito é raro. Ferramenta ganha adoção em SOC/NOC brasileiro justamente por respeitar essa fronteira. Ninguém quer que a saída de journalctl -u strongswan em um servidor de VPN corporativo vá parar num prompt público.
O projeto ostenta um SECURITY-REVIEW.md — coisa rara em ferramenta pessoal e sinal de maturidade. Pontos que valem sublinhar:
localStorage. Isso mata a exfiltração via XSS.TNG_ENC_KEY. Salvar senha SSH continua desligado por padrão.169.254.169.254 (metadata de nuvem).rm -rf /etc, mkfs, dd of=/dev/sda, fork bomb, chmod -R 777 / exigem confirmação modal antes de executarem. E — importante — rm -rf node_modules não é bloqueado. O time acertou a linha entre paranoia útil e frustração inútil.Em NODE_ENV=production, o backend se recusa a subir se JWT_SECRET, TNG_ENC_KEY e ADMIN_PASSWORD não estiverem fortes (mínimo 32 caracteres nas duas primeiras, mínimo 12 na senha do admin e proibição explícita de “admin”). Isso previne o clássico “deployei o CTF acidentalmente com senha padrão em produção” que todo mundo já viu em relatório de bug bounty.
sudo quando o arquivo pertence ao root e o shell está elevado.curl no host remoto para alcançar painéis internos que só o servidor enxerga. Isso é ouro para chegar num Grafana atrás de VPN sem abrir sessão gráfica.Time de infra brasileiro convive com uma pilha comum: Ubuntu ou Debian em VPS, Apache ou Nginx à frente, Postfix/Dovecot para e-mail, PostgreSQL ou MySQL, tudo administrado por SSH. As diretivas que o config helper do TERMINAL//NG conhece — sshd_config, nginx, fstab, sysctl, postgresql.conf, haproxy, netplan, docker-compose, .env, crontab — cobrem praticamente 90% do dia a dia. Adicione o parser de auth.log com severity chart e você tem um triage rápido de tentativas de brute-force sem sair do terminal. Adicione o Agent mode em cima de um Ollama local (Llama 3 ou Qwen no servidor de laboratório) e você tem um assistente que não sai da sua rede — algo raro num mundo dominado por SaaS.
Para operadoras e provedores de hospedagem regionais, o TERMINAL//NG também abre caminho para um painel de suporte tipo “webmin de operador” moderno. Já vimos organizações brasileiras montando cyberdecks internos em cima de tmux + tui-forks — o TERMINAL//NG entrega isso pronto e bonito, e como é MIT, dá para fazer fork e customizar.
Cinco linhas e você está dentro:
git clone https://github.com/PluggedNinja/terminal-ng.git
cd terminal-ng
cp .env.example .env # gere segredos fortes: node -e "console.log(require('crypto').randomBytes(48).toString('base64url'))"
npm install
npm start # sobe UI + API + WS SSH na porta 3001 Abra http://localhost:3001, entre com o admin seedado, cadastre seu host preferido no vault e comece a testar. Rode um ss -tulpn, journalctl -f, iostat 1 e veja o painel Diag reagir em tempo real. Configure sua chave da API no Settings e experimente o Agent mode em um servidor de laboratório.
Sendo justo: o projeto é novo. No momento em que esta matéria foi publicada, o repositório mostra dois commits, zero stars, zero releases marcadas. O backend expõe muita funcionalidade — SSH, SFTP, proxy web, brokering de IA — o que é uma superfície de ataque significativa se você deixar exposto à internet sem VPN, HTTPS reverso e MFA. A recomendação da própria doc é clara: use com CORS restrito e origens conhecidas, e nunca exponha sem NODE_ENV=production e segredos fortes. Como toda ferramenta de operações, deploy inseguro é a única forma de ela virar sua ruína.
Também vale considerar: recursos como Agent mode e Auto-Pilot podem, se mal configurados, mandar saída sensível para modelo de terceiros. O contrato explícito da UI resolve isso, mas exige disciplina. Em ambiente regulado (bancário, saúde, jurídico), a primeira coisa é apontar o AI provider para um Ollama local ou desligar o copilot.
Ferramentas como Warp, Tabby e Termius mostraram que existe apetite grande por terminais modernizados. O que separava esses produtos de uma adoção universal era: lock-in de nuvem, modelo de negócio SaaS e foco de desenvolvedor macOS. O TERMINAL//NG entrega essencialmente a mesma proposta — talvez mais rica na parte de parsing de saída — sem nenhum desses três pontos. É self-hosted, é MIT e é voltado ao operator, não ao desenvolvedor front-end. Isso o coloca num nicho quase vazio: administradores Linux que querem interface bonita e soberania sobre seus dados. Se o projeto ganhar tração e uma pequena comunidade de plugins, tem tudo para virar o “Portainer do SSH” — a comparação é generosa mas não absurda.
Se você opera Linux por SSH — seja um único VPS pessoal, seja um cluster de 500 hosts — o TERMINAL//NG merece meia hora do seu dia. Suba num laboratório, plugue seus servidores mais próximos e sinta na pele o que “parser ao vivo” faz na sua rotina. Os ganhos aparecem na primeira sessão: você para de digitar man iostat, para de decorar diretivas de sysctl, para de alt-tabar para o Grafana só para ver load average.
É um projeto brasileiro (feito pela Plugged Ninja) que ombreia com o que há de melhor no exterior em UX de terminal — e faz isso sem SaaS, sem lock-in, sem “cadastre seu cartão para experimentar”. Bota estrela no repo, testa, abre PR. Ferramentas assim não aparecem toda semana.
CISA dá prazo de três dias para agências federais patcharem falhas de RCE em Adobe…
A segunda maior operadora do Japão fecha a apuração forense de um ataque que expôs…
Elastic Security Labs revela SCMBANKER, kit modular em PowerShell que usa ClickFix, falsa tela azul,…
Modelos de raciocinio pensam sozinhos, mas ainda respondem melhor com prompts bem estruturados. Cinco templates…
Anthropic descreve um workspace silencioso dentro do Claude compativel com a Global Workspace Theory. O…
A startup australiana Springboards apresenta Flint, LLM treinado para gerar respostas realmente diferentes. Como funciona…