Dominando tmux: el multiplexor de terminal

2026-03-09

post-thumb

Índice

Si alguna vez perdiste lo que estabas haciendo en la terminal porque cerraste una pestaña sin querer, o estuviste alternando frenéticamente entre varias ventanas mientras corrías un servidor, mirabas logs y editabas código al mismo tiempo, tmux va a cambiar tu vida.

tmux es un multiplexor de terminal. En términos simples: permite crear, dividir y gestionar múltiples sesiones de terminal dentro de una única ventana. Pero el verdadero superpoder es que esas sesiones persisten incluso cuando cierras la terminal o pierdes la conexión SSH. Todo sigue corriendo en segundo plano, esperando que vuelvas.


Por qué usar tmux?

Antes de salir a instalar, vale entender los problemas que tmux resuelve:

  • Persistencia: ¿cerraste la terminal? ¿Se cayó internet en medio de un SSH? No importa. Tu sesión sigue viva. Solo hay que reconectar.
  • Multiplexación: divide tu pantalla en paneles y ventanas. Corre el servidor en un rincón, mira los logs en otro y edita código en el tercero. Todo en la misma pantalla.
  • Reproducibilidad: crea layouts guardados para tus proyectos. Un solo comando abre todo tu entorno de trabajo.
  • Trabajo remoto: esencial para quienes trabajan en servidores vía SSH. ¿Te desconectaste? Reconectas y todo está exactamente donde lo dejaste.

Si usas la terminal con frecuencia, tmux es de esas herramientas que después de aprender, te preguntas cómo vivías sin ella.


Conceptos fundamentales

tmux funciona con tres capas principales:

┌─────────────────────────────────────────────┐
│  Sesión (session)                           │
│  ┌───────────────────────────────────────┐  │
│  │  Ventana (window) 1                  │  │
│  │  ┌──────────────┐ ┌────────────────┐  │  │
│  │  │  Panel 1     │ │   Panel 2      │  │  │
│  │  │  (pane)      │ │   (pane)       │  │  │
│  │  │              │ │                │  │  │
│  │  └──────────────┘ └────────────────┘  │  │
│  └───────────────────────────────────────┘  │
│  ┌───────────────────────────────────────┐  │
│  │  Ventana (window) 2                  │  │
│  └───────────────────────────────────────┘  │
└─────────────────────────────────────────────┘
  • Sesión: el contenedor principal. Puedes tener varias sesiones (una por proyecto, por ejemplo).
  • Ventana: funciona como pestañas dentro de una sesión. Cada ventana ocupa la pantalla completa.
  • Panel: divisiones dentro de una ventana. Es aquí donde sucede la magia de la pantalla dividida.

Piénsalo así: las sesiones son tus proyectos, las ventanas son las pantallas del proyecto y los paneles son las divisiones dentro de cada pantalla.


Instalación

macOS

Si usas Homebrew (y deberías), la instalación es directa:

brew install tmux

Ubuntu / Debian

sudo apt update && sudo apt install tmux -y

Fedora

sudo dnf install tmux

Windows (vía WSL)

Si configuraste WSL siguiendo nuestra guía anterior, solo abre la terminal Ubuntu y ejecuta:

sudo apt update && sudo apt install tmux -y

Verificar la instalación

tmux -V

Debería aparecer algo como tmux 3.5a.


Primeros pasos

Creando tu primera sesión

Para iniciar tmux, simplemente ejecuta:

tmux

Listo. Estás dentro de una sesión tmux. Fíjate en la barra verde (o de color) en la parte inferior de la pantalla: esa es la barra de estado de tmux, mostrando información como el nombre de la sesión y las ventanas abiertas.

Pero lo ideal es siempre crear sesiones con nombre, para facilitar la organización:

tmux new -s meu-projeto

Esto crea una sesión llamada meu-projeto. Mucho más fácil de identificar cuando tengas varias sesiones corriendo.

El prefijo: la tecla mágica

Toda interacción con tmux comienza con un prefijo. Por defecto, es Ctrl + b. Presionas el prefijo, sueltas, y después presionas la tecla del comando.

Por ejemplo, para dividir la pantalla verticalmente:

  1. Presiona Ctrl + b
  2. Suelta
  3. Presiona %

Al principio parece raro, pero rápidamente se vuelve instinto.


Comandos esenciales

Aquí está la referencia rápida de los comandos que vas a usar en el día a día. Todos comienzan con el prefijo Ctrl + b:

Sesiones

AtajoAcción
tmux new -s nombreCrea una nueva sesión con nombre
tmux lsLista todas las sesiones activas
tmux attach -t nombreReconecta a una sesión existente
tmux kill-session -t nombreFinaliza una sesión
Ctrl + bdDesconecta de la sesión (sigue corriendo)
Ctrl + bsLista sesiones y permite cambiar entre ellas
Ctrl + b$Renombra la sesión actual

Ventanas (pestañas)

AtajoAcción
Ctrl + bcCrea una nueva ventana
Ctrl + bnVa a la siguiente ventana
Ctrl + bpVa a la ventana anterior
Ctrl + b0-9Va a la ventana por número
Ctrl + b,Renombra la ventana actual
Ctrl + b&Cierra la ventana actual

Paneles (divisiones de pantalla)

AtajoAcción
Ctrl + b%Divide verticalmente (lado a lado)
Ctrl + b"Divide horizontalmente (uno encima del otro)
Ctrl + bflechaMueve el foco entre paneles
Ctrl + bzZoom: maximiza/restaura el panel actual
Ctrl + bxCierra el panel actual
Ctrl + b{Mueve el panel a la izquierda
Ctrl + b}Mueve el panel a la derecha
Ctrl + bespacioAlterna entre layouts de paneles

Otros

AtajoAcción
Ctrl + b[Entra en modo scroll/copia (sal con q)
Ctrl + btMuestra un reloj (sí, es inútil, pero divertido)
Ctrl + b?Lista todos los atajos disponibles

Workflow en la práctica

Vamos a armar un escenario real. Digamos que estás trabajando en un proyecto web y quieres:

  • Un panel para el editor de código
  • Un panel para el servidor de desarrollo
  • Un panel para comandos git

Paso a paso

# Crea una sesión para el proyecto
tmux new -s webapp

# Ahora estás en el primer panel; úsalo para editar código
# Divide verticalmente (crea panel a la derecha)
# Ctrl + b, %

# En el panel de la derecha, corre el servidor
npm run dev

# Divide el panel de la derecha horizontalmente
# Ctrl + b, "

# En el panel de abajo a la derecha, usa para git
git status

El resultado visual queda así:

┌──────────────────────┬──────────────────┐
│                      │  npm run dev     │
│   editor / código    │  (servidor)      │
│                      ├──────────────────┤
│                      │  git status      │
│                      │  (git)           │
└──────────────────────┴──────────────────┘

Para navegar entre los paneles, usa Ctrl + b seguido de las flechas del teclado. Para maximizar temporalmente un panel (zoom), usa Ctrl + bz. Presiona de nuevo para restaurar.


Desconectar y reconectar: el superpoder

Esta es la funcionalidad que hace que tmux valga la pena. Imagina que estás corriendo un build demorado o monitoreando logs:

# Desconecta de la sesión (todo sigue corriendo)
# Ctrl + b, d

# Te vas, cierras la terminal, duermes...

# Al día siguiente, lista las sesiones
tmux ls

# Reconecta
tmux attach -t webapp

Todo está exactamente como lo dejaste. Servidor corriendo, logs fluyendo, código abierto. Esto es especialmente útil cuando trabajas con servidores remotos vía SSH.


Configurando tmux a tu manera

El archivo de configuración está en ~/.tmux.conf. Si no existe, solo créalo. Aquí van algunas configuraciones que van a mejorar bastante tu experiencia:

# Cambia el prefijo de Ctrl+b a Ctrl+a (más cómodo)
unbind C-b
set -g prefix C-a
bind C-a send-prefix

# Activa el mouse (scroll, clic en paneles, redimensionar)
set -g mouse on

# Divide paneles con | y - (más intuitivo que % y ")
bind | split-window -h
bind - split-window -v
unbind '"'
unbind %

# Empieza a contar ventanas y paneles desde 1 (en vez de 0)
set -g base-index 1
setw -g pane-base-index 1

# Renumera ventanas cuando una se cierra
set -g renumber-windows on

# Aumenta el historial de scroll
set -g history-limit 10000

# Reduce el delay del escape (importante para Vim/Neovim)
set -sg escape-time 10

# Recarga la config con prefijo + r
bind r source-file ~/.tmux.conf \; display "Config recargada!"

Después de crear o editar el archivo, recarga la configuración:

tmux source-file ~/.tmux.conf

O, si agregaste el atajo de arriba, solo presiona Ctrl + ar.


Temas para dejarlo bonito

El tmux por defecto es funcional, pero no es exactamente bonito. Catppuccin y Dracula son dos temas populares que transforman la apariencia.

Una opción aún más práctica es TPM (Tmux Plugin Manager), que facilita la instalación de plugins y temas:

git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm

Agrega al final de tu ~/.tmux.conf:

# Lista de plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'catppuccin/tmux'

# Inicializa TPM (mantener esta línea al final del archivo)
run '~/.tmux/plugins/tpm/tpm'

Dentro de tmux, presiona Ctrl + aI (letra I mayúscula) para instalar los plugins.


tmux + herramientas de IA

Si usas Claude Code o Codex CLI, tmux es el compañero perfecto. Un layout productivo:

┌──────────────────────┬──────────────────┐
│                      │                  │
│   Claude Code /      │  servidor /      │
│   Codex CLI          │  build           │
│                      │                  │
│                      ├──────────────────┤
│                      │                  │
│                      │  git / tests     │
│                      │                  │
└──────────────────────┴──────────────────┘

El agente de IA trabaja en el panel de la izquierda mientras tú monitoreas el servidor y corres tests en los paneles de la derecha. Sin necesidad de alternar entre pestañas.


Script de automatización

¿Cansado de armar el layout manualmente cada vez? Crea un script. Guárdalo como ~/dev-tmux.sh:

#!/bin/bash

SESSION="dev"

# Si la sesión ya existe, solo reconecta
tmux has-session -t $SESSION 2>/dev/null
if [ $? -eq 0 ]; then
  tmux attach -t $SESSION
  exit 0
fi

# Crea la sesión con la primera ventana
tmux new-session -d -s $SESSION -n "code"

# Divide: panel de la derecha para servidor
tmux split-window -h -t $SESSION:1

# Divide el panel de la derecha: git abajo
tmux split-window -v -t $SESSION:1.2

# Foco en el panel principal (izquierda)
tmux select-pane -t $SESSION:1.1

# Conecta a la sesión
tmux attach -t $SESSION

Hazlo ejecutable y córrelo:

chmod +x ~/dev-tmux.sh
~/dev-tmux.sh

Cada vez que ejecutes ese script, va a crear (o reconectar a) una sesión con tu layout listo.


Referencia rápida

ComandoQué hace
tmux new -s nombreCrea sesión con nombre
tmux lsLista sesiones
tmux attach -t nombreReconecta a sesión
tmux kill-session -t nombreFinaliza sesión
Ctrl+b dDesconecta de la sesión
Ctrl+b cNueva ventana
Ctrl+b %Divide verticalmente
Ctrl+b "Divide horizontalmente
Ctrl+b flechaNavega entre paneles
Ctrl+b zZoom en el panel
Ctrl+b [Modo scroll
Ctrl+b ?Ayuda

Alternativas a tmux

Vale mencionar que existen otras herramientas que resuelven problemas parecidos:

  • Zellij: alternativa moderna escrita en Rust. Tiene una curva de aprendizaje menor y atajos más intuitivos. Si tmux parece demasiado complejo al inicio, Zellij es una excelente puerta de entrada.
  • GNU Screen: el abuelo de los multiplexores. Más simple, menos funcionalidades, pero presente en casi todo servidor Linux por defecto.

Próximos pasos

Ahora que tienes tmux en tu arsenal:

  1. Empieza simple: usa sesiones con nombre y aprende a desconectar/reconectar
  2. Divide la pantalla: practica los comandos de paneles en tu flujo diario
  3. Configura: crea tu ~/.tmux.conf con las opciones que tengan sentido para ti
  4. Automatiza: arma scripts para tus proyectos más frecuentes
  5. Explora plugins: TPM abre un mundo de posibilidades

tmux es de esas herramientas que recompensa la inversión. Puede parecer verboso al principio, pero después de una semana usándolo, no vas a querer volver.

Te gustó? Mándame un saludo en twitter @lauralesteves