nodeterm convierte un desastre de pestañas de terminal en un lienzo infinito
Cualquier desarrollador que intente ejecutar agentes de IA autónomos como Claude Code o Codex en paralelo con servicios regulares rápidamente se encuentra con el mismo problema. Una docena de pestañas en iTerm o Warp se convierten en un desastre. No queda claro dónde fallaron las pruebas, qué rama se está editando en segundo plano y qué terminal está esperando confirmación de comando.
El proyecto nodeterm ofrece un enfoque diferente para el espacio de trabajo. En lugar de pestañas lineales o divisiones, utiliza un lienzo infinito donde cada terminal vive como un nodo separado y móvil.
Qué hay dentro del lienzo
La idea central es simple: dar orientación espacial a tus flujos de trabajo. Puedes agrupar backend, frontend y agente en segundo plano en un clúster, y colocar una nota con recordatorios de tareas justo al lado de ellos.
Un nodo aquí no es solo una terminal. Puedes colocar en el lienzo:
- Sesiones de terminal completas basadas en xterm y tmux
- Tarjetas de agentes de IA (Claude Code, Copilot, Gemini, Grok)
- Editor de código Monaco con soporte de guardado rápido
- Visor de diff de Git y ventanas de vista previa de páginas web
- Notas adhesivas de texto que pueden vincularse a agentes para compartir contexto
Las sesiones no se pierden cuando cierras la ventana o reinicias el sistema. Internamente, la aplicación mantiene una sesión real de tmux. En macOS, el cliente viene con un binario de tmux integrado, así que no necesitas instalarlo por separado.
Monitoreo de agentes sin análisis de salida
Cuando un agente pasa mucho tiempo escribiendo código o ejecutando pruebas, es fácil olvidar verificar su estado. nodeterm rastrea el estado a través de ganchos del sistema en lugar de analizar la salida de texto.
Si un proceso necesita confirmación del usuario, la tarjeta se ilumina con un distintivo NEEDS YOU y aparece una notificación nativa. En MacBooks, el estado de los agentes activos incluso aparece en el área de la muesca.
Un detalle interesante: los agentes dentro de la aplicación pueden interactuar con el lienzo a través de una CLI integrada. Por ejemplo, un agente puede crear un nodo adyacente para ejecutar pruebas o verificar los artefactos de compilación de otro agente.
Tablero Kanban a partir de sesiones en vivo
Al presionar Cmd+Shift+B se cambia el lienzo al modo de tablero Kanban. Cada tarjeta en el tablero sigue siendo una sesión de terminal funcional.
Arrastras una tarjeta de la columna "En Progreso" a "Revisión", la abres en una ventana modal y respondes directamente la pregunta del agente sobre el código. También se admite la sincronización bidireccional con GitHub Issues: las tareas se extraen al tablero y cambian de estado cuando se mueven.
Acceso desde tu teléfono y modo servidor
La aplicación no se limita a un cliente de escritorio Electron. La arquitectura está dividida en un núcleo independiente y transportes, por eso nodeterm funciona en tres formatos.
- Aplicación de escritorio para macOS y Linux.
- Server Edition. El mismo lienzo se ejecuta en un servidor remoto sin interfaz gráfica y se abre en un navegador normal a través de WebSockets.
- Cliente móvil en iOS. Escaneas un código QR en la pantalla del monitor, y la sesión se reenvía a tu teléfono con cifrado de extremo a extremo. Puedes irte a tomar un café y responder las solicitudes de los agentes sobre la marcha.
Entrada de voz directamente en el shell
nodeterm tiene un modelo local de Whisper integrado. Si mantienes presionado Cmd+Alt (Ctrl+Alt en Linux) y dictas una instrucción larga, el audio se procesa directamente en tu CPU.
El texto no se envía a la terminal automáticamente. Primero ves el resultado reconocido, lo editas manualmente si es necesario, y solo entonces presionas enviar. Los datos de audio no van a ninguna parte a través de la red.
Arquitectura y stack
El cliente está escrito en TypeScript usando Electron y la biblioteca React Flow como motor del lienzo.
Los desarrolladores extrajeron las operaciones de PTY, git y agentes en una interfaz CorePlatform. El proceso de Electron y el proceso de servidor Node implementan la misma interfaz. Gracias a esto, la versión web no es un puerto reducido—usa literalmente la misma interfaz de renderizado.
El proyecto se distribuye bajo la Business Source License 1.1 (BUSL-1.1). El código fuente está abierto para uso personal y de producción, pero prohíbe crear un servicio pago competidor basado en nodeterm. Cuatro años después del lanzamiento de cada versión, el código cambia automáticamente a MIT puro.
Cómo probarlo
En macOS, la forma más fácil de instalar la aplicación es a través de Homebrew:
brew tap nodeterm/tap
brew trust nodeterm/tap
brew install --cask nodeterm
Para Linux, los paquetes AppImage y .deb precompilados están disponibles en la página de lanzamientos del repositorio.
Si quieres ejecutar un servidor sin interfaz en una máquina remota, solo necesitas Node.js 22 y tmux:
git clone https://github.com/eneskirca/nodeterm.git
cd nodeterm
npm install
npm run server:dev
Después del inicio, la interfaz web te esperará en http://127.0.0.1:8443.
A quién le resultará útil nodeterm
La herramienta está dirigida principalmente a desarrolladores que mantienen docenas de tareas paralelas abiertas, trabajan con git worktrees o delegan activamente fragmentos de código a agentes de IA de línea de comandos. Si te sientes más cómodo con una terminal minimalista clásica que ocupa la mitad de la pantalla, el lienzo espacial podría parecer excesivo. Pero si estás cansado de perderte entre pestañas interminables y ventanas de tmux, el enfoque visual de nodeterm podría aportar orden a tu mente.
Proyectos relacionados