Aller au contenu
Outils medium

Zellij : multiplexeur de terminal moderne

16 min de lecture

Zellij organise votre terminal en panneaux et onglets avec une interface visuelle intuitive. Contrairement à tmux qui demande de mémoriser des raccourcis, Zellij affiche en permanence les actions disponibles. Sessions persistantes incluses. Ce guide couvre l'installation avec mise, les commandes essentielles et la configuration.

Les deux sont des multiplexeurs de terminal, ils permettent de diviser votre terminal, gérer des sessions persistantes, et ne plus perdre votre travail en cas de déconnexion.

La différence principale est l'approche utilisateur :

AspecttmuxZellij
Courbe d'apprentissageRaccourcis à mémoriserInterface visuelle, raccourcis affichés
ConfigurationFichier .tmux.conf (syntaxe custom)Fichiers KDL (plus lisibles)
PluginsÉcosystème matureSupport WebAssembly (moderne)
AdoptionStandard depuis 2007Projet récent (2021), en croissance
Présence serveursInstallé partoutRarement préinstallé

Recommandation :

  • Zellij si vous débutez ou préférez une interface guidée
  • tmux si vous travaillez sur des serveurs où il est déjà installé, ou si vous avez déjà vos habitudes

Version actuelle : 0.43.1 (janvier 2026). Zellij est un binaire statique unique écrit en Rust : aucune dépendance système à installer, aucun service à démarrer. Les quatre méthodes ci-dessous produisent le même résultat, seule la gestion des mises à jour change. Sur un poste de travail, mise est le choix le plus confortable car il permet de changer de version sans réinstaller.

mise permet d'installer et gérer les versions de Zellij :

Fenêtre de terminal
mise install zellij@latest
mise use -g zellij@latest

Vérification :

Fenêtre de terminal
zellij --version
# zellij 0.43.1

Une session Zellij est un processus serveur qui survit à la fermeture de votre terminal : c'est lui qui détient vos panneaux, vos onglets et les programmes qui y tournent. La commande zellij en crée une nouvelle ou vous propose de reprendre une session existante. Trois façons de démarrer couvrent la quasi-totalité des usages : session anonyme, session nommée, ou layout prédéfini.

Lancez simplement :

Fenêtre de terminal
zellij

Zellij démarre avec :

  • Un unique panneau (votre shell)
  • Une barre d'onglets en haut
  • Une barre de statut en bas avec tous les raccourcis disponibles

C'est la force de Zellij : vous n'avez pas besoin de mémoriser les raccourcis, ils sont affichés.

Nommer la session est indispensable dès que vous en gardez plusieurs ouvertes : c'est ce nom que vous passerez à zellij attach pour la retrouver.

Fenêtre de terminal
zellij -s devops

Un layout décrit la disposition des panneaux au démarrage. Zellij en embarque plusieurs, utilisables sans configuration préalable.

Fenêtre de terminal
# Avec un navigateur de fichiers
zellij --layout strider
# Layout compact (pas de barre de statut)
zellij --layout compact

Zellij fonctionne par modes. Le mode actuel est affiché dans la barre de statut. Chaque mode a ses propres raccourcis.

Chaque mode réserve les touches simples (N, X, R, les flèches) à une famille d'actions. Vous entrez dans un mode avec la combinaison indiquée, vous agissez, puis vous revenez au mode Normal avec Entrée ou Echap. Retenez surtout Ctrl+P et Ctrl+T : ils couvrent la gestion des panneaux et des onglets, soit l'essentiel de l'usage quotidien.

ModeComment y accéderCe qu'il permet
NormalPar défautTaper dans le terminal
PaneCtrl+PCréer, fermer, déplacer des panneaux
TabCtrl+TCréer, fermer, renommer des onglets
ResizeCtrl+NRedimensionner les panneaux
ScrollCtrl+SScroller dans l'historique
LockedCtrl+GDésactiver les raccourcis Zellij

Ces raccourcis fonctionnent sans changer de mode :

RaccourciAction
Alt+NNouveau panneau
Alt+←↑→↓Naviguer entre les panneaux
Alt++Agrandir le panneau actif
Alt+-Réduire le panneau actif
Alt+[1-9]Aller à l'onglet N

Appuyez sur Ctrl+P pour entrer en mode Pane, puis :

ToucheAction
NNouveau panneau (horizontal)
DNouveau panneau (vertical)
XFermer le panneau actif
FPlein écran (toggle)
WPanneau flottant (toggle)
RRenommer le panneau
←↑→↓Naviguer

Appuyez sur Entrée ou Echap pour revenir en mode Normal.

Appuyez sur Ctrl+T pour entrer en mode Tab, puis :

ToucheAction
NNouvel onglet
XFermer l'onglet
RRenommer l'onglet
TabOnglet suivant
←→Naviguer entre onglets

Comme tmux, Zellij garde vos sessions actives même quand vous vous déconnectez : les programmes lancés dans les panneaux continuent de tourner. C'est la raison principale d'utiliser un multiplexeur sur un serveur distant, puisqu'une coupure SSH n'interrompt plus une migration ou une compilation en cours. Les quatre commandes qui suivent couvrent tout le cycle de vie d'une session : se détacher, lister, se rattacher, supprimer.

Se détacher ferme votre affichage sans arrêter la session ni les processus qu'elle héberge.

Fenêtre de terminal
# Dans Zellij : Ctrl+O puis D
# Ou directement :
zellij action detach

Vous revenez à votre terminal normal. La session continue en arrière-plan.

La liste affiche les sessions vivantes et celles marquées EXITED, c'est-à-dire dont tous les panneaux se sont fermés mais dont la disposition reste récupérable.

Fenêtre de terminal
zellij list-sessions
# ou
zellij ls

Exemple de sortie :

devops [Created 2h ago]
monitoring [Created 30m ago] (EXITED - attach to resurrect)

Sans argument, zellij attach reprend la dernière session utilisée ; avec un nom, il rejoint précisément celle-là.

Fenêtre de terminal
# À la dernière session
zellij attach
# À une session spécifique
zellij attach devops
# ou
zellij a devops

La suppression est définitive : elle efface la session enregistrée sur le disque, y compris les sessions EXITED qu'on aurait pu relancer.

Fenêtre de terminal
# Une session spécifique
zellij delete-session devops
# ou
zellij d devops
# Toutes les sessions
zellij delete-all-sessions

Zellij utilise le langage KDL (KDL Document Language, un format de configuration à blocs et accolades) pour sa configuration, plus lisible que la syntaxe tmux. Aucun fichier n'est nécessaire pour démarrer : Zellij fonctionne entièrement avec ses valeurs par défaut. Vous créez une configuration le jour où vous voulez fixer un thème, changer un raccourci ou activer la copie automatique.

La commande ci-dessous écrit la configuration par défaut complète dans un fichier, ce qui vous donne la liste exhaustive des options commentées comme point de départ.

Fenêtre de terminal
mkdir -p ~/.config/zellij
zellij setup --dump-config > ~/.config/zellij/config.kdl

Éditez ~/.config/zellij/config.kdl :

// Thème (voir zellij.dev/documentation/theme-gallery)
theme "dracula"
// Interface simplifiée (si pas de police Nerd Font)
simplified_ui true
// Copier automatiquement la sélection
copy_on_select true
// Comportement au lancement
on_force_close "detach" // detach au lieu de quitter
// Garder la session après la dernière commande
pane_frames true

Les raccourcis se déclarent par mode : le bloc normal ne s'applique qu'au mode Normal. unbind libère une combinaison utilisée par Zellij pour la rendre à l'application qui tourne dans le panneau.

keybinds {
normal {
// Copier avec Alt+C
bind "Alt c" { Copy; }
}
// Désactiver un raccourci globalement
unbind "Ctrl q"
}

Les layouts définissent la disposition initiale de vos panneaux et onglets, et peuvent lancer une commande dans chacun d'eux. C'est le mécanisme qui remplace les scripts de démarrage tmux : un fichier KDL versionné avec le projet, un zellij --layout et l'environnement de travail est en place. Les layouts se placent dans ~/.config/zellij/layouts/ et se désignent par leur nom de fichier sans extension.

Partir du layout par défaut évite de deviner la syntaxe : la sortie contient les blocs pane et les plugins de barre que Zellij utilise lui-même.

Fenêtre de terminal
zellij setup --dump-layout default

Créez ~/.config/zellij/layouts/devops.kdl :

layout {
// Barre d'onglets
pane size=1 borderless=true {
plugin location="tab-bar"
}
// Zone principale : 2 panneaux verticaux
pane split_direction="vertical" {
pane size="60%" {
// Éditeur à gauche
command "vim"
}
pane size="40%" {
// Terminal à droite
}
}
// Panneau de logs en bas (20% de hauteur)
pane size="20%" {
command "tail"
args "-f" "/var/log/syslog"
}
// Barre de statut
pane size=1 borderless=true {
plugin location="status-bar"
}
}

Utilisation :

Fenêtre de terminal
zellij --layout devops

Un bloc tab par onglet, avec son nom affiché dans la barre du haut. Chaque onglet garde sa propre découpe, ce qui permet de séparer édition, exécution et journaux sans encombrer un seul écran.

layout {
tab name="code" {
pane command="vim"
}
tab name="shell" {
pane
}
tab name="logs" split_direction="vertical" {
pane command="tail" {
args "-f" "/var/log/syslog"
}
pane command="htop"
}
}

Zellij peut être contrôlé depuis l'extérieur avec zellij action. Les commandes s'appliquent à la session en cours et au panneau actif, ce qui les rend utilisables depuis un script, un raccourci d'éditeur ou un autre panneau. C'est le point d'entrée pour automatiser un poste de travail sans écrire de plugin.

Fenêtre de terminal
# Ouvrir un fichier dans un nouveau panneau
zellij action edit mon_fichier.py
# Fermer le panneau actif
zellij action close-pane
# Exporter le contenu du panneau
zellij action dump-screen /tmp/screen.txt
# Envoyer une commande au panneau actif
zellij action write-chars "ls -la"

Zellij supporte les plugins en WebAssembly, un format binaire portable exécuté dans un bac à sable : un plugin ne dépend donc pas du langage ni de la distribution. Les barres d'onglets et de statut que vous voyez à l'écran sont elles-mêmes des plugins, chargés par le layout. Voici ceux fournis avec Zellij :

PluginDescription
tab-barBarre d'onglets
status-barBarre de statut avec raccourcis
striderNavigateur de fichiers
session-managerGestionnaire de sessions

Pour utiliser un plugin dans un layout :

pane size=1 borderless=true {
plugin location="tab-bar"
}

Des plugins communautaires sont disponibles sur zellij.dev/documentation/plugin-examples.

La plupart des problèmes rencontrés avec Zellij viennent de l'affichage (police ou nombre de couleurs du terminal) ou d'un conflit de raccourcis avec l'application qui tourne dans le panneau. Avant de modifier la configuration, notez le mode affiché dans la barre de statut : un mode Locked actif explique à lui seul la plupart des raccourcis qui ne répondent plus.

ProblèmeCauseSolution
Caractères bizarresPas de police Nerd FontAjouter simplified_ui true dans config.kdl
Raccourcis ne fonctionnent pasMode Locked actifAppuyer sur Ctrl+G
Session EXITEDLe dernier pane a été fermézellij attach nom pour ressusciter
Couleurs incorrectesTerminal ne supporte pas 256 couleursVérifier echo $TERM
  1. Zellij = tmux avec interface visuelle, Raccourcis affichés en permanence
  2. Installation recommandée : mise install zellij@latest && mise use -g zellij@latest
  3. Modes : Normal, Pane (Ctrl+P), Tab (Ctrl+T), Resize (Ctrl+N), Scroll (Ctrl+S)
  4. Sessions persistantes : zellij -s nom, détacher avec Ctrl+O D, rattacher avec zellij a nom
  5. Configuration : ~/.config/zellij/config.kdl (format KDL)
  6. Layouts : définissent la disposition initiale (panneaux, onglets, commandes)
  7. Mode Locked (Ctrl+G) : désactive les raccourcis Zellij pour les apps conflictuantes

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracking. Un soutien, même symbolique, m'aide à couvrir l'hébergement et à garder ces ressources gratuites. Merci pour votre appui.

Le formulaire ne s'affiche pas ? Ouvrir Ko-fi dans un onglet.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn