17 puntos por GN⁺ 2025-08-04 | 7 comentarios | Compartir por WhatsApp
  • 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, nohup o disown, 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
  • 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
  • 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 nvim hay 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

 
egirlasm 2025-08-05

Hoy en día con IA uno genera cosas como tmux y 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.

 
barca105 2025-08-05

Lo estoy usando cómodamente con wezterm.

 
iolothebard 2025-08-04

¡Screen es lo máximo!

 
helio 2025-08-04

cargo install shpool... mejor me quedo con tmux... ¡tiene que haber paquetes para cada SO!

 
mineboo 2025-08-04

Hay una gran promesa emergente llamada Zellij. La recomiendo muchísimo.

 
xguru 2025-08-05

Zellij - Terminal para desarrolladores y Ops

Esto también lo había publicado hace bastante tiempo jaja

 
GN⁺ 2025-08-04
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 red
    Gracias 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 grep se pueden enviar directamente al portapapeles del sistema
      tmux 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 stuff

    • Con 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 TERM en tmux es el mismo problema que existe en todos los emuladores/programas de terminal
    En sistemas Unix y Linux, los conceptos de TERM y de terminfo/termcap son fundamentales, así que una configuración correcta es indispensable
    No 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 TERM específico de tmux, y fuera de él debes usar el TERM que corresponda a tu terminal
      Basta ver el FAQ de tmux: la mayoría de los problemas de visualización provienen de no tener TERM configurado correctamente

  • La 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 TERM aún podrían transliterarse de otra forma

    • Mi 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-keys de 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ácilmente
    Conté 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

    • A veces la combinación tmux capture-pane - | vim - resulta más cómoda que la rueda de scroll del mouse
  • La 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

    • Se podría decir que suckless y Kitty están en extremos opuestos en cuanto a filosofía de desarrollo
  • 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

    • También probé Kitty un tiempo, y me impresionó que pudiera reproducir un entorno parecido al de mi configuración de tmux
      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