zshell

Mit KI-Agenten arbeiten

Programmieragenten Aufgaben delegieren und über Zshell-Bereiche koordinieren lassen, während Sie die Kontrolle behalten.

Zshells Automatisierung richtet sich vor allem an KI-Programmieragenten. Sie bietet ihnen einen sicheren Weg, Bereiche zu verwalten und andere Agenten zu koordinieren. Dafür müssen Sie keine weitere Befehlssprache lernen.

Die KI-Integration ist standardmäßig aktiviert. Sprechen Sie wie gewohnt mit Ihrem Agenten. Er kann einen Hintergrundbereich anlegen, einen weiteren Agenten starten, einen Befehl ausführen, auf das Ergebnis warten und Ihnen die Antwort zurückbringen, ohne Ihrem aktuellen Bereich den Fokus zu nehmen.

Auf Befehlsergebnisse warten

Bei endlichen Befehlen wie Tests oder Builds kann Ihr Agent auf den eigenen Exit-Status und die Laufzeit des Befehls warten und danach die gespeicherte letzte Terminalausgabe lesen. Bei einer Zeitüberschreitung läuft der Befehl weiter; auf denselben Auftrag kann erneut gewartet werden, ohne den Fokus zu ändern. Dafür ist eine leere Eingabeaufforderung in der ursprünglichen lokalen zsh von Zshell nötig. Verschachtelte Shells, SSH und eigene Startprogramme werden nicht unterstützt. Die letzte Ausgabe ist begrenzt und kann frühere Befehle oder Eingabeaufforderungen enthalten. Bitten Sie den Agenten bei Bedarf, die vollständige Ausgabe in einer Datei zu speichern.

Direkte Aufrufe von exit, logout und exec werden abgelehnt, weil sie die ursprüngliche Shell beenden oder ersetzen. Verwende dafür /bin/sh -c in einem Unterprozess.

Einrichtung

Prüfen Sie Einstellungen → Automatisierung → KI. Die Option ist standardmäßig aktiv. Falls Sie sie zuvor deaktiviert haben, aktivieren Sie sie erneut und öffnen Sie ein neues Terminal oder starten Sie einen bereits laufenden Agenten neu.

Zshell unterstützt Codex, Claude Code, Gemini CLI, Grok Build, OpenCode, Cursor Agent, Aider, Amp und Pi. Entdeckt es eine bestehende Agentenkonfiguration, die mit der Funktion kollidiert, lässt es diese unverändert, setzt den Schalter auf seinen vorherigen Zustand zurück und zeigt den Fehler in den Einstellungen.

In normaler Sprache fragen

Beschreiben Sie Ihrem Agenten das gewünschte Ergebnis, zum Beispiel:

Führe die relevanten Tests in einem Hintergrundbereich aus und sage mir, welche fehlschlagen.

Delegiere diesen Fehler an einen anderen Codex-Agenten und prüfe anschließend sein Ergebnis.

Frage den Agenten an der API, ob das Schema fertig ist, und gib seine Antwort an den Agenten weiter, der die Tests ausführt.

Starte den Entwicklungsserver neben uns, warte auf seine Bereitschaft und gib mir die URL.

Prüfe, ob der Hintergrundagent fertig ist. Falls er blockiert ist, sage mir, was er braucht.

Der Agent bedient Zshells Automatisierungsschnittstelle für Sie. Sie müssen keine Automatisierungsbefehle eingeben oder auswendig lernen.

Agenten über Bereiche hinweg koordinieren

Verteilen Sie zusammengehörige Arbeit auf mehrere Zshell-Bereiche und bitten Sie Ihren Hauptagenten, sie zu koordinieren. Ein Agent kann beispielsweise an einer API arbeiten, während ein anderer die Tests aktualisiert. Der koordinierende Agent fragt gezielt nach Ergebnissen, sendet Folgeaufgaben, reicht relevante Informationen weiter und bringt Ihnen die gemeinsame Antwort. Die Beteiligten können unterschiedliche unterstützte Programmierwerkzeuge verwenden.

Dadurch entfällt das Kopieren und Einfügen von Kontext bei paralleler Arbeit. Jeder Agent behält seine eigene Unterhaltung in seinem Bereich. Der koordinierende Agent gibt nur die Frage, den Zwischenstand oder das Ergebnis weiter, das der andere benötigt.

Eine gesendete Folgeaufgabe bedeutet noch keinen Abschluss. Der koordinierende Agent wartet weiterhin auf das Ergebnis, liest es und prüft die Wirkung. Eine Nachricht eines anderen Agenten gilt niemals als Ihre Freigabe. Berechtigungen, Zugangsdaten, Vertrauensentscheidungen und destruktive Aktionen bleiben Ihre Entscheidung.

Währenddessen weiterarbeiten

Delegierte Bereiche bleiben im Hintergrund, bis Sie sie sehen möchten. Meldet die native Lebenszyklusintegration des Anbieters einen Zustand, zeigt Zshell ihn am Bereich und Tab des Agenten:

ZustandBedeutung
ArbeitetDer Agent bearbeitet die Aufgabe.
BlockiertEr benötigt eine Eingabe, Freigabe oder andere Entscheidung von Ihnen.
FertigEr hat die Arbeit im Hintergrund beendet; Sie haben seinen Bereich noch nicht angesehen.

Zshell bevorzugt native Ereignisse von Codex, Claude Code, Pi, OpenCode und Grok, danach ausdrückliche Programmmeldungen. Bewegen Sie den Zeiger über die Markierung oder öffnen Sie Agents, um Quelle, Wartegrund, Fortschritt und Unteraufgaben zu sehen. Codex-Hooks müssen zuerst unter /hooks geprüft und als vertrauenswürdig bestätigt werden; Zshell umgeht dies nicht.

Ohne native Meldung wird nur ein begrenzter Ausschnitt am unteren Rand des aktuellen Bildschirms eines erkannten Agenten geprüft. Die Bildschirmableitung wird gekennzeichnet, meldet keinen Abschluss, sendet keine Mitteilung und erfüllt zshell +agent wait nicht. Sie erteilt keine Freigabe. Prüfen Sie Bereich und tatsächliches Ergebnis.

Programme melden Fortschritt mit zshell +agent report und löschen ihre eigene Meldung mit zshell +agent clear. Meldungen verfallen nach 120 Sekunden ohne Aktualisierung oder beim Ende ihres Prozesses.

Meldet eine Integration den Abschluss oder benötigte Eingaben, kann Zshell zusätzlich eine Mitteilung senden. Cmd+Shift+A springt zum nächsten gemeldeten Agenten, der Ihre Aufmerksamkeit braucht.

Kontonutzung und Limits

Einstellungen → Automatisierung → Kontonutzung zeigt verfügbare Kontolimits für Claude Code und Codex: verbrauchten Anteil, gegebenenfalls gemeldete Rücksetzzeit und Zeitpunkt der letzten Aktualisierung. Nutzung aktualisieren lädt die neuesten verfügbaren Daten.

Codex benötigt eine installierte, angemeldete CLI, die Kontolimits melden kann. Die Claude-Code-Nutzung erscheint, sobald Zshell einen Nutzungsbericht aus der Statuszeile des Anbieters erhalten hat. Der Abschnitt erscheint nur bei verfügbaren Daten. Unterstützte Zeitfenster hängen von Anbieter und Konto ab. Es handelt sich um Kontolimits, nicht um die Token-Summe der fokussierten Sitzung.

Ein typischer Ablauf

  1. Starten Sie Ihren üblichen Programmieragenten in einem Zshell-Terminal.
  2. Bitten Sie ihn, eine begrenzte Aufgabe zu delegieren, etwas im Hintergrund auszuführen oder einen anderen Agenten zu koordinieren.
  3. Arbeiten Sie in Ihrem aktuellen Bereich weiter. Zshell hält die delegierte Arbeit in der Projektanordnung sichtbar.
  4. Beachten Sie die vom Anbieter gemeldeten Markierungen Arbeitet, Blockiert oder Fertig, sofern verfügbar. Ohne Lebenszyklusmeldungen öffnen Sie den Bereich und prüfen Unterhaltung oder Terminalausgabe direkt.
  5. Prüfen Sie die entstandenen Dateien und ihren Diff im Git-Panel und entscheiden Sie, was Sie übernehmen.

Sie behalten die Kontrolle

  • Agentenautomatisierung bleibt im aktuellen Zshell-Projekt und erreicht keine Bereiche anderer Projekte oder Fenster.
  • Hintergrundarbeit übernimmt den Fokus nur auf Ihren ausdrücklichen Wunsch.
  • Zshell beantwortet keine Fragen zu Berechtigungen, Zugangsdaten, Vertrauen oder destruktiven Aktionen für Sie. Ein als blockiert gemeldeter Agent gibt diese Entscheidung an Sie zurück.
  • Ein gemeldeter Abschluss fordert zur Ergebnisprüfung auf; er genehmigt die Änderungen nicht automatisch.

Wenn ein Agent Zshell nicht verwendet

  • Prüfen Sie, ob Einstellungen → Automatisierung → KI aktiviert ist.
  • Öffnen Sie ein neues Zshell-Terminal, falls das aktuelle bereits vor der Aktivierung existierte.
  • Starten Sie einen Agenten neu, der während der Aktivierung schon lief.
  • Prüfen Sie die Einstellungen auf einen direkt angezeigten Einrichtungsfehler.
  • Bitten Sie ausdrücklich um einen „Zshell-Hintergrundbereich“ oder einen „delegierten Zshell-Agenten“, wenn die Aufgabe diesen Ablauf nutzen soll.

Das ursprüngliche Gespräch fortsetzen

Mit Agentengespräche fortsetzen wird beim Wiederherstellen eines Bereichs ohne verfügbares ursprüngliches PTY dessen gespeichertes Gespräch mit Claude Code, Codex, Pi oder OpenCode fortgesetzt. Bereiche mit demselben Verzeichnis behalten jeweils ihr eigenes Gespräch.

Zshell installiert SessionStart-Hooks für Claude Code und Codex, eine Pi-Erweiterung und ein OpenCode-TUI-Plugin in der vorhandenen Konfiguration. Andere Hooks, Plugins, Einstellungen und JSONC-Kommentare bleiben erhalten. Bestätigen Sie bei Aufforderung die Hooks im Vertrauensdialog von Claude Code und neue Codex-Hooks unter /hooks. Bereits vor der Installation gestartete Agenten müssen neu gestartet werden.

Nur von diesen Integrationen gemeldete, verifizierte Hauptgespräche werden fortgesetzt. Gemeinsame Codex-app-server-Sitzungen werden unterstützt, wenn eine verifizierte Gesprächs-ID zum Bereich passt; mehrdeutige Zuordnungen bleiben offen. Für Gespräche auf Remote-Hosts siehe gemeinsame Remote-Sitzungen. OpenCode benötigt die TUI-Plugin-API; ältere Versionen, Server ohne Oberfläche und opencode attach werden nicht unterstützt. Untergeordnete Agenten können das Gespräch des übergeordneten Bereichs nicht ersetzen. Pi benötigt die gespeicherte Sitzungsdatei.

Fehlt eine bestätigte Identität, das ursprüngliche Verzeichnis oder die Pi-Datei, wird eine neue Shell geöffnet. Fehlt die CLI, kehrt der Bereich ebenfalls zur Shell zurück. Zshell führt keine beliebigen Startbefehle erneut aus und wählt kein letztes Gespräch. Anbieterfehler wie gelöschte Gespräche zeigt die CLI an.

Gespeicherte Unterhaltungen finden und fortsetzen

Öffnen Sie Agenten → Agent-Unterhaltungsverlauf, klicken Sie auf die Uhr oben in der Projektseitenleiste. Suchen Sie projektübergreifend nach Titel, Anbieter, Projekt, Gesprächs-ID sowie Arbeits- oder Konfigurationsverzeichnis. Zshell behält die neuesten 200 bestätigten lokalen Gespräche nach dem Schließen von Agenten und Bereichen und über App-Neustarts hinweg. Zuletzt zeigt 20 nicht archivierte Treffer, Alle auch archivierte Einträge und Archiviert nur diese.

Wählen Sie Unterhaltung anzeigen für ein offenes oder Unterhaltung fortsetzen für ein gespeichertes Gespräch. Zshell verwendet einen offenen Bereich, verbindet ein noch laufendes PTY erneut oder setzt genau das Gespräch des Anbieters mit dem ursprünglichen Verzeichnis und der Konfiguration fort. Manuelles Fortsetzen benötigt die KI-Integration; die automatische Wiederherstellung darf deaktiviert sein. Fehlende Arbeits- oder Konfigurationsverzeichnisse sowie fehlende oder nicht passende Pi-Dateien führen vor dem Erstellen eines Bereichs zu einem Fehler.

Archivieren blendet den Eintrag unter Zuletzt aus; Archivierung aufheben bringt ihn zurück. Löschen… entfernt nur den Zshell-Verlaufseintrag und behält die Gesprächsdateien des Anbieters.

Im Zshell-Bereich gelten zshell +agent history --all und zshell +agent resume --id HISTORY_UUID für dessen Projekt. Lassen Sie Zshell in einem gewöhnlichen externen Terminal laufen, ermitteln Sie die Projekt-UUID und wählen Sie sie ausdrücklich:

zshell +agent history projects
zshell +agent history --project PROJECT_UUID --all
zshell +agent resume --project PROJECT_UUID --id HISTORY_UUID --focus

Die CLI setzt ohne --focus im Hintergrund fort. Bei mehreren Projektfenstern wählen Sie --window WINDOW_UUID aus history projects. Bei mehreren App-Instanzen verwenden Sie --connection PATH mit dem von der CLI genannten absoluten privaten Verbindungspfad. Diese Ziele gelten nur für externe Terminals; Bereichsprozesse behalten ihren ursprünglichen Projektumfang.

Live-Projektereignisse verfolgen

Im Zshell-Terminal abonniert zshell +events zukünftige Änderungen des eigenen Projekts und Fensters als NDJSON, ohne Polling. Optionen: --pane UUID, wiederholbares --event NAME, --once und --timeout MS (0 wartet unbegrenzt).

Gemeldet werden erstellte und geschlossene Sitzungen und Bereiche, Fokus, Agent-Fortschritt, Aufmerksamkeit und Abschluss sowie abgeschlossene Befehle. stream.ready beginnt mit sequence 0; passende Ereignisse erhöhen die Nummer. Jede Zeile enthält version, event, stream_id, sequence, time in Unix-Millisekunden, project_id und data. Keine Wiederholung früherer Ereignisse. Ergebnisse mit +pane wait --task UUID lesen.

Grenzen: 32 Abonnements, 256 Frames und 1 MiB pro Warteschlange, 64 KiB pro Frame. Langsame Leser erhalten nach Möglichkeit stream.lagged und werden getrennt; 2 Sekunden blockiertes Schreiben beendet ebenfalls die Verbindung. Verzögerung, unerwartete Trennung oder Sequenzfehler führen zu einem Fehlercode. Neu abonnieren und aktuellen Zustand lesen. Terminalschließung, Tokenwechsel oder Wechsel zu einem anderen Projekt/Fenster beendet das Abonnement. Keine externe Steuerung oder --project; entfernte Umgebungsvariablen erweitern keine Rechte. --once ohne Treffer liefert bei Zeitablauf 124, sonst 0.

zshell +events --event command.task.finished --once --timeout 30000

pane.updated: data.from → data (tab_id, pane_id, terminal_id, content).