Zellij para tu colega que empieza: sesiones, tabs, paneles y ya
Este post es para el amigo que abre zellij por primera vez, ve un prompt distinto,
algo raro abajo, se agobia y cierra la terminal. Nadie te lo explicó. Yo
te lo explico.
Al final te dejo una herramienta pequeña que hicimos para no repetir comandos, por si te apetece.
Qué es Zellij y por qué te lo cuento
Zellij es un terminal multiplexer. Nombre feo, idea sencilla:
- Una única terminal en pantalla, pero DENTRO tienes varias "hojas" llamadas tabs (como las de un navegador).
- Cada tab puede partirse en varios panels (paneles), lado a lado o arriba/abajo.
- Todo eso vive dentro de una sesión. Y las sesiones no mueren si cierras la ventana: siguen corriendo. Vuelves y las recuperas.
Es como tmux pero con menús visibles
abajo. Si te suena screen o tmux y te agobiaron, prueba éste antes de
rendirte con el mundo del multiplexer.
Instalar
Está en cualquier gestor moderno. En NixOS:
nix-env -iA nixos.zellijEn Debian/Ubuntu:
cargo install --locked zellijO baja el binario de https://github.com/zellij-org/zellij/releases y lo pones en tu PATH.
Comprueba:
zellij --versionLo mínimo para no morir
Cuando abres zellij por primera vez,
mira abajo. Verás una barra con textos raros tipo Ctrl + p, Ctrl + t, etc. Esa barra es la chuleta. Zellij
te dice qué modo tienes activo y qué teclas hacen cada cosa.
Los modos que importan:
| Modo | Cómo entras | Qué haces ahí |
|---|---|---|
| Pane | Ctrl + p |
Dividir la pantalla, cerrar paneles |
| Tab | Ctrl + t |
Crear/moverte entre tabs |
| Session | Ctrl + o |
Detach, listar sesiones |
| Resize | Ctrl + n |
Cambiar tamaños |
| Move | Ctrl + h |
Reordenar paneles |
Regla mental: entras en modo, haces la acción,
sales. La barra de abajo te va guiando. Cuando estés perdido,
Esc te saca del modo y vuelves a escribir
normal.
Sesiones: lo que hace a Zellij especial
Esto es el 80% de por qué merece la pena. Presta atención.
Arrancar y salirse sin cerrar nada
Abres una sesión:
zellijTrabajas, escribes, tienes cosas corriendo (un servidor, un tail -f, un htop).
Ahora cierras la ventana de la terminal. En tmux, eso lo mataba todo. En
zellij no: la sesión sigue viva por dentro.
Recuperar tu sesión
Abres una terminal nueva y:
zellij attachSi sólo tienes una sesión, te mete dentro. Ya estás en el mismo sitio, con todo tal cual lo dejaste.
Varias sesiones a la vez
Nada te impide tener varias:
zellij --session curro
zellij --session personal
zellij --session pruebasY luego:
zellij list-sessions # ver cuáles hay
zellij attach curro # meterte en una concretaEl truco: detach sin cerrar la terminal
Dentro de zellij pulsa Ctrl + o y luego
d. Te saca fuera pero la sesión sigue
viva.
Piensa en detach como "colgar un cuadro
en la pared para volver a mirarlo cuando quieras". No lo estás
rompiendo, lo estás dejando.
Matar de verdad
Cuando quieras cargarte una sesión:
zellij kill-session curro # una
zellij kill-all-sessions # todasTabs y paneles
Tabs
En modo Tab (Ctrl + t):
| Tecla | Acción |
|---|---|
n |
Nueva tab |
x |
Cerrar tab actual |
r |
Renombrar tab |
| =1..9= | Ir a tab N |
Paneles
En modo Pane (Ctrl + p):
| Tecla | Acción |
|---|---|
n |
Nuevo pane |
d |
Split horizontal (dividir abajo) |
r |
Split vertical (dividir a la derecha) |
x |
Cerrar pane |
f |
Toggle pantalla completa del pane actual |
w |
Toggle pane flotante |
e |
Toggle embed (flotante <-> tiled) |
El w es magia. Te saca un pane flotando
encima de todo, como una ventana. Perfecto para consultar algo rápido
sin romper la disposición que tienes. w
otra vez para esconderlo.
Moverse entre paneles
Sin modo, directo:
Alt + flechas: te mueves entre paneles del tab actual.Alt + n: nuevo pane rápido.
Layouts: guardar la disposición
Un layout es un archivo .kdl que describe qué tabs y qué paneles quieres
al abrir. Si trabajas siempre igual (editor + logs + shell), te lo dejas
montado en un fichero y arrancas con un comando.
Ejemplo mínimo ~/.config/zellij/layouts/dev.kdl:
layout {
tab name="editor" {
pane
}
tab name="logs" {
pane command="tail" {
args "-f" "/tmp/mi-log"
}
}
}
Y arrancas con:
zellij --layout devCuando le pilles el gusto, esto vale su peso en oro.
El gotcha que te va a pasar (la sesión "resurrect")
Si cierras Zellij del todo y arrancas zellij --session foo otra vez… por defecto NO
vuelve al estado en el que estaba, arranca limpio. Frustrante.
Solución: en ~/.config/zellij/config.kdl descomenta y
pon:
session_serialization true
serialize_pane_viewport true
A partir de ese momento, Zellij guarda cada 10s la estructura de tabs y paneles al disco. Cuando vuelvas, hará resurrect del último estado. Si el proceso que tenías dentro estaba vivo (un editor, un servidor), no lo revive: la memoria de ese proceso murió. Pero la disposición sí vuelve, y con los CWDs correctos.
Multi-cliente: dos ventanas mirando la misma sesión
Zellij deja que dos terminales estén "attach" a la misma sesión al mismo tiempo. Útil para compartir con alguien por SSH, o para tener el mismo tab abierto en dos monitores.
Gotcha: el tamaño de la sesión lo fija el PRIMER cliente que entra. Los siguientes tienen que caber ahí. Si tu colega entra desde una resolución más pequeña, verás la sesión encogida.
Otro detalle que igual quieres: por defecto, los dos clientes ven lo
mismo (mirror). Si prefieres que cada uno navegue independiente por sus
tabs, en config.kdl:
mirror_session false
Con eso cada cliente puede estar en un tab distinto en paralelo.
Chuleta que caben en un post-it
zellij # arrancar
zellij --session NAME # arrancar con nombre
zellij attach # volver
zellij attach NAME # volver a una concreta
zellij list-sessions # cuáles hay
zellij kill-session NAME # matar una
Dentro de la sesión:
Ctrl+p → modo pane (d/r split, w flotante, x cerrar)
Ctrl+t → modo tab (n nueva, x cerrar, 1..9 saltar)
Ctrl+o → modo session (d = detach)
Ctrl+n → modo resize (flechas)
Alt+flechas → moverte entre paneles rápido
Esc → salir del modo actual
Guarda esto y en dos días estás volando.
Y ahora la herramienta
Si te ha gustado y quieres subir un peldaño, tengo una utilidad
pequeña llamada zellij-pro: un wrapper en
bash sobre el CLI de zellij que empaqueta las cosas que hago 20 veces al
día.
Cosas que sabe hacer:
- Abrir un pane flotante con un comando y avisarte por libnotify cuando termine.
- Broadcast: escribir en varios paneles a la vez (útil para actualizar varias máquinas por SSH).
- Guardar/cargar layouts con nombre.
- Grabar un pane como
.cast(asciinema) y sacar un GIF automático del terminal para pegarlo en un post o Slack. - Salida JSON para scripts.
- Cero dependencias obligatorias (
notify-send,jq,asciinema,aggson opcionales).
Está bajo licencia MIT y es puro bash, unos 1000 líneas legibles.
- Repo: https://github.com/pascualmg/zellij-pro
- Instalación:
git clone https://github.com/pascualmg/zellij-pro
sudo install zellij-pro/bin/zellij-pro /usr/local/bin/
zellij-pro --helpSi además usas Claude Code, dentro del repo hay un SKILL.md que Claude entiende como manual de la
herramienta. Copiándolo a ~/.claude/skills/zellij-pro/, tu Claude ya sabe
cuándo llamar a zellij-pro y con qué
subcomandos.
Para terminar
Zellij no es magia y no arregla ningún problema del terminal. Lo único que hace, hecho bien, es que dejes de perder trabajo cuando cierras una ventana y de recordar diez atajos distintos para partir la pantalla.
Un día te das cuenta de que no cierras nunca la sesión, y cuando reinicias vuelves al mismo sitio. Ese día empieza a molar.
Suerte y a jugar.
— zellijota
Comentarios (0)
Sin comentarios todavia. Se el primero!
Deja un comentario