zshell

Werken met AI-agents

Laat programmeeragents werk delegeren en tussen Zshell-deelvensters samenwerken terwijl jij de focus en controle houdt.

De automatisering van Zshell is vooral bedoeld voor AI-programmeeragents. Zij krijgen een veilige manier om met Zshell-deelvensters te werken en andere agents te coördineren. Je hoeft er geen nieuwe opdrachttaal voor te leren.

AI-integratie staat standaard aan. Praat zoals gewoonlijk met je programmeeragent. Die kan een deelvenster op de achtergrond maken, een gedelegeerde werker starten, een opdracht uitvoeren, op het resultaat wachten en het antwoord terugbrengen zonder de focus van jouw deelvenster over te nemen.

Wachten op opdrachtresultaten

Bij opdrachten die eindigen, zoals tests of een build, kan je agent wachten op de eigen exitcode en duur van de opdracht en daarna de opgeslagen recente terminaluitvoer lezen. Als de wachttijd verloopt, blijft de opdracht draaien en kun je opnieuw op dezelfde taak wachten, zonder de focus te verplaatsen. Dit vereist een lege prompt in de oorspronkelijke lokale zsh die Zshell heeft gestart; geneste shells, SSH en aangepaste opstartprogramma’s worden niet ondersteund. Recente uitvoer is begrensd en kan eerdere opdrachten of prompts bevatten. Vraag de agent de volledige uitvoer in een bestand op te slaan als je die nodig hebt.

Directe aanroepen van exit, logout en exec worden geweigerd omdat ze de oorspronkelijke shell beëindigen of vervangen; gebruik /bin/sh -c om ze in een subproces uit te voeren.

Instellen

Controleer Instellingen → Automatisering → AI. Dit staat standaard aan. Heb je het eerder uitgezet, schakel het dan opnieuw in en start een nieuwe terminal of herstart een agent die al draaide.

Zshell ondersteunt Codex, Claude Code, Gemini CLI, Grok Build, OpenCode, Cursor Agent, Aider, Amp en Pi. Als Zshell een bestaande agentconfiguratie vindt die met deze functie botst, laat het die ongewijzigd, zet het de schakelaar terug naar de vorige stand en toont het de fout in Instellingen.

Vragen in gewone taal

Vertel je agent welk resultaat je wilt, bijvoorbeeld:

Voer de gerichte tests uit in een achtergronddeelvenster en vertel me wat mislukt.

Delegeer deze bug aan een andere Codex-agent en beoordeel daarna het resultaat.

Vraag de agent die aan de API werkt of het schema klaar is en geef het antwoord door aan de agent die de tests uitvoert.

Start de ontwikkelserver naast ons, wacht tot die klaar is en geef me de URL.

Controleer of de achtergrondagent klaar is. Als die geblokkeerd is, vertel me dan wat er nodig is.

De agent gebruikt de automatiseringsinterface van Zshell voor je. Je hoeft geen Zshell-automatiseringsopdrachten te typen of te onthouden.

Agents laten samenwerken tussen deelvensters

Je kunt samenhangend werk over meerdere Zshell-deelvensters verdelen en je hoofdagent vragen het te coördineren. De ene agent kan bijvoorbeeld aan een API werken terwijl een andere tests bijwerkt. De coördinerende agent kan een specifieke werker naar bevindingen vragen, een vervolgopdracht sturen, een bruikbaar resultaat doorgeven aan een andere werker en het gecombineerde antwoord aan jou teruggeven. De werkers mogen verschillende ondersteunde programmeertools gebruiken.

Zo verdwijnt het kopiëren en plakken tussen parallelle taken. Elke agent houdt zijn eigen gesprek in zijn eigen deelvenster, terwijl de coördinerende agent alleen de vraag, update of het resultaat doorgeeft dat de andere werker nodig heeft.

Een vervolgopdracht versturen betekent niet dat het werk klaar is. De coördinerende agent wacht nog steeds op de werker, leest het resultaat en controleert de uitkomst. Een bericht van een andere agent geldt ook nooit als jouw toestemming. Beslissingen over rechten, inloggegevens, vertrouwen en destructieve acties blijven bij jou.

Doorwerken terwijl de taak draait

Gedelegeerde deelvensters blijven op de achtergrond tenzij je vraagt ze te zien. Als een native levenscyclusintegratie van de aanbieder status meldt, toont Zshell die in het deelvenster en tabblad van de agent:

StatusBetekenis voor jou
BezigDe agent werkt actief aan de taak.
GeblokkeerdEr is invoer, toestemming of een andere beslissing van jou nodig.
KlaarDe agent is op de achtergrond klaar en je hebt het deelvenster nog niet bekeken.

Zshell geeft voorrang aan ingebouwde gebeurtenissen van Codex, Claude Code, Pi, OpenCode en Grok, gevolgd door expliciete programmameldingen. Houd de aanwijzer boven de badge of open Agents voor bron, wachtreden, percentage en subtaken. Codex-hooks moeten eerst in /hooks worden beoordeeld en vertrouwd; Zshell slaat dit niet over.

Zonder ingebouwde melding wordt alleen een begrensd deel van de onderkant van het actuele scherm van een herkende agent bekeken. Afleiding uit scherm wordt aangegeven, meldt geen voltooiing, stuurt geen melding en voldoet niet aan zshell +agent wait. Er wordt nooit goedkeuring verleend. Controleer het paneel en het echte resultaat.

Programma’s melden voortgang met zshell +agent report en wissen hun eigen melding met zshell +agent clear. Meldingen vervallen na 120 seconden zonder update of wanneer het bijbehorende proces stopt.

Wanneer een integratie meldt dat een agent klaar is of invoer nodig heeft, kan Zshell ook een melding sturen. Druk op Cmd+Shift+A om naar de volgende gemelde agent te gaan die je aandacht nodig heeft.

Accountgebruik en limieten

Instellingen → Automatisering → Accountgebruik toont beschikbare accountlimieten voor Claude Code en Codex, inclusief het gebruikte percentage, de resettijd indien gemeld en het tijdstip van de laatste update. Gebruik Gebruik vernieuwen om de nieuwste beschikbare gegevens op te halen.

Codex vereist een geïnstalleerde en aangemelde CLI die accountlimieten kan melden. Claude Code-gebruik verschijnt zodra Zshell een gebruiksrapport via de statusregel van de aanbieder heeft ontvangen. De sectie verschijnt alleen als gebruiksgegevens beschikbaar zijn; ondersteunde tijdvensters hangen af van de aanbieder en het account. Dit zijn accountlimieten, geen tokentotaal voor de sessie met focus.

Een gebruikelijke werkwijze

  1. Start je gebruikelijke programmeeragent in een Zshell-terminal.
  2. Vraag om een afgebakende taak te delegeren, iets op de achtergrond uit te voeren of een andere agent te coördineren.
  3. Werk verder in je huidige deelvenster terwijl Zshell het gedelegeerde werk zichtbaar houdt in de projectindeling.
  4. Volg een door de aanbieder gemelde badge Bezig, Geblokkeerd of Klaar als die beschikbaar is. Als de tool geen levenscyclus meldt, open je het deelvenster om het gesprek of de terminaluitvoer te bekijken.
  5. Beoordeel de gewijzigde bestanden in het Git-paneel, inspecteer de diff en beslis wat je wilt behouden.

Jij houdt de controle

  • Agentautomatisering blijft binnen het huidige Zshell-project en kan geen deelvensters in een ander project of venster bereiken.
  • Achtergrondwerk neemt de focus niet over tenzij je daar uitdrukkelijk om vraagt.
  • Zshell beantwoordt nooit verzoeken om toestemming, inloggegevens, vertrouwen of destructieve acties voor je. Als de aanbieder meldt dat een agent geblokkeerd is, komt de beslissing bij jou terug.
  • Een gemelde voltooiing is een signaal om het resultaat te beoordelen, geen automatische goedkeuring van de wijzigingen van de agent.

Als een agent Zshell niet gebruikt

  • Controleer of Instellingen → Automatisering → AI aanstaat.
  • Open een nieuwe Zshell-terminal als de huidige al bestond voordat je de instelling inschakelde.
  • Herstart een agent die al draaide bij het inschakelen.
  • Controleer Instellingen op een foutmelding bij de configuratie.
  • Vraag expliciet om een “Zshell-achtergronddeelvenster” of een “gedelegeerde Zshell-agent” als je wilt dat de agent deze werkwijze gebruikt.

Het oorspronkelijke gesprek hervatten

Met Agentgesprekken hervatten hervat een paneel zonder beschikbaar oorspronkelijk PTY zijn opgeslagen gesprek van Claude Code, Codex, Pi of OpenCode. Panelen in dezelfde map houden elk hun eigen gesprek.

Zshell installeert SessionStart-hooks voor Claude Code en Codex, een Pi-extensie en een OpenCode-TUI-plugin in de bestaande configuratie. Andere hooks, plugins, instellingen en JSONC-opmerkingen blijven behouden. Schakel op verzoek hooks in via de vertrouwensmelding van Claude Code en keur nieuwe Codex-hooks goed in /hooks. Herstart agenten die al actief waren voor de installatie.

Alleen geverifieerde hoofdgesprekken die deze integraties melden worden hervat. Gedeelde Codex-app-server-sessies worden ondersteund wanneer een geverifieerd gespreks-ID bij het paneel past; onduidelijke overeenkomsten blijven ongekoppeld. Zie gedeelde externe sessies voor gesprekken op externe hosts. OpenCode vereist de TUI-plugin-API; oudere versies, serversessies zonder interface en opencode attach worden niet ondersteund. Een onderliggende agent vervangt het gesprek van het bovenliggende paneel niet. Pi vereist het opgeslagen sessiebestand.

Zonder geverifieerde identiteit, oorspronkelijke map of Pi-bestand opent een nieuwe shell. Een ontbrekende CLI keert ook terug naar de shell. Zshell voert geen willekeurige opstartopdracht opnieuw uit en kiest geen recent gesprek. Providerfouten, zoals een verwijderd gesprek, verschijnen in de CLI.

Opgeslagen gesprekken vinden en hervatten

Open Agents → Gespreksgeschiedenis van agents, klik op de klok boven in de projectzijbalk. Zoek over projecten heen op titel, aanbieder, project, gespreks-ID, werkmap of configuratiemap. Zshell bewaart de nieuwste 200 geverifieerde lokale gesprekken nadat agents en panelen sluiten en de app opnieuw start. Recente toont 20 niet-gearchiveerde resultaten; Alle bevat ook het archief; Gearchiveerd toont alleen het archief.

Kies Gesprek tonen als het openstaat of Gesprek hervatten als het opgeslagen is. Zshell gebruikt een open paneel, verbindt een nog actief PTY opnieuw of hervat het exacte gesprek van de aanbieder met de oorspronkelijke map en configuratie. Handmatig hervatten vereist AI-integratie, ook als automatisch herstellen uitstaat. Ontbrekende mappen en ontbrekende of niet-passende Pi-bestanden geven een fout voordat een paneel wordt gemaakt.

Archiveren verbergt een item uit Recente; Uit archief halen zet het terug. Verwijderen… verwijdert alleen het Zshell-item en bewaart de gespreksbestanden van de aanbieder.

Binnen een Zshell-paneel gelden zshell +agent history --all en zshell +agent resume --id HISTORY_UUID voor dat project. Houd Zshell vanuit een gewone externe terminal geopend, zoek de project-UUID en kies die expliciet:

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

De CLI hervat op de achtergrond tenzij je --focus toevoegt. Kies bij meerdere projectvensters --window WINDOW_UUID uit history projects. Gebruik bij meerdere app-instanties --connection PATH met het absolute pad naar het privéverbindingsbestand dat de CLI aangeeft. Deze doelen zijn voor externe terminals; paneelprocessen behouden hun oorspronkelijke projectbereik.

Live projectgebeurtenissen volgen

Voer zshell +events uit in een Zshell-terminal om toekomstige wijzigingen van het eigen project en venster als NDJSON te volgen, zonder polling. Opties: --pane UUID, herhaalbaar --event NAME, --once en --timeout MS (0 wacht onbeperkt).

Meldingen omvatten aanmaken en sluiten van sessies en panelen, focus, voortgang, aandacht en voltooiing van agents, en afgeronde opdrachten. stream.ready begint met sequence 0; elke passende gebeurtenis verhoogt het nummer. Elke regel bevat version, event, stream_id, sequence, time in Unix-milliseconden, project_id en data. Geen herhaling van geschiedenis. Lees resultaten met +pane wait --task UUID.

Limieten: 32 abonnementen, 256 frames en 1 MiB per wachtrij, 64 KiB per frame. Een trage lezer ontvangt indien mogelijk stream.lagged en wordt verbroken; 2 seconden zonder schrijven sluit de verbinding ook. Achterstand, onverwachte verbreking of volgordefouten geven een foutcode. Abonneer opnieuw en lees de huidige toestand. Terminal sluiten, token vernieuwen of naar een ander project/venster verplaatsen beëindigt het abonnement. Geen externe besturing of --project; omgevingsvariabelen verwijderen verruimt geen rechten. --once zonder overeenkomst geeft bij timeout 124, anders 0.

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

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