2026-03-09

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.
Antes de salir a instalar, vale entender los problemas que tmux resuelve:
Si usas la terminal con frecuencia, tmux es de esas herramientas que después de aprender, te preguntas cómo vivías sin ella.
tmux funciona con tres capas principales:
┌─────────────────────────────────────────────┐
│ Sesión (session) │
│ ┌───────────────────────────────────────┐ │
│ │ Ventana (window) 1 │ │
│ │ ┌──────────────┐ ┌────────────────┐ │ │
│ │ │ Panel 1 │ │ Panel 2 │ │ │
│ │ │ (pane) │ │ (pane) │ │ │
│ │ │ │ │ │ │ │
│ │ └──────────────┘ └────────────────┘ │ │
│ └───────────────────────────────────────┘ │
│ ┌───────────────────────────────────────┐ │
│ │ Ventana (window) 2 │ │
│ └───────────────────────────────────────┘ │
└─────────────────────────────────────────────┘
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.
Si usas Homebrew (y deberías), la instalación es directa:
brew install tmux
sudo apt update && sudo apt install tmux -y
sudo dnf install tmux
Si configuraste WSL siguiendo nuestra guía anterior, solo abre la terminal Ubuntu y ejecuta:
sudo apt update && sudo apt install tmux -y
tmux -V
Debería aparecer algo como tmux 3.5a.
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.
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:
Ctrl + b%Al principio parece raro, pero rápidamente se vuelve instinto.
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:
| Atajo | Acción |
|---|---|
tmux new -s nombre | Crea una nueva sesión con nombre |
tmux ls | Lista todas las sesiones activas |
tmux attach -t nombre | Reconecta a una sesión existente |
tmux kill-session -t nombre | Finaliza una sesión |
Ctrl + b → d | Desconecta de la sesión (sigue corriendo) |
Ctrl + b → s | Lista sesiones y permite cambiar entre ellas |
Ctrl + b → $ | Renombra la sesión actual |
| Atajo | Acción |
|---|---|
Ctrl + b → c | Crea una nueva ventana |
Ctrl + b → n | Va a la siguiente ventana |
Ctrl + b → p | Va a la ventana anterior |
Ctrl + b → 0-9 | Va a la ventana por número |
Ctrl + b → , | Renombra la ventana actual |
Ctrl + b → & | Cierra la ventana actual |
| Atajo | Acción |
|---|---|
Ctrl + b → % | Divide verticalmente (lado a lado) |
Ctrl + b → " | Divide horizontalmente (uno encima del otro) |
Ctrl + b → flecha | Mueve el foco entre paneles |
Ctrl + b → z | Zoom: maximiza/restaura el panel actual |
Ctrl + b → x | Cierra el panel actual |
Ctrl + b → { | Mueve el panel a la izquierda |
Ctrl + b → } | Mueve el panel a la derecha |
Ctrl + b → espacio | Alterna entre layouts de paneles |
| Atajo | Acción |
|---|---|
Ctrl + b → [ | Entra en modo scroll/copia (sal con q) |
Ctrl + b → t | Muestra un reloj (sí, es inútil, pero divertido) |
Ctrl + b → ? | Lista todos los atajos disponibles |
Vamos a armar un escenario real. Digamos que estás trabajando en un proyecto web y quieres:
# 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 + b → z. Presiona de nuevo para restaurar.
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.
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 + a → r.
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 + a → I (letra I mayúscula) para instalar los plugins.
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.
¿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.
| Comando | Qué hace |
|---|---|
tmux new -s nombre | Crea sesión con nombre |
tmux ls | Lista sesiones |
tmux attach -t nombre | Reconecta a sesión |
tmux kill-session -t nombre | Finaliza sesión |
Ctrl+b d | Desconecta de la sesión |
Ctrl+b c | Nueva ventana |
Ctrl+b % | Divide verticalmente |
Ctrl+b " | Divide horizontalmente |
Ctrl+b flecha | Navega entre paneles |
Ctrl+b z | Zoom en el panel |
Ctrl+b [ | Modo scroll |
Ctrl+b ? | Ayuda |
Vale mencionar que existen otras herramientas que resuelven problemas parecidos:
Ahora que tienes tmux en tu arsenal:
~/.tmux.conf con las opciones que tengan sentido para titmux 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