Skip to main content
Thomas Germain Thomas Germain

tmux — Guide pour humains

6 mars 2026

tmux terminal tutorial productivité

tmux — Guide pour humains 🖥️

tmux = terminal multiplexer. Tu peux avoir plusieurs terminaux dans une seule fenêtre, et surtout les sessions survivent à la fermeture du terminal.


Le concept clé : le préfixe

Toutes les commandes tmux commencent par Ctrl+B (le “préfixe”), puis une autre touche.

Appuie sur Ctrl+B, relâche, puis appuie sur la touche suivante.


Les sessions

Une session = un environnement tmux indépendant qui tourne en arrière-plan.

Terminal window
tmux # Démarrer une nouvelle session
tmux new -s monsite # Nouvelle session avec un nom
tmux new-session -s kilo # Idem (forme longue)
tmux new-session -s kilo 'kilo' # Créer ET lancer une commande directement
tmux ls # Lister les sessions actives
tmux attach -t monsite # Rejoindre une session existante
tmux kill-session -t monsite # Supprimer une session

Detacher une session (la laisser tourner en fond) : Ctrl+B puis D

Supprimer plusieurs sessions d’un coup

Terminal window
for s in session1 session2 session3; do tmux kill-session -t $s; done

Les fenêtres (comme des onglets)

RaccourciAction
Ctrl+B CCréer une nouvelle fenêtre
Ctrl+B NFenêtre suivante
Ctrl+B PFenêtre précédente
Ctrl+B 0-9Aller à la fenêtre n°
Ctrl+B WVoir toutes les fenêtres
Ctrl+B ,Renommer la fenêtre

Les panneaux / panes (diviser l’écran)

RaccourciAction
Ctrl+B %Diviser verticalement (côte à côte)
Ctrl+B "Diviser horizontalement (haut/bas)
Ctrl+B ↑ ↓ ← →Naviguer entre les panneaux
Ctrl+B XFermer le panneau actuel
Ctrl+B ZZoom sur le panneau (toggle)

Mémo ultra-court

Ctrl+B D → Detach (laisser tourner en fond)
Ctrl+B C → New window
Ctrl+B % → Split vertical
Ctrl+B " → Split horizontal
Ctrl+B X → Fermer pane

Setup : sessions persistantes pour outils CLI

L’idée : une session tmux par outil (Claude, Gemini, Kilo…) qui tourne en permanence sur le Mac. Tu t’y connectes depuis n’importe où (iPhone via Echo/SSH, autre terminal…) et tu retrouves le contexte intact.

Script de démarrage ~/start-agents.sh

#!/bin/bash
# Lance toutes les sessions si elles n'existent pas déjà
sessions=("claude:claude" "gemini:gemini" "kilo:kilo" "opencode:opencode")
for entry in "${sessions[@]}"; do
name="${entry%%:*}" # Tout avant le ":"
cmd="${entry##*:}" # Tout après le ":"
if ! tmux has-session -t "$name" 2>/dev/null; then
tmux new-session -d -s "$name"
tmux send-keys -t "$name" "$cmd" Enter
echo "✓ Session '$name' démarrée"
else
echo "→ Session '$name' déjà active"
fi
done
Terminal window
chmod +x ~/start-agents.sh
./start-agents.sh

Explication du script

ÉlémentRôle
sessions=(...)Tableau : "nom:commande"
%%:*Extrait tout ce qui est avant le : → le nom
##*:Extrait tout ce qui est après le : → la commande
has-sessionVérifie si la session existe déjà
2>/dev/nullCache le message d’erreur si elle n’existe pas
-dCrée en arrière-plan (detached)
send-keys ... EnterSimule une frappe clavier dans la session

Connexion SSH directe vers une session (Echo / iPhone)

Dans ~/.ssh/config sur iPhone :

Host mac-claude
HostName 100.x.x.x # IP Tailscale du Mac
User thomas
RequestTTY force
RemoteCommand tmux attach -t claude
Host mac-gemini
HostName 100.x.x.x
User thomas
RequestTTY force
RemoteCommand tmux attach -t gemini
Host mac-kilo
HostName 100.x.x.x
User thomas
RequestTTY force
RemoteCommand tmux attach -t kilo

Tu tap le host dans Echo → t’arrives directement dans la session, outil chargé, contexte intact. 🎯


Le flag magique -A

Terminal window
tmux new-session -A -s kilo 'kilo'

-A = attach si la session existe, crée sinon. Plus jamais d’erreur “session already exists”. Parfait pour les VPS.


Schéma de fonctionnement

Mac
└── tmux session "claude"
└── claude CLI en cours d'exécution ← tourne toujours
↑ ↑
attach depuis detach (Ctrl+B D)
Echo / terminal ou fermer la fenêtre

La session vit sa vie sur le Mac. Toi tu fais juste te brancher (attach) ou te décrocher (detach) quand tu veux. Fermer le terminal ne tue pas la session.


Notes importantes