AI-Coding-Agenten koennen Dateien lesen, Shell-Befehle ausfuehren und APIs ansprechen. Aber interaktive Terminal-Programme -- Python-REPL, GDB, vim, lazygit, htop -- waren bisher eine Blackbox. Der Agent konnte sie starten, aber nicht sehen, was auf dem Bildschirm passiert, und nicht gezielt damit interagieren.
tui-use schliesst diese Luecke. Das Tool stellt eine Session-basierte Schnittstelle bereit, ueber die Agenten interaktive Programme starten, beobachten und bedienen koennen.
Funktionsweise
Im Kern laeuft ein Headless-xterm-Emulator, der den PTY-Event-Stream in Echtzeit verarbeitet. Der Agent sieht den Terminal-Inhalt als Text -- kein Screenshot-Parsing, kein OCR. Das macht die Integration schnell und zuverlaessig.
Ein zentrales Konzept ist der wait-Befehl. Er blockiert, bis das Display stabil ist -- also keine weiteren Aenderungen mehr eintreffen. Mit wait --text <pattern> laesst sich auf semantische Signale warten, etwa einen bestimmten Prompt oder eine Fehlermeldung.
Kernbefehle
- Session-Management:
start,use,list,kill-- Programme starten, zwischen Sessions wechseln, aufraeumen. - Interaktion:
type,paste,press-- Texteingabe und Tastendruecke senden. - Beobachtung:
snapshot,scrollup,scrolldown,find-- aktuellen Bildschirminhalt lesen, scrollen, nach Text suchen. - Synchronisation:
wait,wait --text <pattern>-- auf stabilen Zustand oder bestimmte Ausgabe warten.
Unterstuetzte Programme
Getestet mit Python- und Node-REPLs, GDB, PDB, vim, lazygit, htop und fzf. Grundsaetzlich funktioniert alles, was in einem PTY laeuft.
Integration
tui-use ist als MCP-Server konzipiert und integriert sich direkt mit Claude Code, Cursor, Codex und Gemini CLI. Installation:
npm install -g tui-use
Einordnung
Der praktische Nutzen ist klar abgegrenzt: Agenten koennen jetzt Debugging-Sessions in PDB fuehren, in vim navigieren oder lazygit bedienen -- Szenarien, die vorher manuelles Eingreifen erforderten. Die PTY-basierte Architektur vermeidet den Overhead und die Fragilitaet von Screenshot-basierten Ansaetzen.