Das Cypress AI Toolkit bringt offizielle Skills für KI Agenten: cypress author, explain und docs. Installation in OpenCode, Prompts und Guardrails von NCA.
Mehr erfahren
cypress tap ist eine Erweiterung der Cypress CLI, mit der ein KI Agent eine laufende cypress open Session direkt aus dem Terminal steuert. Der Agent startet Specs, liest Fehler und Command Log so, wie du sie in der Cypress App siehst, und prüft DOM und Accessibility Tree der getesteten Anwendung.
Bisher bekam ein Agent nach einem Testlauf nur grün oder rot zurück. Alles, was einen Fehler reparierbar macht, steckte in der Cypress App: Command Log, Fehlermeldung mit Code Frame, der DOM zum Zeitpunkt des Fehlers. cypress tap holt genau diesen Kontext ins Terminal. Der Agent schreibt einen Test, prüft ihn gegen die echte App und korrigiert ihn im selben Loop.
Cypress hat cypress tap am 18. August 2026 mit Version 15.21.0 als Beta veröffentlicht. Die CLI ist kostenlos und ohne Nutzungslimit, braucht kein Cypress Cloud Konto und läuft gegen deine lokale App. Passend dazu gibt es den Skill cypress-tap im Cypress AI Toolkit.
Ein Agent, der Tests schreibt, ohne sie gegen die echte App zu prüfen, rät. cypress tap beendet das Raten, aber nur, wenn das Setup drumherum stimmt: Regeln in der AGENTS.md, saubere data-cy Selektoren, geschützte Testdateien und ein Review vor dem Merge. Bei uns läuft Cypress mit Cypress Cloud in Production, KI Agenten arbeiten in Claude Code und OpenCode. Roland Golla ist Cypress Ambassador und hat Tests von Hand geschrieben, debuggt und repariert, lange bevor Agenten dazukamen. Genau dieses Wissen geben wir den Agenten über Regeln mit.
Im Cypress Workshop mit Roland Golla lernt dein Team Cypress von Grund auf, inklusive Agenten Workflow. In den KI Workshops für Entwicklerteams richten wir cypress tap und die Cypress Skills direkt im Terminal mit ein. Teams, die Agenten schon täglich nutzen, begleiten wir in der Vibe Coding Beratung mit den NCA Agentic AI Coding Guardrails. Wie die Fehlersuche in der Pipeline läuft, zeigt unsere Seite zu Cypress Test Replay.
Ein Tag inhouse mit Roland Golla, offizieller Cypress Ambassador und seit über 20 Jahren in Testing und Refactoring zu Hause. Auf unserem YouTube Kanal zeigt er in über 70 Live Coding Tutorials, wie Cypress in echten Projekten läuft. Dazu kommt unser Open Source Plugin NCA TESTIFY: Basistests für jede Website, mit einer Zeile im CI/CD Setup. Im Workshop lernt euer Team Setup, stabile Selektoren, Custom Commands und Tests in der Pipeline.
cypress tap hängt sich an eine Session, die schon läuft. Es startet keinen eigenen headless Lauf. Das bestimmt, was geht und was nicht.
Ein Punkt wird gern übersehen: Agent und Mensch teilen sich denselben App Frame. Wer im Cypress Fenster klickt, während der Agent arbeitet, ändert, was der nächste Befehl liest. Die Regel bei uns ist einfach: Eine Session, die ein Agent steuert, schaut man an, man fasst sie nicht an.
cypress tap bringt zehn Unterbefehle mit. Jeder gibt standardmäßig lesbaren Text aus und mit --json ein stabiles JSON Ergebnis. Für Agenten und Skripte ist JSON der Vertrag. Jeder Befehl endet mit Exit Code 0 bei Erfolg und 1 bei Fehlern. Mehrere Sessions unterscheidest du über die Prozess ID.
Eine eigene Installation braucht cypress tap nicht. Die Befehle stecken in Cypress selbst. Du aktualisierst Cypress und startest die App im Open Mode mit einem Chromium Browser.
npm install cypress@latest --save-dev
npx cypress open --e2e --browser=chrome
In einem zweiten Terminal im selben Projektordner arbeitet jetzt der Agent. Die CLI findet die laufende Session selbst. Sind mehrere offen, nimmt sie die, deren Projekt zum aktuellen Ordner passt.
npx cypress tap status
npx cypress tap specs
npx cypress tap run cypress/e2e/checkout.cy.ts
Damit der Agent die Befehle kennt, installierst du den Skill aus dem Cypress AI Toolkit. Wir committen Skills immer projektbezogen, damit das ganze Team dieselbe Version nutzt.
npx skills add https://github.com/cypress-io/ai-toolkit --skill cypress-tap
Praktisch für Agenten: npx cypress tap --help funktioniert auch ohne laufende Session. Ist eine Session aktiv, kommt die Hilfe aus deren eigenem Schema. So liest der Agent immer die Befehle der Version, die er gleich steuert.
Ein typischer Fall: Der Agent schreibt einen Checkout Test und rät den Selektor .submit-btn. Der Test wird rot. Ohne cypress tap müsstest du jetzt HTML in den Chat kopieren. Mit cypress tap schaut der Agent selbst nach.
Schritt 1: Spec starten und auf ein Ergebnis warten. run kehrt sofort zurück. Das Ergebnis liefert erst status.
npx cypress tap run cypress/e2e/checkout.cy.ts
npx cypress tap status --json
Schritt 2: Fehler lesen. reporter zeigt die Übersicht mit Test IDs wie r5. Mit der ID bekommt der Agent Command Log, Fehler und Code Frame des Tests.
npx cypress tap reporter
npx cypress tap reporter --test-id r5
Schritt 3: Die Seite zum Fehlerzeitpunkt ansehen. pin setzt den Snapshot eines Commands, danach lesen dom, aria und inspect genau diesen Zustand. Zum Schluss wird der Pin wieder gelöst.
npx cypress tap pin --test-id r5 --command-id 3 --at after
npx cypress tap dom --selector form
npx cypress tap inspect --selector "[data-cy=checkout-submit]"
npx cypress tap pin --clear
Der Agent sieht jetzt das echte Markup, korrigiert den Selektor auf data-cy und startet die Spec neu. Oft zeigt der Loop auch das Gegenteil: Der Test ist richtig und die App hat einen Bug. Auch das ist ein wertvolles Ergebnis, solange der Agent den Test dann nicht passend biegt.
Weil run sofort zurückkehrt, fragt der Agent status so lange ab, bis ein Ergebnis da ist. Hier passieren die meisten Fehler. Die Cypress Doku nennt vier Fallen, die gehören in jede Agenten Anleitung:
Gerade der letzte Punkt ist bei Agenten kritisch. Ein Agent, der ein it.skip setzt und dann passed meldet, hat nichts bewiesen. Das ESLint Plugin für Cypress mit eslint-plugin-mocha fängt vergessene .only und .skip schon vor dem Lauf ab.
Der Skill erklärt dem Agenten die Befehle. Wann er sie nutzt und was er nicht darf, regelst du in der AGENTS.md, bei Claude Code in der CLAUDE.md. So sieht ein kompakter Abschnitt aus, angelehnt an die Vorlage aus der Cypress Doku und ergänzt um unsere Guardrails:
## Cypress Tests mit cypress tap prüfen
- Immer --json nutzen.
- Zuerst npx cypress tap status. Bei not connected: mich bitten, npx cypress open zu starten.
- Nach jeder Änderung die betroffene Spec mit npx cypress tap run starten.
- status pollen bis passed oder failed, startedAt mit dem vorherigen Lauf vergleichen.
- Nach 120 Sekunden in loading abbrechen und mir Bescheid geben.
- passed mit results.passed gleich 0 gilt als nicht gelaufen.
- Bei failed: reporter, dann reporter --test-id, dann pin und dom oder aria.
- Pin nach dem Lesen immer mit pin --clear lösen.
- Bestehende Assertions nie abschwächen, kein it.skip, kein force: true.
- Selektoren nur über data-cy.
Die Timeout Zahl ist ein Beispiel. Wähle sie nach der Build Zeit deines Projekts. Wichtig ist nur, dass es überhaupt ein Timeout gibt.
Der Befehl aria liefert den Accessibility Tree so, wie ihn die Browser DevTools zeigen: Rolle, Name und Zustand jedes relevanten Elements. Für einen Agenten ist das oft der günstigste Weg, eine Seite zu verstehen. Der Tree ist viel kleiner als der DOM und zeigt sofort, was ein Screenreader sieht.
npx cypress tap aria
npx cypress tap aria --selector ".cart-item__remove"
Steht bei einem Button nur die Rolle und kein Name, fehlt der Accessible Name. Der Agent ergänzt das Label, startet die Spec neu und prüft den Tree erneut. Für Regeln rund um Darstellung wie Farbkontrast nutzt er inspect, das die berechneten Werte für color und background-color ausgibt.
Spannend für Refactorings: Den ARIA Tree vor und nach einem Umbau als JSON speichern und vergleichen. So sieht das Team sofort, ob ein Element seinen Namen verloren hat. Welche Tools wir sonst für Accessibility Tests einsetzen, steht bei den Accessibility Testing Tools.
cypress tap arbeitet lokal. Was in der Pipeline kaputt ging, weiß Cypress Cloud. Zusammen ergibt das einen geschlossenen Kreislauf:
Der Mensch bleibt im Loop: Er startet cypress open, reviewt die Änderung und gibt den Merge frei. Mehr zum Umgang mit wackeligen Tests steht bei Flaky Tests in Cypress, zur Abgrenzung von automatischen Reparaturen bei Self Healing Tests.
Your AI agent can write a Cypress test in seconds.
Das Cypress AI Toolkit bringt offizielle Skills für KI Agenten: cypress author, explain und docs. Installation in OpenCode, Prompts und Guardrails von NCA.
Mehr erfahren
Cypress Tests mit KI Agenten schreiben lassen: AGENTS.md, data cy Selektoren, geschützte Testdateien, Review und Cloud MCP. Einordnung von NCA.
Mehr erfahrencypress tap löst ein echtes Problem: Agenten konnten ihre eigene Arbeit nicht prüfen. Es löst nicht das zweite Problem, dass Agenten gern den kürzesten Weg zu grün suchen. Deshalb gilt bei uns in jedem Projekt zuerst: Testdateien und Custom Commands sind geschützt. Der Agent darf neue Specs anlegen und Selektoren korrigieren. Eine Assertion abschwächen, damit der Test grün wird, darf er nicht. Wie wir das absichern, beschreiben die Quality Gates für KI Code.
Zweite Regel: Der Agent arbeitet nur gegen eine lokale Umgebung mit Fake Daten. dom und command können Formularwerte, Tokens und Response Bodies zeigen, und alles, was im Terminal landet, sieht auch das Modell. Die Cypress Doku empfiehlt dafür cy.env für sensible Werte. Wir ergänzen Testdaten aus dem Seed statt echter Kundendaten. Gut zu wissen: Cypress erfasst Telemetrie zur Nutzung der CLI, also Befehlsname, Flags und Fehlerstatus. Wie man das abschaltet, steht im Abschnitt Security der offiziellen Doku.
Weiterlesen: Cypress Grep für Burn Tests nach einer Reparatur, Custom Commands als Bausteine, die der Agent nutzen soll, cy.prompt als weiterer KI Weg in Cypress, UI Coverage für Lücken in der Suite, unser eigenes NCA TESTIFY Cypress Plugin und das NCA Cypress Glossar mit allen Einträgen.
Roland Golla ist Entwickler aus Leidenschaft – seit über 20 Jahren. Er hat hunderte Projekte begleitet, von Legacy-Refactoring bis KI-Integration. Bei Vibe Coding verbindet er das Beste aus beiden Welten: Die Geschwindigkeit von KI-generiertem Code mit der Qualität professioneller Softwareentwicklung. Kein Bullshit, keine Agentur-Floskeln – direkte Hilfe von jemandem, der selbst täglich im Code steckt.
Die wichtigsten Antworten zu Voraussetzungen, Befehlen, Polling, Sicherheit und dem Einsatz mit KI Agenten.
cypress tap ist eine Erweiterung der Cypress CLI, die seit Version 15.21.0 als Beta verfügbar ist. Ein KI Agent steuert damit eine laufende cypress open Session aus dem Terminal: Specs starten, Status abfragen, Command Log und Fehler lesen sowie DOM und Accessibility Tree prüfen. So kann der Agent seine Tests gegen die echte App verifizieren.
Nichts. Laut Cypress ist die CLI für alle Testautoren ab Version 15.21.0 kostenlos und ohne Nutzungslimit. Ein Cypress Cloud Konto ist nicht nötig, weil cypress tap nur mit der lokalen Session arbeitet. Kosten entstehen höchstens beim KI Agenten selbst, etwa durch Token oder den Betrieb eines lokalen Modells.
Du brauchst Cypress 15.21.0 oder neuer, eine laufende cypress open Session und einen Chromium Browser wie Chrome, Chromium, Edge oder Electron. Firefox und WebKit werden nicht unterstützt. Headless Läufe mit cypress run findet die CLI nicht. Der Agent muss Shell Befehle im Projektordner ausführen können.
Mit jedem Agenten, der Shell Befehle ausführen kann. Die Cypress Doku nennt Cursor, Claude Code, GitHub Copilot, Windsurf und Codex CLI. Wir setzen auf Claude Code und OpenCode. Den Skill cypress-tap aus dem Cypress AI Toolkit installierst du projektbezogen, die Regeln für den Einsatz gehören in die AGENTS.md oder CLAUDE.md.
Nein. cypress tap hängt sich nur an interaktive cypress open Sessions an. In der Pipeline laufen Tests weiter headless mit cypress run, die Ergebnisse landen in Cypress Cloud. Für die Brücke zwischen CI und lokal nutzt der Agent Cloud MCP oder die Cloud CLI und verifiziert die Reparatur danach lokal mit cypress tap.
cypress run führt Tests headless aus und liefert am Ende ein Ergebnis. cypress tap steuert eine offene Session und gibt dem Agenten den Kontext dazu: Command Log, Fehler mit Code Frame, DOM Snapshots, ARIA Tree und Computed Styles. Es geht ums Schreiben und Debuggen am Entwicklerrechner, nicht um den Lauf in CI.
Über status, am besten mit --json. Nur passed und failed sind Ergebnisse. Der Agent vergleicht startedAt mit dem vorherigen Lauf, denn ein altes Ergebnis bleibt lesbar, bis der neue Lauf startet. Ein Timeout gegen hängendes loading und der Blick auf results.passed gehören ebenfalls in jede Anleitung.
pin setzt den DOM Snapshot eines bestimmten Commands als aktiven Zustand im App Frame, genau wie ein Klick auf den Command in der Cypress App. Danach lesen dom, aria und inspect die Seite so, wie sie in diesem Moment war. Mit pin --clear löst der Agent den Pin wieder. Ein neuer Lauf löst ihn automatisch.
Besser nicht. Agent und Mensch teilen sich denselben App Frame, es gibt keine Sperre. Ein Klick auf einen Command, ein Spec Wechsel oder ein neuer Lauf aus der App ändert, was der nächste Befehl des Agenten liest. Wir behandeln eine Session, die ein Agent steuert, wie einen Bildschirm zum Zuschauen.
Die Daten bleiben in der lokalen Session, landen aber im Kontext des Agenten. Formularwerte, Tokens oder Response Bodies kann das Modell also sehen. Cypress empfiehlt cy.env für sensible Werte. Wir lassen Agenten nur gegen lokale Umgebungen mit Fake Daten aus dem Seed arbeiten. Zur CLI Nutzung erfasst Cypress Telemetrie, die sich abschalten lässt.
Der Befehl aria liefert den Accessibility Tree mit Rolle, Name und Zustand, inspect zeigt berechnete Farben und Box Model. Damit prüft der Agent zum Beispiel, ob ein Button einen Accessible Name hat, korrigiert das Markup und kontrolliert das Ergebnis direkt. Zusammen mit Cypress Accessibility in der Cloud entsteht ein schneller Fix Loop.
Empfehlenswert. cypress tap ist das Werkzeug, der Skill cypress-tap aus dem Toolkit erklärt dem Agenten, wie er es nutzt. Die Skills cypress-author und cypress-explain helfen beim Schreiben und Prüfen der Tests. Zusammen schreibt der Agent Tests nach Best Practices und sieht, was beim Lauf wirklich passiert.