
Si llevas algún tiempo leyéndome o escuchando el podcast, sabrás de sobra que tengo una pequeña gran obsesión con los emuladores de terminal. Para mí, la terminal no es una simple herramienta de paso; es el centro neurálgico de mi día a día, el lugar donde paso la mayor parte de mis horas productivas y donde realmente me divierto cacharreando. He pasado por prácticamente todas las opciones disponibles en el ecosistema de Linux: desde la clásica y fiable terminal de GNOME, pasando por la velocidad de infarto de Alacritty, la versatilidad de WezTerm, hasta llegar a mi indiscutible favorita durante los últimos años, que no es otra que Kitty.
Recientemente, mis ansias de probar cosas nuevas me llevaron a darle una oportunidad de oro a Ghostty, un emulador de terminal del que todo el mundo habla maravillas por su rendimiento y su moderna arquitectura. Estuve utilizándolo de forma intensiva durante varios días, disfrutando de su fluidez, hasta que choqué de frente con un problema insalvable para mí: la imposibilidad de escribir acentos de forma cómoda bajo mi configuración de teclado. Aquello rompió por completo mi ritmo de trabajo, obligándome a replegar velas y volver a los brazos seguros y acogedores de Kitty.
Pero como soy incapaz de quedarme quieto, cuando descubrí un proyecto de código abierto llamado Wave, supe que tenía que probarlo. No se trata de una pequeña actualización o de una terminal que copia a otra. Estamos ante un concepto radicalmente diferente. Tras probarlo a fondo, me he topado con un dilema enorme que hoy quiero compartir contigo.
Redefiniendo la línea de comandos: Del texto plano a la interfaz interactiva
Para entender qué hace tan especial a Wave, primero debemos pararnos a pensar en cómo ha evolucionado la relación entre los usuarios de ordenador y la línea de comandos. Durante más de cuarenta años, la interfaz de texto ha permanecido prácticamente idéntica. Sí, hemos ganado soporte para colores de veinticuatro bits, renderizado de fuentes con aceleración por hardware y la posibilidad de mostrar algunos iconos utilizando tipografías especiales como Nerd Fonts. Pero, en esencia, la terminal sigue siendo un flujo secuencial de texto plano: escribes un comando abajo, el sistema procesa la instrucción y te escupe cientos o miles de líneas que van subiendo por la pantalla hasta perderse en el historial.
Si quieres ver una imagen que acabas de descargar, tienes que abrir un visor externo. Si necesitas consultar la documentación de una herramienta para saber qué argumentos pasarle, tienes que saltar al navegador de internet de tu entorno de escritorio. Si quieres editar un archivo de configuración, debes recurrir a editores integrados en la terminal o lanzar un entorno de desarrollo completo por separado. Este salto constante entre aplicaciones, conocido en el mundo de la productividad como context switching o cambio de contexto, es uno de los mayores ladrones de tiempo y concentración para cualquier desarrollador, administrador de sistemas o aficionado a la tecnología.
Wave nace con el firme propósito de romper esta barrera histórica. Su meta no es reemplazar el poder de la terminal clásica, sino tender un puente de plata entre la agilidad del teclado y las capacidades de los entornos gráficos modernos. Se define a sí mismo no solo como un emulador de terminal, sino como un framework interactivo o un entorno de trabajo unificado. Todo ello construido con tecnologías de estándares web abiertos (utilizando React, TypeScript y una arquitectura interna en Go bajo Electron), con licencia Apache 2.0, totalmente libre de registros obligatorios y respetando al máximo tu privacidad al permitirte desactivar cualquier tipo de telemetría con un solo clic.
La gran revolución de los bloques interactivos
La característica más impactante cuando abres Wave por primera vez es que la pantalla no está vacía esperando un comando sobre un fondo negro plano. En su lugar, nos encontramos con un lienzo dinámico organizado por bloques o widgets visuales.
En un emulador tradicional, si ejecutas un comando que genera una salida muy larga, como por ejemplo un análisis de red o una búsqueda intensiva de archivos, esa salida inunda por completo tu pantalla, mezclándose con los comandos anteriores y dificultando enormemente la lectura. En Wave, cada comando que ejecutas se puede aislar de forma automática en su propio bloque visual. Cada uno de estos bloques tiene su propia barra de desplazamiento, su historial independiente, y puedes colapsarlo, expandirlo a pantalla completa para examinarlo mejor, o eliminarlo cuando ya no te haga falta. Es una forma increíblemente limpia de mantener tu área de trabajo ordenada.
Pero la verdadera magia reside en los cinco tipos de bloques principales que Wave nos ofrece para que podamos dar forma a nuestra interfaz ideal.
Bloques de terminal tradicional
Este es el punto de partida que todos conocemos. Es una terminal ágil y totalmente funcional donde puedes usar tu intérprete de comandos favorito, ya sea Bash, Zsh o Fish. Admite todas las herramientas de línea de comandos que utilizas habitualmente, pero con la enorme ventaja de poder organizar las ejecuciones de manera totalmente limpia e independiente de las demás tareas que tengas abiertas en el lienzo.
Bloques de visualización y previsualización de archivos
¿Cuántas veces has tenido que abrir una aplicación externa solo para comprobar si una imagen es la correcta, leer un documento explicativo o revisar un informe en formato PDF? Con Wave, esto es cosa del pasado. Si haces clic en un archivo o utilizas el comando de apertura, Wave cargará de forma nativa un widget de previsualización.
Es capaz de renderizar imágenes en alta resolución, reproducir archivos multimedia, dar formato visual precioso a documentos escritos en Markdown con todas sus negritas y títulos bien estructurados, mostrar PDFs con total fluidez y transformar áridos archivos de datos CSV en tablas interactivas con columnas ordenables. Todo ello sin salir de la misma ventana de la aplicación y manteniendo el foco en lo que estás haciendo.
Bloques de navegación web integrados
Esta funcionalidad me parece sencillamente genial. Wave incorpora un navegador web interno basado en Chromium que te permite acceder a cualquier página de internet directamente desde un bloque de tu espacio de trabajo.
Imagínate el escenario: estás configurando un servicio en tu servidor local o programando una pequeña aplicación. Al lado de tu terminal de comandos, abres un bloque de navegación con la documentación oficial del lenguaje, una búsqueda de StackOverflow o tu panel de control de GitHub. No necesitas cambiar de espacio de trabajo virtual en tu distribución de Linux, ni mover la mirada a otro monitor. Tienes el código y la documentación conviviendo en perfecta armonía frente a tus ojos.
Bloques de edición de texto avanzados
Modificar un archivo de configuración rápida en un servidor remoto a veces puede dar un poco de pereza si no estás muy habituado a moverte con editores puros de terminal. Wave integra un bloque de editor gráfico que cuenta con el motor de Visual Studio Code (Monaco Editor). Esto significa que dispones de un editor de texto sumamente potente, con resaltado de sintaxis para decenas de lenguajes de programación, atajos de teclado intuitivos, autocompletado y una interfaz gráfica muy cómoda para editar cualquier archivo al vuelo, tanto en local como en remoto.
Bloques de Inteligencia Artificial contextual
En pleno año de ebullición de la inteligencia artificial, Wave no ha querido quedarse atrás y ofrece un bloque asistente nativo. No se trata del clásico chat genérico al que le haces preguntas al azar; este bloque está integrado directamente con el contexto de tu terminal.
La inteligencia artificial de Wave puede leer la salida de tus comandos para ayudarte a depurar un error de compilación que te esté doliendo la cabeza, explicarte paso a paso qué hace un comando largo y complejo que hayas encontrado por internet, o escribirte un script de Bash para automatizar tus copias de seguridad.
Lo mejor de todo, y esto es algo que me toca especialmente el corazón, es que está pensada para respetar tu privacidad al máximo. Puedes introducir tus propias claves de API de proveedores comerciales, pero también puedes conectarlo de forma nativa a modelos de lenguaje locales que corran en tu propia máquina gracias a herramientas como Ollama o LM Studio. De esta forma, disfrutas de toda la potencia de la asistencia inteligente de manera totalmente gratuita, sin conexión a internet y con la absoluta seguridad de que tus datos privados nunca saldrán de tu ordenador de casa.
Personalización mediante layouts: Un entorno para cada tarea
Cuando empezamos a cacharrear con una herramienta como Wave, a menudo nos surge la duda de si tanto bloque en pantalla no acabará convirtiéndose en un caos inmanejable. Para solucionar esto de manera brillante, el programa introduce el concepto de los Layouts o disposiciones de pantalla guardadas dentro de espacios de trabajo personalizados (Workspaces).
Nuestras necesidades frente al ordenador cambian drásticamente dependiendo de la tarea que estemos realizando en cada momento. No es lo mismo estar programando una pequeña aplicación web, que monitorizando el estado de nuestros contenedores Docker en un servidor doméstico, o redactando el guion de un nuevo podcast. Wave te permite crear tantos espacios de trabajo virtuales como desees, personalizar la colocación y el tipo de bloques en cada uno de ellos, y guardarlos para poder recuperarlos en cualquier momento.
Déjame ponerte tres ejemplos prácticos de cómo puedes estructurar tu jornada con esta herramienta:
El espacio del Administrador de Sistemas
Puedes configurar un espacio de trabajo con un bloque de terminal grande conectado por SSH a tu servidor principal. Justo debajo, colocas un widget de información de sistema (Sysinfo) para vigilar en tiempo real el uso de la memoria RAM y el procesador de tu máquina. Al lado derecho, dejas abierto un bloque con el gestor de procesos activos para poder detener cualquier servicio que empiece a consumir más recursos de la cuenta, y un bloque con el gestor de archivos para navegar visualmente por las carpetas del servidor.
El espacio del Desarrollador Web
En este flujo de trabajo, divides tu pantalla de forma horizontal. En la parte superior, abres el bloque de editor de código integrado para programar cómodamente. En la parte inferior izquierda, sitúas una terminal para lanzar el servidor de desarrollo local y compilar los cambios. En la parte inferior derecha, abres el bloque de navegación web integrado apuntando a la dirección local del servidor para ir viendo cómo se renderiza tu aplicación web en tiempo real a medida que guardas el archivo.
El espacio del Creador de Contenido
Si te gusta escribir en formato Markdown para tu blog, puedes crear un espacio de trabajo sumamente limpio dividido en dos columnas verticales. A la izquierda, abres el editor de texto con tu archivo de texto plano. A la derecha, configuras un bloque de previsualización que interpreta ese archivo Markdown al vuelo. De esta manera, cada vez que añades un título, una lista de tareas o una imagen, verás exactamente cómo va a quedar el artículo final de manera instantánea y súper visual.
Para moverte por todos estos bloques y layouts de manera fluida sin tener que recurrir constantemente al ratón, Wave ofrece un abanico muy completo de atajos de teclado esenciales:
- Alt + N: Abre un nuevo bloque en tu espacio de trabajo actual.
- Alt + V: Cierra el bloque que tengas enfocado en ese momento.
- Alt + Flechas de dirección: Te permite navegar y cambiar el foco rápidamente entre los bloques que tienes en pantalla.
- Shift + Ctrl + 1 al 9: Te lleva directamente a una terminal o bloque específico según su numeración.
- Shift + Ctrl + Comilla: Muestra de forma visual los números de cada bloque para que sepas exactamente a cuál saltar.
Esta operativa basada en la tecla Alt hace que la navegación sea sumamente cómoda e intuitiva, permitiéndote exprimir las capacidades de organización del lienzo gráfico a la velocidad del pensamiento.
SSH Durable: El verdadero fin de las conexiones rotas
Si hay una característica técnica en Wave que me ha hecho exclamar un sonoro ¡madre mía de mi vida!, es su implementación de las conexiones remotas a través de lo que denominan SSH Durable.
Cualquier persona que gestione servidores o contenedores en la nube sabe lo sumamente frustrante que es trabajar mediante SSH convencional. Si tienes un microcorte en tu conexión de fibra, si cierras la tapa de tu ordenador portátil para trasladarte de la oficina a una cafetería, o si pasas de la red Wi-Fi de tu casa a la conexión de datos móviles de tu teléfono, la sesión clásica de SSH se interrumpe de forma fulminante. Cuando esto ocurre, no solo pierdes el comando que estabas escribiendo; pierdes todo el contexto de la sesión, el historial reciente de lo que habías ejecutado y, si tenías algún proceso corriendo en primer plano que tardaba tiempo en finalizar, este se detiene abruptamente a menos que te hayas acordado de usar multiplexores de terminal externos como tmux o screen.
Wave soluciona este problema histórico de una forma increíblemente elegante y robusta. No utiliza scripts de terceros propensos a dar fallos, sino que implementa su propio multiplexor de conexión nativo y un protocolo de comunicación con control de flujo propio.
Cuando te conectas a una máquina remota utilizando su gestor de conexiones integrado, Wave establece una sesión persistente que es capaz de sobrevivir a cualquier imprevisto de red. ¿Cierras la tapa de tu portátil y te vas a dar una vuelta? No pasa nada. ¿Tu router se reinicia a mitad de una tarea importante? No te preocupes. Cuando recuperes la conexión, Wave se reconectará de forma totalmente invisible y automática al servidor remoto. Tu sesión seguirá exactamente en el mismo estado en el que la dejaste, con tu terminal lista para recibir órdenes, tu historial intacto y sin haber perdido un solo segundo de tu valioso tiempo.
Por si fuera poco, esta conexión persistente no se limita solo a enviarle texto a la consola del servidor remoto. Gracias a las herramientas de integración del ecosistema de Wave (mediante comandos auxiliares como wsh), puedes utilizar el explorador de archivos visual y el editor de código integrado de Wave directamente sobre los archivos que se encuentran alojados en tu máquina remota.
Puedes buscar un archivo de configuración en un servidor al otro lado del mundo, abrirlo con el editor gráfico integrado de la terminal con un doble clic, realizar las modificaciones oportunas con autocompletado y guardarlo de vuelta en el servidor de forma instantánea. Todo ello sin necesidad de configurar complejos sistemas de transferencia de archivos como FTP, SCP, o montar carpetas en red mediante sistemas NFS. Es una comodidad que transforma por completo la experiencia de administración de servidores remotos y que, sinceramente, es difícil de abandonar una vez la has probado.
Extensibilidad con sabor a web abierta
Otro aspecto que considero clave para el futuro a largo plazo de cualquier herramienta de software es su capacidad para ser extendida por la comunidad. Wave está cimentado sobre tecnologías web sumamente populares y queridas por los desarrolladores de todo el mundo, como son React 19, TypeScript y Tailwind CSS.
Esta decisión arquitectónica no es una casualidad. Significa que la barrera de entrada para crear complementos y widgets personalizados es sumamente baja. En una terminal convencional, si quieres programar una pequeña utilidad visual que muestre datos en tiempo real de una API o grafique el estado de un servicio, a menudo tienes que pelearte con complejas librerías de dibujo de caracteres en consola (TUI) o desarrollar código nativo de bajo nivel que cuesta mucho mantener y hacer compatible entre diferentes sistemas operativos.
En Wave, cualquier persona con nociones básicas de desarrollo web puede dar rienda suelta a su imaginación y crear bloques interactivos personalizados. La API del programa está completamente documentada y es la misma que utilizan los desarrolladores principales del proyecto para construir las características internas de la aplicación.
Gracias a esto, la comunidad ya está empezando a dar vida a widgets de lo más interesantes: visualizadores avanzados de estructuras de datos JSON que te permiten colapsar ramas completas con un clic, graficadores de rendimiento para monitorizar bases de datos, integraciones con sistemas de almacenamiento en la nube de Amazon S3, y un largo etcétera. El potencial para adaptar la terminal a las necesidades exactas de tu negocio o de tus proyectos personales es verdaderamente ilimitado.
El gran dilema: Kitty frente a Wave
Llegados a este punto del análisis, después de haberte desgranado todas las maravillas, las bondades y los superpoderes que Wave trae bajo el brazo, es muy probable que te estés haciendo la gran pregunta: Lorenzo, si tan espectacular te parece esta nueva herramienta y tantas ventajas aporta en el día a día, ¿por qué has decidido volver de nuevo a Kitty y seguir utilizándola como tu terminal de cabecera?
Y aquí es donde nos encontramos con el verdadero dilema del cacharreo tecnológico. La elección de nuestras herramientas de trabajo no se basa únicamente en qué aplicación tiene más características o cuál cuenta con la interfaz más vistosa y moderna; se trata, por encima de todo, de una cuestión de flujos de trabajo consolidados y de hábitos profundamente arraigados tras años de práctica diaria.
El factor del rendimiento y el consumo de recursos
Kitty es un emulador de terminal enfocado en ofrecer el máximo rendimiento posible utilizando la aceleración por hardware de la tarjeta gráfica (GPU) de tu ordenador. Está escrito principalmente en lenguajes de bajo nivel como C y optimizado con Python, lo que se traduce en una velocidad de respuesta instantánea ante cada pulsación de tecla y un consumo de memoria RAM y procesador sumamente contenido.
Por su parte, Wave está desarrollado utilizando tecnologías web encapsuladas bajo el ecosistema de Electron. Aunque sus creadores han realizado un trabajo de optimización verdaderamente encomiable en sus últimas versiones para que la interfaz se sienta fluida, no podemos obviar el hecho de que tener corriendo un motor web completo por detrás para gestionar la terminal siempre va a implicar un consumo de recursos significativamente superior al de un emulador nativo y ligero. Si tienes una máquina con especificaciones ajustadas o eres un obseso de mantener el consumo de memoria al mínimo absoluto, este es un factor que debes valorar con cuidado.
Flujo de trabajo basado puramente en teclado frente al ratón
A lo largo de los años, he diseñado mi flujo de trabajo en la terminal para depender lo mínimo posible del ratón. Me encanta la velocidad y la concentración que me aporta tener las manos siempre colocadas sobre las teclas. Utilizo gestores de archivos de consola ultrarrápidos y potentes como Yazi, editores de texto puros y atajos personalizados que me permiten hacer prácticamente cualquier tarea de forma inmediata sin tener que desviar la mirada para apuntar con el cursor a un menú o a un bloque concreto.
Wave, por la propia naturaleza interactiva de su diseño por bloques, es una herramienta que se disfruta muchísimo más y que cobra verdadero sentido cuando se combina el uso del teclado con la interacción del ratón. Poder hacer doble clic para abrir un archivo, arrastrar y soltar bloques para cambiar la disposición de la pantalla o pinchar en los enlaces del navegador integrado son operativas que, aunque son sumamente intuitivas y cómodas, rompen un poco con ese flujo puramente enfocado en el teclado al que mi cerebro ya se ha acostumbrado por completo tras tantos años de uso de Kitty.
Conclusión: ¿Para quién es Wave Terminal?
Aunque mi decisión personal sea seguir fiel a Kitty por mi flujo de trabajo tan específico, quiero dejar muy claro que Wave me parece una de las propuestas más valientes, innovadoras y refrescantes que he visto en el ecosistema del código abierto en muchísimo tiempo. Es de esos proyectos que consiguen que te ilusiones de nuevo por el software de escritorio, demostrando que todavía queda mucho margen para imaginar nuevas formas de interactuar con nuestras máquinas.
Wave es una herramienta absolutamente fantástica y que te recomiendo probar encarecidamente si te encuentras en alguno de los siguientes grupos:
- Si eres un desarrollador de software que está dando sus primeros pasos en el mundo de Linux o del desarrollo web y te impone un poco de respeto tener que enfrentarte a una pantalla negra vacía. Wave te ofrece una transición sumamente amable y un entorno donde conviven de manera natural la línea de comandos clásica con la comodidad de las herramientas gráficas a las que estás habituado.
- Si eres un administrador de sistemas que pasa su jornada gestionando servidores remotos por SSH. El superpoder de sus sesiones SSH Durables y la facilidad para visualizar y editar archivos remotos con una interfaz gráfica integrada sin configurar absolutamente nada en los servidores te va a ahorrar dolores de cabeza y va a transformar por completo tu productividad diaria.
- Si eres un apasionado de la productividad al que le encanta tener espacios de trabajo específicos, limpios y perfectamente ordenados para cada una de las facetas de su vida digital, sin tener que pelearse con complejos archivos de configuración de texto plano o pasar horas aprendiendo combinaciones imposibles de teclas en un multiplexor tradicional.
En definitiva, Wave demuestra que el ecosistema de Linux y del código abierto goza de una salud de hierro y que siempre hay espacio para que un nuevo proyecto llegue para sacudir los cimientos de lo que considerábamos inamovible. Te animo encarecidamente a que le des una oportunidad, a que la instales en tu máquina, juegues con sus bloques, configures tus propios layouts y experimentes por ti mismo este nuevo concepto de interacción con la línea de comandos. Quién sabe, ¡quizás tú sí que decidas jubilar a tu vieja terminal y dar el salto definitivo al futuro por bloques de Wave!
Enlaces de interés para seguir cacharreando:
- Sitio web oficial del proyecto Wave – Para descargar la aplicación y consultar su documentación de forma detallada.
- Repositorio oficial de Wave en GitHub – El rincón donde se encuentra todo el código fuente del proyecto, las discusiones de la comunidad y los detalles de las últimas versiones.
- Herramienta Ollama para modelos de lenguaje locales – El compañero perfecto para integrar inteligencia artificial en Wave respetando al 100% tu privacidad local.
- Proyecto de la terminal Kitty – Mi terminal de cabecera de la que te he hablado en la comparativa de este artículo.