>_ DevTrendspt

Idioma

Início

Linguagens

Seções

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embarcados Segurança
TypeScript

nodeterm transforma uma bagunça de abas do terminal em uma tela infinita

Qualquer desenvolvedor que tenta executar agentes de IA autônomos como Claude Code ou Codex em paralelo com serviços regulares rapidamente encontra o mesmo problema. Uma dúzia de abas no iTerm ou Warp se transforma em uma bagunça. Não fica claro onde os testes falharam, qual branch está sendo editada em segundo plano, e qual terminal está esperando confirmação de comando.

nodeterm interface

O projeto nodeterm oferece uma abordagem diferente para o espaço de trabalho. Em vez de abas lineares ou divisões, ele usa uma tela infinita onde cada terminal vive como um nó separado e móvel.

O que está dentro da tela

A ideia central é simples: dar orientação espacial aos seus fluxos de trabalho. Você pode agrupar backend, frontend e agente em segundo plano em um cluster, e colar uma nota com lembretes de tarefas bem ao lado deles.

Canvas with nodes

Um nó aqui não é apenas um terminal. Você pode colocar na tela:

  • Sessões completas de terminal baseadas em xterm e tmux
  • Cards de agentes de IA (Claude Code, Copilot, Gemini, Grok)
  • Editor de código Monaco com suporte a salvamento rápido
  • Visualizador de diff do Git e janelas de prévia de páginas web
  • Notas adesivas de texto que podem ser vinculadas a agentes para compartilhamento de contexto

As sessões não se perdem quando você fecha a janela ou reinicia o sistema. Por baixo dos panos, o app mantém uma sessão real do tmux. No macOS, o cliente vem com um binário tmux integrado, então você não precisa instalá-lo separadamente.

Monitorando agentes sem parsing de saída

Quando um agente passa muito tempo escrevendo código ou executando testes, é fácil esquecer de verificar seu status. O nodeterm rastreia o estado através de hooks do sistema em vez de fazer parsing de texto.

Agent statuses

Se um processo precisar de confirmação do usuário, o card se ilumina com um badge NEEDS YOU e uma notificação nativa aparece. Em MacBooks, o status dos agentes ativos até aparece na área do notch.

Um detalhe interessante: agentes dentro do app podem interagir com a tela através de uma CLI integrada. Por exemplo, um agente pode criar um nó adjacente para executar testes ou verificar os artefatos de build de outro agente.

Quadro Kanban de sessões ao vivo

Pressionar Cmd+Shift+B alterna a tela para o modo de quadro Kanban. Cada card no quadro permanece como uma sessão de terminal funcional.

Kanban board

Você arrasta um card da coluna 'Em Progresso' para 'Revisão', abre em uma janela modal, e responde diretamente à pergunta do agente sobre o código. Sincronização bidirecional com GitHub Issues também é suportada: tarefas são puxadas para o quadro e mudam de status quando movidas.

Acesso pelo celular e modo servidor

O app não se limita a um cliente desktop Electron. A arquitetura é dividida em um core independente e transports, por isso o nodeterm funciona em três formatos.

Mobile connection

  1. Aplicativo desktop para macOS e Linux.
  2. Server Edition. A mesma tela roda em um servidor remoto sem shell gráfico e abre em um navegador comum via WebSockets.
  3. Cliente mobile no iOS. Você escaneia um código QR na tela do monitor, e a sessão é redirecionada para seu celular com criptografia de ponta a ponta. Você pode ir tomar um café e responder prompts de agentes em movimento.

Entrada de voz diretamente no shell

nodeterm tem um modelo Whisper local integrado. Se você segurar Cmd+Alt (Ctrl+Alt no Linux) e ditatar uma instrução longa, o áudio é processado diretamente na sua CPU.

Voice dictation

O texto não é enviado ao terminal automaticamente. Primeiro você vê o resultado reconhecido, edita manualmente se necessário, e só então pressiona enviar. Dados de áudio não vão para lugar nenhum pela rede.

Arquitetura e stack

O cliente é escrito em TypeScript usando Electron e a biblioteca React Flow como motor de canvas.

Desenvolvedores extraíram operações de PTY, git e agentes em uma interface CorePlatform. O processo Electron e o processo Node do servidor implementam a mesma interface. Graças a isso, a versão web não é uma versão reduzida—ela usa literalmente a mesma interface de renderer.

O projeto é distribuído sob a Business Source License 1.1 (BUSL-1.1). O código fonte é aberto para uso pessoal e em produção, mas proíbe criar um serviço pago concorrente baseado no nodeterm. Quatro anos após o lançamento de cada versão, o código automaticamente muda para MIT puro.

Como experimentar

No macOS, a forma mais fácil de instalar o app é via Homebrew:

brew tap nodeterm/tap
brew trust nodeterm/tap
brew install --cask nodeterm

Para Linux, pacotes AppImage e .deb pré-compilados estão disponíveis na página de releases do repositório.

Se você quiser rodar um servidor headless em uma máquina remota, você só precisa de Node.js 22 e tmux:

git clone https://github.com/eneskirca/nodeterm.git
cd nodeterm
npm install
npm run server:dev

Após iniciar, a interface web estará esperando por você em http://127.0.0.1:8443.

Quem achará o nodeterm útil

A ferramenta é voltada principalmente para desenvolvedores que mantêm dezenas de tarefas paralelas abertas, trabalham com git worktrees, ou delegam ativamente blocos de código para agentes de IA via linha de comando. Se você está mais confortável com um terminal minimalista clássico ocupando metade da tela, a tela espacial pode parecer excessiva. Mas se você está cansado de se perder em abas infinitas e janelas do tmux, a abordagem visual do nodeterm pode trazer ordem à sua mente.

Projetos relacionados