
Termi - Aplicación de Terminal de Código Abierto para macOS y Linux
Una aplicación de terminal de código abierto para macOS y Linux, publicada por Webanion bajo la licencia MIT: comandos guardados que abren hasta cuatro terminales lado a lado en una pestaña, en una disposición que Termi recuerda, y que pueden arrancar con la aplicación; dividir, reabrir, una paleta de comandos, una hoja de atajos, una guía integrada y las cifras de CPU, memoria y red en la barra lateral. Electron, React, TypeScript, xterm.js y node-pty, compilado con electron-vite y probado con Vitest, con un servidor MCP para que un asistente gestione los comandos guardados. Código fuente en github.com/webanion/termi.
La historia completa
Un comando guardado, cuatro terminales, la disposición recordada y toda la cuadrícula de vuelta al arrancar.
Las mismas ocho ventanas cada mañana
Un desarrollador en un proyecto arranca los mismos procesos cada día de trabajo: un servidor de desarrollo, un observador de pruebas, un shell para git, otro para lo que surja. Una aplicación de terminal los abre de uno en uno, cada uno en la carpeta correcta, luego las ventanas se ordenan a mano, y tras un reinicio toda la rutina vuelve a empezar. Los comandos nunca cambian. Los minutos que se van en volver a escribirlos tampoco.
Termi es una aplicación de terminal de código abierto para macOS y Linux, publicada por Webanion bajo la licencia MIT. Un comando guardado reúne hasta cuatro terminales, la carpeta en la que corren y la disposición en la que se colocan, los abre todos en una pestaña con un clic y puede arrancarlos en cuanto Termi se abre. El resto de la aplicación no se interpone en el camino del shell: dividir, reabrir, una paleta de comandos, una hoja de atajos, una guía integrada y las cifras de CPU, memoria y red de la máquina al pie de la barra lateral.
Un comando guardado, cuatro terminales
El comando guardado llamado Termi abre los cuatro terminales del proyecto en una pestaña: las pruebas unitarias en modo observación, el registro de git, las comprobaciones de tipos y de lint, y un shell normal, todos en la carpeta del proyecto. Cada terminal muestra un título en su cabecera en lugar del comando en bruto, las pestañas en ejecución quedan arriba en la barra lateral con sus atajos, y los comandos guardados debajo, con un rayo en los que arrancan al iniciar.


Una disposición que Termi recuerda
Una pestaña con dos, tres o cuatro terminales puede ser una cuadrícula, lado a lado, apilada, grande a la izquierda o grande arriba. La disposición se elige en el diálogo del comando guardado o desde el control a la derecha de la cabecera, y Termi la conserva para ese comando, así que la pestaña vuelve exactamente como se dejó. El diálogo contiene todo lo demás que el comando necesita: un nombre, hasta cuatro comandos con títulos opcionales, la carpeta y si arranca cuando Termi se abre. La línea entre dos terminales se arrastra para redimensionarlos, y un doble clic vuelve a igualarlos.



Dividir, reabrir y un ojo en la máquina
Cualquier pestaña se divide en hasta cuatro terminales desde la cabecera o el teclado, y el nuevo shell arranca en la carpeta de la pestaña; aquí el servidor de desarrollo del sitio del producto y una comprobación de tipos comparten una pestaña. Cierra un terminal de un comando guardado y aparece Reopen en la cabecera, con la lista de lo cerrado y devolviéndolo a su sitio, mientras la barra lateral marca 3 of 4. El pie lee CPU, memoria, descarga y subida cada 1,5 segundos.


Todo desde el teclado
Una paleta de comandos encuentra cualquier acción o terminal en ejecución por su nombre y muestra sus teclas al lado, y una hoja de atajos lista todos los atajos en una página. Las teclas difieren según el sistema a propósito: en macOS la tecla Command hace el trabajo, y en Linux un Ctrl simple con una letra siempre llega al shell, así que Ctrl+C sigue interrumpiendo y Ctrl+B sigue siendo el prefijo de tmux, mientras que los atajos propios de Termi usan Ctrl+Shift con una letra, Alt con un número para las pestañas, y Ctrl+Page Up y Page Down para moverse entre ellas. Un comando guardado también se ejecuta desde el teclado: escribe parte de su nombre y pulsa Enter, y si ya está en marcha Termi va a su pestaña.



Ayuda que viene con la aplicación
Una guía de cinco páginas se abre en el primer arranque y de nuevo desde el menú Help, una página por cada parte de la aplicación: terminales y pestañas, comandos guardados, terminales divididos, copiar y las estadísticas, y el servidor MCP. Help, Report an Issue abre un informe de error con la versión de Termi, el sistema y el shell ya rellenados, para que la persona lo lea y lo envíe. Termi no envía nada por sí mismo: sin telemetría, sin analítica, sin comprobación de actualizaciones.


Una página para las descargas
termi.webanion.com reúne las descargas, las funciones, las disposiciones y los atajos en una página, y ofrece primero la compilación para el sistema del visitante: un dmg para Mac con Apple silicon e Intel, un deb para Debian y Ubuntu, y un AppImage para otras distribuciones de Linux, cada versión con un archivo SHA256SUMS para comprobarla. Las versiones las produce un flujo de trabajo de GitHub Actions, nunca a mano: abre un pull request con el cambio de versión y un changelog escrito a partir de los commits, y al fusionarlo se compilan los paquetes de macOS y Linux, se etiqueta la versión y se publica la release con sus contribuidores.


Código abierto, de Webanion
Termi fue iniciado por Jawad Ahbab, y más tarde Webanion lo refactorizó y lo publicó como producto de código abierto bajo la licencia MIT. El trabajo de publicación de Webanion le dio la compilación con electron-vite, las comprobaciones de TypeScript, ESLint y Prettier, las pruebas unitarias con Vitest, pruebas de integración contra shells reales, una prueba de humo de la aplicación compilada en Linux y macOS en CI para cada pull request, y el flujo de trabajo que compila y publica cada versión.
Bajo la ventana, Electron aloja una página React aislada en un sandbox que llega a los shells solo a través de un contrato IPC verificado, xterm.js dibuja los terminales y node-pty los ejecuta, y la configuración vive en un único archivo JSON con número de versión y migraciones, así que una compilación antigua nunca destruye la configuración de una más nueva. Un servidor MCP viene en la misma compilación, así que un asistente como Claude Code puede listar, añadir y editar los comandos guardados, con la advertencia que da la guía: un comando guardado se ejecuta con un clic o al arrancar, así que esas dos herramientas deben quedar bajo aprobación manual. El código fuente, las incidencias y las good first issues están en github.com/webanion/termi.
También te puede gustar
Keyboard Tracker - Gráficos e Informes de Actividad en el Escritorio
Una app de escritorio discreta para Linux, Windows y macOS que cuenta el uso del teclado y el ratón, lo representa en gráficos y exporta informes, creada para Ja Turna en cinco semanas. Cuenta las pulsaciones sin registrar lo que nadie escribe, muestra gráficos de un día o de toda la historia y sigue fluida con meses de datos, descarga cualquier tabla como un PDF que un responsable puede compartir y guarda todo su historial en un solo archivo para un equipo nuevo. Electron, React, TypeScript y Redux desde una sola base de código.

El blog son notas de campo desde producción: decisiones de arquitectura, sistemas de AI que sobrevivieron al contacto con usuarios reales e infraestructura que se paga sola. Escrito desde el trabajo, no sobre él.
