Que fait cli-anything-iterm2 ?
CLI avec état pour iTerm2. Contrôle un processus iTerm2 en direct via l'API Python d'iTerm2 sur WebSocket.
Prérequis
- macOS + iTerm2 en cours d'exécution :
brew install --cask iterm2 - API Python activée : iTerm2 → Préférences → Général → Magie → Activer l'API Python
- Installation :
pip install cli-anything-iterm2(oupip install -e .depuis les sources)
Syntaxe de base
cli-anything-iterm2 [--json] <groupe> <commande> [OPTIONS] [ARGUMENTS]
Utilisez toujours --json pour une sortie lisible par machine (requis pour une utilisation par agent).
Groupes de commandes
| Groupe | Objectif |
|---|---|
app | Statut de l'application, instantané de l'espace de travail, gestion du contexte, variables d'application, dialogues modaux, panneaux de fichiers |
window | Créer, lister, fermer, redimensionner, passer en plein écran les fenêtres |
tab | Créer, lister, fermer, activer les onglets ; naviguer entre les panneaux divisés par direction |
session | Envoyer du texte, injecter des octets bruts, lire l'écran, tout le défilement, diviser les panneaux, détection d'invite |
profile | Lister les profils, obtenir les détails d'un profil, lister/appliquer les préréglages de couleurs |
arrangement | Sauvegarder et restaurer les dispositions de fenêtres |
tmux | Intégration complète de tmux -CC : amorçage, connexions, fenêtres, commandes |
broadcast | Synchroniser les frappes entre les panneaux via des domaines de diffusion |
menu | Invoquer n'importe quel élément de menu iTerm2 par programmation |
pref | Lire/écrire les préférences globales iTerm2 ; lister toutes les clés valides ; paramètres tmux |
S'orienter dans un espace de travail existant
Utilisez app snapshot lorsque vous arrivez dans une session avec des panneaux existants et devez comprendre ce qui s'exécute sans lire le contenu complet de l'écran de chaque panneau :
cli-anything-iterm2 --json app snapshot
Retourne le nom, le répertoire courant, le processus au premier plan, le label user.role, et la dernière ligne de sortie visible pour chaque session dans toutes les fenêtres.
Convention de nommage — étiquetez les panneaux lors de la configuration d'un espace de travail afin de pouvoir les retrouver plus tard :
cli-anything-iterm2 session set-var user.role "api-server"
cli-anything-iterm2 session set-var user.role "log-tail"
cli-anything-iterm2 session set-var user.role "editor"
app snapshot remontera ces rôles avec le processus et le chemin, vous donnant une image complète en un seul appel.
Workflow typique d'un agent
# 1. S'orienter — instantané de chaque session : nom, chemin, processus, rôle, dernière ligne de sortie
cli-anything-iterm2 --json app snapshot
# 2. Établir le contexte (sauvegarde les ID de fenêtre/onglet/session pour les commandes suivantes)
cli-anything-iterm2 app current
# 3. Interagir — plus besoin de --session-id une fois le contexte défini
cli-anything-iterm2 session send "git status"
cli-anything-iterm2 --json session scrollback --tail 200 --strip
# 4. Créer un espace de travail multi-panneaux — étiquetez les panneaux pour que l'instantané les identifie plus tard
cli-anything-iterm2 session split --vertical --use-as-context
cli-anything-iterm2 session send "python3 -m http.server 8000"
cli-anything-iterm2 session set-var user.role "http-server"
Fichiers de référence
Ne lisez que ce que la tâche nécessite — chaque fichier couvre un seul sujet restreint (~10–30 lignes) :
| Fichier | À lire quand vous avez besoin... |
|---|---|
references/session-io.md | Envoyer du texte, injecter des octets, lire l'écran/le défilement, obtenir la sélection |
references/session-control.md | Diviser les panneaux, activer/fermer les sessions, redimensionner, renommer, variables de session |
references/session-shell-integration.md | wait-prompt, wait-command-end, get-prompt ; motif fiable send→wait→read |
references/layout-window-tab.md | Créer/fermer/redimensionner des fenêtres et onglets, naviguer entre les panneaux divisés |
references/layout-arrangement.md | Sauvegarder et restaurer les dispositions de fenêtres |
references/app-context.md | Snapshot (orientation), statut, gestion du contexte, variables d'application, dialogues modaux, panneaux de fichiers |
references/profile-pref.md | Liste/profils/préréglages, lecture/écriture des préférences, raccourcis des préférences tmux |
references/broadcast-menu.md | Diffuser des frappes vers plusieurs panneaux, invoquer des éléments de menu |
references/tmux-commands.md | Toutes les commandes CLI tmux (amorçage, envoi, onglets, create-window, set-visible) |
references/tmux-guide.md | Workflow complet tmux -CC, correspondance panneau → ID de session |
references/json-session.md | Schémas --json pour session, fenêtre, onglet, écran, défilement, injection |
references/json-tmux-app.md | Schémas --json pour tmux, dialogues d'application, préférences, erreurs |
Mode REPL
Exécutez sans arguments pour un REPL interactif qui maintient le contexte entre les commandes :
cli-anything-iterm2