- Usó tmux durante mucho tiempo, pero recientemente empezó a cuestionar su complejidad y sus límites (compatibilidad de colores, scrollback, copia con mouse, falta de soporte para protocolos, etc.)
- Funciones principales de tmux como la persistencia de sesión (detach/attach) o la división y administración de ventanas no necesariamente requieren tmux
- Aprovechando herramientas ligeras con filosofía Unix como dtach, abduco y shpool, es posible enfocarse solo en la gestión de sesiones y al mismo tiempo conservar el scrollback nativo y la simplicidad
- En particular, con la combinación de
shpool+ ssh se puede construir un entorno donde varias sesiones remotas se administran directamente con el gestor de ventanas, manteniendo funciones nativas como notificaciones, scroll, títulos, etc. - No es perfecto, pero según su experiencia pudo reemplazar por completo tmux y quedó satisfecho con un flujo de trabajo simple y fácil de mantener
Ventajas y desventajas de tmux
- Funciones que antes ofrecía tmux, como la persistencia de sesión (detach/attach) y la gestión de ventanas (pestañas, split), eran el núcleo de su flujo de trabajo
- Sin embargo, la complejidad aumenta por problemas como el renderizado de colores si no se configura correctamente
TERM, y la necesidad de considerar la interacción entre la terminal y tmux - El uso del búfer de scroll también exige acostumbrarse al método propio de tmux, y copiar áreas con el mouse resultaba incómodo en un entorno con splits
- También existen problemas de soporte insuficiente para nuevas funciones de terminal, como kitty graphics protocol, y falta de compatibilidad con protocolos experimentales
- Además, hay críticas de que los multiplexores, al reinterpretar códigos de escape duplicados y añadir conceptos de sesión/ventana, frenan la evolución del ecosistema de terminales
Explorando alternativas a tmux
- Persistencia de sesión:
- Hay opciones simples como
ctrl-z+fg,nohupodisown, pero es difícil que reemplacen todo por completo - Han aparecido varias herramientas cuyo objetivo es solo mantener la sesión (
dtach, abduco, shpool)- Conectan daemon y cliente mediante una combinación de fork() y sockets UNIX
- A diferencia de tmux, permiten scrollback nativo sin splits virtuales, y algunas también ofrecen restauración de búfer
- Según su experiencia, la mayoría de las alternativas tienen bugs y una madurez limitada, por ejemplo cuando la combinación de teclas para detach no funciona dentro de
nvim - Solo shpool le pareció la opción más sólida en cuanto a comandos de detach/attach y personalización de keymaps
- Hay opciones simples como
- Gestión de ventanas:
- En local, administra divisiones y disposición con el gestor de ventanas
- Incluso en entornos remotos (SSH), combinando ssh_config y shpool se pueden mantener varias sesiones independientes en ventanas separadas
- Al combinarlo con autossh, la sesión se conserva incluso en entornos con reconexión de red
Nuevo flujo de trabajo
- Personalmente usa ghostty (laptop) y sway+foot (PC personal) para gestionar ventanas. El servidor corre en una VM headless basada en Proxmox, manteniendo siempre un entorno de desarrollo por SSH
- Varias sesiones de shpool se conectan automáticamente con atajos ssh y se controlan de forma independiente desde el gestor de ventanas local
- En
ssh_config, automatiza el attach a sesiones de shpool según cada host - Desde cada terminal puede acceder por separado a IRC, administración de dotfiles y un entorno distinto de neovim, entre otras sesiones múltiples con acceso individual
- En
- Funciones como scroll nativo, notificaciones y títulos de terminal, que tmux soportaba de forma inestable, ahora funcionan de manera más natural
- También hay desventajas: al reconectarse a vim, la restauración del estado de la terminal puede tardar, y con
nvimhay problemas de redimensionamiento- No hay soporte multijugador (si autossh se activa al mismo tiempo desde varios clientes, se producen conflictos de sesión)
- Aun así, según su criterio personal, logró reemplazar tmux por completo
Conclusión
- No es exactamente lo mismo, pero es posible pasar a un flujo de trabajo de gestión de sesiones simple y flexible, dejando atrás la complejidad y las limitaciones de tmux
- Dependiendo del flujo de trabajo de cada quien, vale la pena considerar herramientas alternativas como shpool
7 comentarios
Hoy en día con IA uno genera cosas como
tmuxy las usa. Con Xterm.js + react + electron, en 3-4 horas sacas 100 de esas, y si hace falta las editas en tiempo real y las usas; ¿como una sensación de shabu-shabu? Le echas lo que se te antoja y el código fuente viene bien servido.Lo estoy usando cómodamente con wezterm.
¡Screen es lo máximo!
cargo install shpool... mejor me quedo con tmux... ¡tiene que haber paquetes para cada SO!Hay una gran promesa emergente llamada Zellij. La recomiendo muchísimo.
Zellij - Terminal para desarrolladores y Ops
Esto también lo había publicado hace bastante tiempo jaja
Opiniones de Hacker News
Este artículo está dirigido a usuarios de Linux en el escritorio, pero quiero recalcar que tmux realmente brilla cuando se usa con iTerm2 en una MacBook
Gracias a la integración de tmux en iTerm2, tmux se integra de forma completamente natural en mi flujo de trabajo
Si dejas algo como esto configurado en
~/.ssh/config, puedes acceder fácilmente por ssh a tmux en tu servidor remoto de desarrollo en cualquier momento, incluso después de volver a encender la MacBook o cambiar de redGracias a la integración entre iTerm2 y tmux, las pestañas remotas de tmux y el búfer de scroll funcionan como si fueran pestañas locales, y de hecho puedes usarlo sin siquiera conocer los comandos de tmux
Yo uso Linux en todos mis equipos personales, y para trabajar uso principalmente una MacBook; tmux es realmente útil porque me reproduce el mismo entorno sin importar la plataforma
En Linux uso Alacritty, pero en macOS siempre hay algo que no funciona de inmediato por la configuración adecuada o por diferencias relacionadas con ventanas y scroll
No quiero perder tiempo con esas diferencias entre sistemas operativos, así que obtener una experiencia casi idéntica a Linux con la combinación de tmux e iTerm2 me parece ideal
También me gusta que el scrollback dentro de la sesión se maneje por separado
Creo que las críticas a tmux son más bien temas que importan a quienes desarrollan terminales
Si el soporte es deficiente, simplemente te cambias a una terminal que lo soporte mejor
Yo uso la combinación de mosh y screen
Puedo restaurar la sesión incluso si el servidor se reinicia, y la sesión no se corta aunque cambie de red
Referencia: Immortal SSH Sessions
He intentado usar tmux decenas de veces, pero nunca me terminó de convencer y siempre regresaba a screen
Aun así, después de ver este tip, me dieron ganas de probarlo otra vez
Yo me topo seguido con problemas de colores y fuentes en la combinación de vim, tmux e iTerm2, así que al final dejé de usar tmux en local
No me aportaba tanto como para compensar el esfuerzo de mantenerlo funcionando tras las actualizaciones y por la persistencia de sesiones
Si pudiera resolver solo el tema de las fuentes, estaría dispuesto a intentarlo de nuevo, pero ahora mismo no tengo tiempo
Me pregunto si hay alguna terminal en Linux que ofrezca una integración con tmux como la de iTerm2
Sigo usando GNU Screen, pero estaría dispuesto a darle otra oportunidad a tmux
Este post del blog me hizo recordar otra vez por qué uso tmux
Al ver la enorme cantidad de trabajo que la gente hace para recrear un flujo parecido al de tmux, queda claro que es mucho mejor simplemente usar tmux
A veces copiar y pegar es un poco incómodo, pero no me importa mucho
La crítica de que “un multiplexor introduce sobrecarga innecesaria” no es algo de lo que debas preocuparte si no mantienes tú mismo la base de código
El problema de copiar y pegar no es exclusivo de tmux
Puede pasar con cualquier app que dibuje toda la terminal directamente, como vim
Esto se puede resolver fácilmente con la secuencia de escape de terminal OSC52
Si usas el sencillo script de Python de abajo, incluso resultados de
grepse pueden enviar directamente al portapapeles del sistematmux y nvim ya soportan OSC52, y también se puede aprovechar fácilmente en otros lugares
Por cierto, una vez envié un PR a tmux, y me gustó mucho lo bien que se comunicó el mantenedor Nick Marriott
El código también está bien ordenado, y tmux mejoró gracias a eso
Estoy cansado de estas discusiones que parecen inventar a la fuerza un problema que no existe
Las razones que da el autor no me convencen y hasta me hacen dudar de su “más de 7 años usando tmux”
Hace unas semanas conocí Tmux, y me fascinó la posibilidad de automatizar cosas enviando teclas programáticamente a un panel específico
Inspirado por un foro japonés, me pregunté si Claude Code (en adelante, CC) podría interactuar directamente con scripts CLI que requieren interacción, y confirmé que eso se puede lograr usando Tmux
Así que hice una pequeña herramienta llamada claude-code-tools para que agentes CLI como CC puedan crear paneles de Tmux, ejecutar scripts dentro de ellos e incluso interactuar en tiempo real
Es como una versión para terminal de Playwright o Puppeteer
Enlace al GitHub de claude-code-tools
Con este método, CC puede automatizar pruebas de scripts CLI interactivos, mostrar una UI en otro panel y probarla en el navegador con Puppeteer MCP, activar el depurador y detenerse en breakpoints, enlazar múltiples agentes y más
Me pregunto si las herramientas alternativas a tmux podrían implementar una extensibilidad así
Por cierto, screen también puede enviar teclas programáticamente a un panel con el comando
stuffCon este enfoque, Claude Code puede controlar varias instancias de CC como Gemini CLI u OpenCode en modo interactivo
Eso permite una integración distinta a la de los subagentes tradicionales
Me pregunto si un wrapper de tmux-cli realmente ayuda a mejorar los resultados
Yo solo le digo a Claude que use los comandos de tmux que ya existen y funciona bien, así que hago que ejecute todos los comandos dentro de una sesión de tmux sin necesidad de usar Bash aparte
Si quieres hacer este tipo de cosas más fácilmente a nivel de terminal, la función de remote control de Kitty también es genial
Introducción a Kitty Remote Control
Una terminal, en esencia, no es más que un file descriptor, así que herramientas parecidas como script(1), expect(1) y chat(8) existen desde los años 80
No hace falta que sea tmux específicamente
El problema de que colores y otros elementos no se muestren correctamente si no configuras bien
TERMen tmux es el mismo problema que existe en todos los emuladores/programas de terminalEn sistemas Unix y Linux, los conceptos de
TERMy de terminfo/termcap son fundamentales, así que una configuración correcta es indispensableNo es un problema exclusivo de tmux
Aun así, es una lástima que el autor le eche la culpa a tmux
También dudo que el problema del scroll sea realmente de tmux; tmux usa alternate screen buffer, que se introdujo para dejar clara la línea base del viewport y facilitar el movimiento del cursor
La mayoría de las terminales modernas permiten scroll local incluso cuando está activo el alternate screen, así que esa propiedad ya no se respeta bien
La mayoría de los programas tampoco funcionan como se espera si no configuras bien los valores por defecto
En el caso de tmux es incómodo porque no queda claro de inmediato el “por qué”, pero tampoco está claro cuál sería la solución correcta, por ejemplo si el valor por defecto debería ser 256colors
Es cierto, pero al usar tmux agregas una capa extra a la que debes prestarle atención
Dentro de tmux debes usar el
TERMespecífico de tmux, y fuera de él debes usar elTERMque corresponda a tu terminalBasta ver el FAQ de tmux: la mayoría de los problemas de visualización provienen de no tener
TERMconfigurado correctamenteLa observación de que “un multiplexor añade sobrecarga innecesaria” es precisamente una de las razones por las que prefiero tmux
En la situación actual, donde cada vez más apps abandonan el soporte para termcap, tener tmux me permite seguir ejecutándolas incluso en terminales antiguas como mi VT520
No me importa mucho si a algún desarrollador de terminales no le gusta tmux
Al final, para el usuario lo importante es que funcione, no la elegancia arquitectónica
Personalmente creo que alacritty es mejor, por cierto, aunque uso Konsole la mayor parte del tiempo
Solo quiero decir que te envidio por tener un VT520
Llevo mucho tiempo buscando un VT525, pero son caros y la mayoría de los vendedores están en el extranjero
Siempre me he preguntado si nosh realizer funciona bien en un VT525 genuino
Incluso si tmux desapareciera, las apps con incompatibilidades sutiles de
TERMaún podrían transliterarse de otra formaMi VT420 no soporta control de flujo por hardware, así que tengo que usar control de flujo por software, y ese método no se lleva nada bien con muchas apps de terminal actuales
GNU Screen ha sido una solución excelente, además de ofrecer varias funciones extra
He usado bastante tmux en emuladores modernos, pero en terminales antiguas parece carecer de esta función importante de control de flujo
Coincido en que tmux es útil para lidiar con apps que no soportan bien termcap/terminfo
Me da curiosidad por qué piensas que alacritty es mejor
En hardware viejo arranca más lento, le faltan funciones prácticas como pestañas, e incluso en benchmarks queda por detrás de kitty/ghostty/konsole/foot
Aun así, me intriga que haya gente que use alacritty por alguna razón concreta
Yo todavía planeo seguir usando tmux
Me gusta porque facilita la gestión de sesiones entre varios proyectos y la recuperación de sesiones después de reiniciar
El copy/paste con mouse nunca ha sido problema gracias a tmux-yank
Llevo años usando el mismo entorno
Con la función
send-keysde tmux armé una automatización que, al refactorizar mis dotfiles, actualiza alias o archivos de configuración en múltiples paneles/sesiones al mismo tiempo y también reinicia nvim fácilmenteConté esa experiencia en un blog y video
Yo veo “you might not need tmux” de forma parecida a la discusión de “you might not need browser tabs”
Si solo manejas una o dos sesiones de terminal o páginas web, quizá no te haga falta, pero cuando pasas de eso, gestionar ventanas se vuelve demasiado incómodo y terminas reimplementando las mismas funciones
Últimamente yo simplemente intento aprovechar al máximo las funciones de gestión de ventanas de mi window manager
En vez de pestañas del navegador, pestañas de terminal o tmux, le dejo al window manager la disposición de ventanas, la gestión de pestañas, marcadores y demás, y no me resulta incómodo
Cada vez estoy más convencido de que la gestión de pestañas le corresponde al window manager, no a las aplicaciones
Mi window manager puede acomodar ventanas en mosaico o agrupar ventanas superpuestas en pestañas
Esas pestañas se pueden usar tanto con la misma app como con apps distintas
Las pestañas del navegador se pueden separar o unir fácilmente en distintas ventanas, pero las pestañas de tmux son menos flexibles en ese sentido
Con un buen window manager puedes recombinar pestañas y ventanas libremente
Mi configuración de tmux tiene pestañas clicables
La gestión de múltiples ventanas en MS Windows (Alt Tab, Win Tab, etc.) es excelente
Le pongo iconos y colores de fondo distintos a cada terminal para identificarlas, y el propio sistema operativo se encarga de buena parte de la gestión de ventanas
También he usado Mac, pero en este aspecto no me satisface tanto como Windows
Las cosas de tmux de las que otros se quejan, como el scrollback del búfer, son precisamente las que a mí me motivan a usar tmux
Mi segunda laptop es una vieja Debian dedicada solo a terminal y no tiene mouse, así que copiar y pegar solo me es posible con tmux
Para mí, tmux es irremplazable
tmux capture-pane - | vim -resulta más cómoda que la rueda de scroll del mouseLa gente de suckless adopta un enfoque totalmente opuesto: al diseñar terminales, deliberadamente decide no implementar funciones como las de tmux
Referencia: st.suckless.org/goals
Espero que Kitty tenga éxito, porque parece capaz de marcar el futuro de los emuladores de terminal
Pero yo no puedo usar Kitty para trabajar, y sin tmux perdería sesiones, disposición de ventanas, estado, búferes de copia y scrollback, así que no pienso dejarlo
Hasta que aparezca una alternativa adecuada en Windows, aunque use Kitty al lado, seguiré usando tmux para trabajar
Pero al final volví a la combinación de tmux con una terminal común
Funciona bien en todas partes, y el enfoque de combinar herramientas sobrevive mejor a largo plazo, así que tmux sigue siendo la mejor opción