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.
Zellij vs tmux : lequel choisir ?
Section intitulée « Zellij vs tmux : lequel choisir ? »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 :
| Aspect | tmux | Zellij |
|---|---|---|
| Courbe d'apprentissage | Raccourcis à mémoriser | Interface visuelle, raccourcis affichés |
| Configuration | Fichier .tmux.conf (syntaxe custom) | Fichiers KDL (plus lisibles) |
| Plugins | Écosystème mature | Support WebAssembly (moderne) |
| Adoption | Standard depuis 2007 | Projet récent (2021), en croissance |
| Présence serveurs | Installé partout | Rarement 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
Installation
Section intitulée « Installation »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 :
mise install zellij@latestmise use -g zellij@latestVérification :
zellij --version# zellij 0.43.1Zellij n'est pas dans les dépôts officiels. Téléchargez l'archive et le fichier de somme de contrôle publié à côté d'elle, puis vérifiez l'empreinte avant d'installer le binaire :
VERSION="0.43.1"BASE="https://github.com/zellij-org/zellij/releases/download/v${VERSION}"
curl -LO "${BASE}/zellij-x86_64-unknown-linux-musl.tar.gz"curl -LO "${BASE}/zellij-x86_64-unknown-linux-musl.sha256sum"
tar xzf zellij-x86_64-unknown-linux-musl.tar.gzLe fichier .sha256sum publié par le projet couvre le binaire extrait, pas l'archive, et il référence un chemin de compilation interne. La vérification se fait donc sur le fichier zellij obtenu après extraction :
echo "$(awk '{print $1}' zellij-x86_64-unknown-linux-musl.sha256sum) zellij" \ | sha256sum --check# zellij: OKTant que cette commande ne répond pas OK, n'installez rien : l'archive est corrompue ou ne provient pas de la release attendue. Une fois la vérification passée :
sudo install -m 0755 zellij /usr/local/bin/zellijzellij --version# zellij 0.43.1brew install zellijzellij --versionSi vous avez Rust installé :
cargo install zellijLancer Zellij
Section intitulée « Lancer Zellij »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.
Première session
Section intitulée « Première session »Lancez simplement :
zellijZellij 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.
Session nommée
Section intitulée « Session nommée »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.
zellij -s devopsAvec un layout prédéfini
Section intitulée « Avec un layout prédéfini »Un layout décrit la disposition des panneaux au démarrage. Zellij en embarque plusieurs, utilisables sans configuration préalable.
# Avec un navigateur de fichierszellij --layout strider
# Layout compact (pas de barre de statut)zellij --layout compactNavigation de base
Section intitulée « Navigation de base »Zellij fonctionne par modes. Le mode actuel est affiché dans la barre de statut. Chaque mode a ses propres raccourcis.
Modes principaux
Section intitulée « Modes principaux »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.
| Mode | Comment y accéder | Ce qu'il permet |
|---|---|---|
| Normal | Par défaut | Taper dans le terminal |
| Pane | Ctrl+P | Créer, fermer, déplacer des panneaux |
| Tab | Ctrl+T | Créer, fermer, renommer des onglets |
| Resize | Ctrl+N | Redimensionner les panneaux |
| Scroll | Ctrl+S | Scroller dans l'historique |
| Locked | Ctrl+G | Désactiver les raccourcis Zellij |
Raccourcis essentiels
Section intitulée « Raccourcis essentiels »Ces raccourcis fonctionnent sans changer de mode :
| Raccourci | Action |
|---|---|
Alt+N | Nouveau panneau |
Alt+←↑→↓ | Naviguer entre les panneaux |
Alt++ | Agrandir le panneau actif |
Alt+- | Réduire le panneau actif |
Alt+[1-9] | Aller à l'onglet N |
Gestion des panneaux (mode Pane)
Section intitulée « Gestion des panneaux (mode Pane) »Appuyez sur Ctrl+P pour entrer en mode Pane, puis :
| Touche | Action |
|---|---|
N | Nouveau panneau (horizontal) |
D | Nouveau panneau (vertical) |
X | Fermer le panneau actif |
F | Plein écran (toggle) |
W | Panneau flottant (toggle) |
R | Renommer le panneau |
←↑→↓ | Naviguer |
Appuyez sur Entrée ou Echap pour revenir en mode Normal.
Gestion des onglets (mode Tab)
Section intitulée « Gestion des onglets (mode Tab) »Appuyez sur Ctrl+T pour entrer en mode Tab, puis :
| Touche | Action |
|---|---|
N | Nouvel onglet |
X | Fermer l'onglet |
R | Renommer l'onglet |
Tab | Onglet suivant |
←→ | Naviguer entre onglets |
Sessions persistantes
Section intitulée « Sessions persistantes »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 d'une session
Section intitulée « Se détacher d'une session »Se détacher ferme votre affichage sans arrêter la session ni les processus qu'elle héberge.
# Dans Zellij : Ctrl+O puis D# Ou directement :zellij action detachVous revenez à votre terminal normal. La session continue en arrière-plan.
Lister les sessions
Section intitulée « Lister les sessions »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.
zellij list-sessions# ouzellij lsExemple de sortie :
devops [Created 2h ago]monitoring [Created 30m ago] (EXITED - attach to resurrect)Se rattacher à une session
Section intitulée « Se rattacher à une session »Sans argument, zellij attach reprend la dernière session utilisée ; avec un nom, il rejoint précisément celle-là.
# À la dernière sessionzellij attach
# À une session spécifiquezellij attach devops# ouzellij a devopsSupprimer une session
Section intitulée « Supprimer une session »La suppression est définitive : elle efface la session enregistrée sur le disque, y compris les sessions EXITED qu'on aurait pu relancer.
# Une session spécifiquezellij delete-session devops# ouzellij d devops
# Toutes les sessionszellij delete-all-sessionsConfiguration
Section intitulée « Configuration »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.
Créer le fichier de configuration
Section intitulée « Créer le fichier de configuration »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.
mkdir -p ~/.config/zellijzellij setup --dump-config > ~/.config/zellij/config.kdlOptions utiles
Section intitulée « Options utiles »É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électioncopy_on_select true
// Comportement au lancementon_force_close "detach" // detach au lieu de quitter
// Garder la session après la dernière commandepane_frames truePersonnaliser les raccourcis
Section intitulée « Personnaliser les raccourcis »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"}Layouts personnalisés
Section intitulée « Layouts personnalisés »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.
Voir le layout par défaut
Section intitulée « Voir le layout par défaut »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.
zellij setup --dump-layout defaultCréer un layout personnalisé
Section intitulée « Créer un layout personnalisé »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 :
zellij --layout devopsLayout multi-onglets
Section intitulée « Layout multi-onglets »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" }}Pilotage par ligne de commande
Section intitulée « Pilotage par ligne de commande »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.
# Ouvrir un fichier dans un nouveau panneauzellij action edit mon_fichier.py
# Fermer le panneau actifzellij action close-pane
# Exporter le contenu du panneauzellij action dump-screen /tmp/screen.txt
# Envoyer une commande au panneau actifzellij 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 :
| Plugin | Description |
|---|---|
tab-bar | Barre d'onglets |
status-bar | Barre de statut avec raccourcis |
strider | Navigateur de fichiers |
session-manager | Gestionnaire 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.
Dépannage
Section intitulée « Dépannage »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ème | Cause | Solution |
|---|---|---|
| Caractères bizarres | Pas de police Nerd Font | Ajouter simplified_ui true dans config.kdl |
| Raccourcis ne fonctionnent pas | Mode Locked actif | Appuyer sur Ctrl+G |
| Session EXITED | Le dernier pane a été fermé | zellij attach nom pour ressusciter |
| Couleurs incorrectes | Terminal ne supporte pas 256 couleurs | Vérifier echo $TERM |
À retenir
Section intitulée « À retenir »- Zellij = tmux avec interface visuelle, Raccourcis affichés en permanence
- Installation recommandée :
mise install zellij@latest && mise use -g zellij@latest - Modes : Normal, Pane (
Ctrl+P), Tab (Ctrl+T), Resize (Ctrl+N), Scroll (Ctrl+S) - Sessions persistantes :
zellij -s nom, détacher avecCtrl+O D, rattacher aveczellij a nom - Configuration :
~/.config/zellij/config.kdl(format KDL) - Layouts : définissent la disposition initiale (panneaux, onglets, commandes)
- Mode Locked (
Ctrl+G) : désactive les raccourcis Zellij pour les apps conflictuantes