Was macht cli-anything-iterm2?
Zustandsbehaftetes CLI-Werkzeug für iTerm2. Steuert einen laufenden iTerm2-Prozess über die iTerm2 Python-API per WebSocket.
Voraussetzungen
- macOS + iTerm2 läuft:
brew install --cask iterm2 - Python-API aktivieren: iTerm2 → Einstellungen → Allgemein → Magic → Python-API aktivieren
- Installieren:
pip install cli-anything-iterm2(oderpip install -e .aus dem Quellcode)
Grundlegende Syntax
cli-anything-iterm2 [--json] <gruppe> <befehl> [OPTIONEN] [ARGUMENTE]
Verwenden Sie immer --json für maschinenlesbare Ausgabe (erforderlich für Agentennutzung).
Befehlsgruppen
| Gruppe | Zweck |
|---|---|
app | App-Status, Arbeitsbereichs-Momentaufnahme, Kontextverwaltung, app-weite Variablen, modale Dialoge, Dateipanels |
window | Fenster erstellen, auflisten, schließen, skalieren, Vollbild |
tab | Tabs erstellen, auflisten, schließen, aktivieren; Split-Panes navigieren (Richtung) |
session | Text senden, rohe Bytes einfügen, Bildschirm lesen, vollständigen Scrollback, Split-Panes, Eingabeaufforderungs-Erkennung |
profile | Profile auflisten, Profildetails abrufen, Farbschemata auflisten/anwenden |
arrangement | Fensterlayouts speichern und wiederherstellen |
tmux | Vollständige tmux -CC-Integration: Bootstrap, Verbindungen, Fenster, Befehle |
broadcast | Tastatureingaben über mehrere Panes synchronisieren (Broadcast-Domänen) |
menu | Beliebiges iTerm2-Menüelement programmatisch aufrufen |
pref | Globale iTerm2-Einstellungen lesen/schreiben; alle gültigen Schlüssel auflisten; tmux-Einstellungen |
Orientierung in einem bestehenden Arbeitsbereich
Verwenden Sie app snapshot, wenn Sie in einer Sitzung mit vorhandenen Panes landen und verstehen müssen, was läuft, ohne die vollständigen Bildschirminhalte jeder Pane zu lesen:
cli-anything-iterm2 --json app snapshot
Gibt Name, aktuelles Verzeichnis, Vordergrundprozess, user.role-Bezeichnung und die letzte sichtbare Ausgabezeile für jede Sitzung über alle Fenster hinweg zurück.
Namenskonvention – Beschriften Sie Panes beim Einrichten eines Arbeitsbereichs, damit Sie sie später wiederfinden:
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 zeigt diese Rollen zusammen mit Prozess und Pfad an und gibt Ihnen so ein vollständiges Bild in einem einzigen Aufruf.
Typischer Agenten-Workflow
# 1. Orientieren – Momentaufnahme jeder Sitzung: Name, Pfad, Prozess, Rolle, letzte Ausgabezeile
cli-anything-iterm2 --json app snapshot
# 2. Kontext herstellen (speichert Fenster-/Tab-/Sitzungs-IDs für nachfolgende Befehle)
cli-anything-iterm2 app current
# 3. Interagieren – keine --session-id mehr nötig, sobald der Kontext gesetzt ist
cli-anything-iterm2 session send "git status"
cli-anything-iterm2 --json session scrollback --tail 200 --strip
# 4. Mehrere Panes erstellen – Panes beschriften, damit snapshot sie später identifiziert
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"
Referenzdateien
Lesen Sie nur das, was die Aufgabe erfordert – jede Datei behandelt einen einzigen, abgegrenzten Bereich (~10–30 Zeilen):
| Datei | Lesen, wenn Sie... benötigen |
|---|---|
references/session-io.md | Text senden, Bytes einfügen, Bildschirm/Scrollback lesen, Auswahl abrufen |
references/session-control.md | Panes teilen, Sitzungen aktivieren/schließen, skalieren, umbenennen, Sitzungsvariablen |
references/session-shell-integration.md | wait-prompt, wait-command-end, get-prompt; zuverlässiges send→wait→read-Muster |
references/layout-window-tab.md | Fenster und Tabs erstellen/schließen/skalieren, Split-Panes navigieren |
references/layout-arrangement.md | Fensterlayouts speichern und wiederherstellen |
references/app-context.md | Snapshot (Orientierung), Status, Kontextverwaltung, App-Variablen, modale Dialoge, Dateipanels |
references/profile-pref.md | Profile auflisten/abrufen/Farbschemata, Einstellungen lesen/schreiben, tmux-Voreinstellungs-Shortcuts |
references/broadcast-menu.md | Tastatureingaben an mehrere Panes senden, Menüelemente aufrufen |
references/tmux-commands.md | Alle tmux-CLI-Befehle (Bootstrap, senden, Tabs, Fenster erstellen, sichtbar machen) |
references/tmux-guide.md | Vollständiger tmux -CC-Workflow, Abbildung Pane→Sitzungs-ID |
references/json-session.md | --json-Schemata für Sitzung, Fenster, Tab, Bildschirm, Scrollback, Einfügen |
references/json-tmux-app.md | --json-Schemata für tmux, App-Dialoge, Einstellungen, Fehler |
REPL-Modus
Ohne Argumente starten Sie einen interaktiven REPL, der den Kontext zwischen Befehlen beibehält:
cli-anything-iterm2