Que fait tmux ?
À utiliser pour les sessions tmux interactives existantes. Pour des commandes uniques, utilisez le shell normal. Pour de nouveaux travaux d'arrière-plan non interactifs, utilisez l'exécution en arrière-plan.
Bases
tmux ls
tmux list-windows -t shared
tmux list-panes -t shared:0
tmux capture-pane -t shared:0.0 -p
tmux capture-pane -t shared:0.0 -p -S -
Format cible : session:window.pane, par ex. shared:0.0.
Envoyer une entrée
Texte littéral, puis Entrée :
tmux send-keys -t shared:0.0 -l -- "Veuillez continuer"
tmux send-keys -t shared:0.0 Enter
Touches spéciales :
tmux send-keys -t shared:0.0 C-c
tmux send-keys -t shared:0.0 C-d
tmux send-keys -t shared:0.0 Escape
Utilisez -l -- pour un texte arbitraire. Séparez le texte et Entrée pour éviter les surprises de collage/saut de ligne.
Sessions
tmux new-session -d -s worker
tmux rename-session -t old new
tmux kill-session -t worker
Vérifications d'invites
tmux capture-pane -t worker-3 -p | tail -20
tmux capture-pane -t worker-3 -p | rg "proceed|permission|Yes|No|❯"
Approuver/sélectionner uniquement lorsque l'invite est comprise :
tmux send-keys -t worker-3 -l -- "y"
tmux send-keys -t worker-3 Enter
Utilitaires
scripts/find-sessions.sh: découvrir les sessions.scripts/wait-for-text.sh: attendre que le contenu du panneau capturé contienne un texte.
wait-for-text.sh recherche l'entrée renvoyée par écho et le défilement ainsi que la sortie du processus. Pour la fin de commande, utilisez un marqueur unique dont le texte complet est réparti sur plusieurs arguments dans la commande envoyée à tmux :
nonce="$(od -An -N8 -tx1 /dev/urandom | tr -d ' \n')"
marker="OPENCLAW_DONE_${nonce}"
tmux send-keys -t shared:0.0 -l -- "sleep 4; printf '%s%s\n' 'OPENCLAW_DONE_' '$nonce'"
tmux send-keys -t shared:0.0 Enter
scripts/wait-for-text.sh -t shared:0.0 -p "$marker" -F -T 30
La commande renvoyée par écho ne contient jamais le marqueur complet, et le nonce empêche une ancienne ligne de fin de correspondre.
Remarques
capture-pane -pimprime sur la sortie standard pour les scripts.-S -capture le défilement complet.- Les sessions tmux persistent même après une déconnexion SSH.