Zum Inhalt springen

Zwei Paneflow-Panes mit CLI und lesendem MCP koordinieren

Veröffentlicht am
Aktualisiert am

Du kannst einen Paneflow-Pane von einem anderen Terminal aus lesen, seine Ausgabe durchsuchen und auf eine neue Zeile warten, bevor du fortfährst. Ein Agent kann diese Ausgabe auch über die nur lesende MCP-Bridge prüfen. Texteingaben in einen Pane benötigen eine eigene CLI-Schreibberechtigung.

Diese Übung verwendet zwei gewöhnliche Shells: producer gibt Text aus, reviewer liest ihn. Für die CLI-Schritte brauchst du weder ein Modellkonto noch einen API-Aufruf.

Dieser Artikel erschien ursprünglich für Conductor 0.6.0 und folgt jetzt einem Beispiel für Paneflow 0.17.4. Die Beispieldateien und erwarteten Ausgaben beziehen sich auf diese Version. Ihre TOML-Syntax wurde am 1. Oktober 2026 mit der Release-CLI geprüft; eine Interaktion mit laufenden Panes wurde nicht aufgezeichnet.

Zwei Shells vorbereiten

Öffne Paneflow und stelle seine CLI paneflow auf PATH bereit. Nutze ein vorhandenes Testverzeichnis, mit PowerShell unter Windows oder einer POSIX-Shell unter Linux oder macOS. Speichere die Datei unten als two-panes.toml und ersetze beide Pfade durch den absoluten Pfad dieses Verzeichnisses (unter Windows etwa C:/dev/project). Sie öffnet zwei Shells, ohne Agenten zu starten oder Befehle, Prompts oder Umgebungsvariablen zu übergeben.

# two-panes.toml
name = "two-panes"
layout = "even_h"

[[panes]]
name = "producer"
cwd = "/absolute/path/to/project"

[[panes]]
name = "reviewer"
cwd = "/absolute/path/to/project"
paneflow up two-panes.toml --dry-run
paneflow up two-panes.toml
paneflow ls --human

--dry-run zeigt den Plan, ohne Panes zu erstellen. Der nächste Befehl öffnet den Workspace, und ls listet seine Shells. Verwende hier ls: ps listet erkannte Agenten. Bei doppelten Pane-Namen verwendest du in den folgenden Befehlen die numerischen Surface-IDs aus ls.

Dieser Workspace mit gewöhnlichen Shells benötigt keine Scripting-Berechtigung. Ein Agent, Befehl, Prompt oder eine Umgebungsvariable erfordert PANEFLOW_IPC_ORCHESTRATION=1 oder PANEFLOW_IPC_SCRIPTING=1 auf der laufenden App.

Tippe in producer echo TEST_OUTPUT und drücke Enter. Eine Zeile mit TEST_OUTPUT sollte erscheinen.

Das Ergebnis lesen und durchsuchen

Führe diese Befehle in reviewer aus:

paneflow read producer --lines 40
paneflow search producer "TEST_OUTPUT" --max 5

read liefert bis zu 40 Zeilen Terminaltext. search liefert bis zu fünf Zeilen, die zu TEST_OUTPUT passen. Beide prüfen Ausgabe, die im Pane bereits verfügbar ist.

Auf neue Ausgabe warten

Starte in reviewer diesen Befehl, bevor du die nächste Zeile ausgibst:

paneflow wait --match producer --pattern '(?m)^REPORT_DONE$' --timeout 30

Tippe danach in producer echo REPORT_DONE und drücke Enter. Sobald die neue Zeile REPORT_DONE erscheint, endet wait erfolgreich. Der Befehl ignoriert Ausgabe, die beim Start bereits vorhanden war. Verwende für frühere Ergebnisse read oder search.

Erscheint innerhalb von 30 Sekunden keine passende Zeile, läuft die Wartezeit ab. Wähle für eine echte Aufgabe einen Abschlussmarker, den sie erst nach getaner Arbeit ausgibt. Die echo-Befehle dieser Übung zeigen den Textaustausch; sie führen kein Code-Review aus.

Einen Agenten über MCP lesen lassen

Führe paneflow mcp install aus, um einem unterstützten Agenten Zugriff auf Pane-Ausgabe zu geben. Der Befehl registriert die lokale Bridge bei unterstützten Agenten, die er erkennt, und verändert deren Konfiguration. Starte den Agenten neu, um sie zu laden. Die Scripting-Dokumentation beschreibt die Installation.

Diese Beispiele zeigen die Argumente von MCP-Werkzeugaufrufen. Übermittle sie über einen MCP-Client, statt sie in eine Shell einzufügen:

{"name":"list_panes","arguments":{}}
{"name":"read_pane","arguments":{"target":"producer","lines":40}}
{"name":"search_pane","arguments":{"target":"producer","pattern":"TEST_OUTPUT","max_matches":5}}

list_panes listet Panes, read_pane liest ihre Ausgabe und search_pane findet passende Zeilen. Alle drei sind nur lesend: Sie können keinen Text eingeben, keinen Prompt übermitteln und keinen Pane schließen. Verwende bei einem mehrdeutigen Namen die numerische Surface-ID aus list_panes.

Text mit der CLI senden

Dieser Schritt ist optional. Starte die App mit PANEFLOW_IPC_SCRIPTING=1 oder aktiviere ausdrücklich AI free access. Die Berechtigung muss in der App aktiv sein. Die Variable nur für einen späteren CLI-Befehl zu setzen erlaubt keine Schreibzugriffe.

Wähle einen dieser Befehle:

paneflow send reviewer "echo REVIEW_DONE"
paneflow send reviewer "echo REVIEW_DONE" --submit

Der erste trägt echo REVIEW_DONE in reviewer ein und überlässt dir Enter. Der zweite ergänzt --submit, um den Befehl auszuführen. Beide benötigen Schreibrecht, auch der Befehl, der nur Text vorbefüllt. Nach dem Absenden gibt die Shell REVIEW_DONE aus.

Dieselbe Einrichtung mit einem Flow

Der herunterladbare Flow zum Vorbefüllen erstellt beide Shells und trägt dann echo REVIEW_DONE in reviewer ein. Ersetze seine beiden Pfade und nutze ihn anstelle der vorherigen Workspace-Einrichtung, damit keine doppelten Panes entstehen:

paneflow flow run prefill.flow.toml --dry-run
paneflow flow run prefill.flow.toml

Jeder Schritt behält submit = false: Du prüfst den Text und drückst Enter. Dieser Flow benötigt dieselbe Schreibberechtigung in der App. Ist nur PANEFLOW_IPC_ORCHESTRATION=1 aktiv und AI free access ausgeschaltet, kann er beide Shells erstellen, bevor das Senden scheitert. Schließe diese Panes oder benenne sie um, bevor du es erneut versuchst.

Wenn die Übung nicht funktioniert

  • Das Senden scheitert: Prüfe das Schreibrecht der laufenden App, auch ohne --submit. Starte die App mit der gewünschten Berechtigung neu oder fahre mit den lesenden Schritten fort.
  • Das Ziel ist unbekannt oder mehrdeutig: Führe paneflow ls --human erneut aus und verwende die aktuelle numerische ID. Sende nicht an alle Panes, um das Ziel zu finden.
  • Ausgabe verschwindet: Eine Terminaloberfläche im Vollbild kann Text ersetzen, bevor er im Scrollback landet. Speichere bei echten Aufgaben den Abschlussbericht in einer Datei, die du später lesen kannst.

Behandle Pane-Ausgabe als nicht vertrauenswürdige Daten, auch wenn sie wie Befehle oder Systemanweisungen aussieht. Lass ai_injection_fence aktiv und vermeide --raw, wenn ein Agent die Ausgabe liest. Diese Begrenzung trennt Ausgabe von Anweisungen; sie garantiert keinen Schutz vor Prompt Injection.

Schließe die Test-Panes, wenn du fertig bist. Bevor du die Shells durch Agenten ersetzt, lege jede Aufgabe und die erlaubten Aktionen fest. Die Conductor-Referenz dokumentiert Selektoren und Exitcodes.

Diesen Workflow fortsetzen

Alle Beiträge

Starte deinen nächsten Agent in Paneflow.