tmux: la terminal persistente que uso con Claude Code y en servidores remotos
¿Qué es tmux y por qué importa?
tmux (terminal multiplexer) te permite crear y mantener vivas múltiples sesiones de terminal, incluso después de cerrar la conexión que las originó. Uso tmux todos los días para dos casos:
- Servidores remotos. Dejar corriendo un backfill, una migración o un
tail -fde logs en un servidor (EC2, una VM, un bastion) sin que muera si se corta el SSH. - Agentes de código AI en terminal. Con un agente como Claude Code trabajando una tarea larga (build, tests, un refactor grande), cerrar la terminal o la laptop y volver más tarde a ver exactamente dónde quedó, con todo el historial intacto. También es la forma más simple de correr varios agentes en paralelo, cada uno en su propia sesión.
En ambos casos el proceso sigue corriendo en la máquina: te reconectás cuando quieras y seguís viendo la terminal exactamente donde la dejaste.
Conceptos: sesión, ventana, panel
- Session (sesión): un espacio de trabajo independiente, identificado por nombre (ej.
backfill,agente-refactor). Es lo que persiste aunque cierres la terminal — podés "salir" sin matarla (detach) y volver más tarde (attach). - Window (ventana): dentro de una sesión, equivalente a una pestaña. Cada sesión puede tener varias, cada una corriendo algo distinto (una para el agente, otra para tests).
- Pane (panel): una ventana se puede dividir en varios paneles (splits), cada uno con su propia terminal, visibles al mismo tiempo.

Instalación
# macOS
brew install tmux
# Debian/Ubuntu
sudo apt install tmux
# Amazon Linux / RHEL / CentOS
sudo yum install tmux
Comandos esenciales (de menos a más)
Todos los atajos dentro de tmux empiezan con un prefix (por defecto Ctrl+b): se presiona, se suelta, y luego se presiona la tecla del comando (ej. Ctrl+b d = Ctrl+b, soltar, d).
Ciclo de vida de una sesión:
# Crear una sesión con nombre (recomendado siempre)
tmux new -s backfill
# Salir sin matarla (detach): Ctrl+b, luego d
# Ver las sesiones activas
tmux ls
# Reconectarte (attach)
tmux a -t backfill
# Matar una sesión cuando ya terminaste
tmux kill-session -t backfill
Ventanas: crear (Ctrl+b c), moverte a la siguiente/anterior (Ctrl+b n / p), renombrar (Ctrl+b ,).
Paneles: dividir horizontal (Ctrl+b ") o vertical (Ctrl+b %), moverte con Ctrl+b + flechas (o con click, si tenés el mouse habilitado — ver más abajo), poner uno en pantalla completa (Ctrl+b z), cerrarlo (Ctrl+b x).
Tip: con esto ya cubrís el 80% del uso real:
tmux new -s <nombre>para arrancar,Ctrl+b dpara salir sin cortar el proceso, ytmux a -t <nombre>para volver. El resto de los atajos está en el cheatsheet al final.
Tu caso de uso: agentes de código AI (Claude Code)

Dejar un agente corriendo sin perder el historial:
tmux new -s agente-refactor
claude
# Le pedís una tarea larga y, cuando quieras irte: Ctrl+b d
# Horas después, desde la misma máquina (o por SSH):
tmux a -t agente-refactor
# Volvés a ver la sesión tal cual la dejaste, con el output completo.
Tip: a diferencia de minimizar una terminal,
detachsobrevive a cerrar la laptop, perder WiFi, o reiniciar la app de terminal — el proceso vive en el server de tmux, no en tu ventana.
Varios agentes en paralelo, una sesión por tarea: conviene una sesión por agente (en vez de mezclarlos en paneles de una sola ventana) para poder matar o revisar uno sin tocar los demás:
tmux new -s agente-luc-101 # feature A
tmux new -s agente-luc-102 # feature B
tmux ls
tmux a -t agente-luc-102 # saltar de una tarea a otra
Configuración recomendada (~/.tmux.conf)
Esto es lo primero que configuro en cualquier máquina nueva: mouse habilitado y atajos propios.
# ~/.tmux.conf
# --- Mouse: click para cambiar de panel/ventana, scroll, resize de splits ---
set -g mouse on
# --- Splits mnemónicos (h = horizontal, v = vertical), en el directorio actual ---
unbind '"'
unbind %
bind h split-window -h -c "#{pane_current_path}"
bind v split-window -v -c "#{pane_current_path}"
# --- Recargar la config sin salir de tmux (prefix + r) ---
bind r source-file ~/.tmux.conf \; display-message "Config recargada"
# --- Numerar ventanas/paneles desde 1 ---
set -g base-index 1
setw -g pane-base-index 1
Con mouse on te movés entre paneles con un click en vez de memorizar atajos (para seleccionar y copiar texto como en cualquier terminal, mantené Shift mientras seleccionás). Cualquier atajo se puede reasignar con unbind + bind; en este ejemplo cambio los splits a h / v (más fácil de recordar que " / %), manteniendo el prefix por defecto Ctrl+b.
Cheatsheet
tmux new -s <nombre> # crear sesión
tmux a -t <nombre> # reconectar
tmux ls # listar sesiones
tmux kill-session -t <n> # matar una sesión
Ctrl+b d # detach (salir sin matar)
Ctrl+b c # nueva ventana
Ctrl+b n / p # siguiente / anterior ventana
Ctrl+b " / % # split horizontal / vertical
Ctrl+b flechas # moverse entre paneles (o click con mouse on)
Ctrl+b z # zoom del panel actual
Ctrl+b x # cerrar panel
Nota: si aplicaste la configuración de arriba, los splits quedan en
Ctrl+b h/Ctrl+b ven vez deCtrl+b "/Ctrl+b %(el prefix sigue siendoCtrl+b).
Tip: siempre nombrá tus sesiones (
tmux new -s <nombre>) en vez de dejarlas con el número por defecto — y si trabajás con agentes en paralelo, un nombre por tarea (agente-luc-101) te ahorra confundirte cuando tenés varias abiertas a la vez.
