What is Tripwire?
Tripwire is an AI-native, cross-platform end-to-end testing platform. You write test cases as plain-English YAML; an LLM (Claude) interprets each step into real browser actions; Playwright drives a real browser — headless or headed, on any OS — to carry them out. Tripwire reports what worked, what failed, and why, self-heals when the UI changes, and auto-files deduped, root-caused issues to your tracker.
In one sentence:
You ship it. Tripwire tests it. Plain English in, a real self-healing test in a real browser, and a root-caused bug out — automatically.
What makes it different
Most browser-testing tools answer one question: did the UI break? Tripwire is built to answer the one that's actually hard:
- Why did it break — not just "the assertion failed," but the backend error behind it.
- Where in the backend — a UI failure carrying a
trace_idis correlated to your server logs and turned into a concrete diagnosis. - What's the fix — Claude synthesizes a suspected cause and a suggested fix, then files it as a deduped ticket.
That seam — UI failure → correlated server log → written-up ticket — is the part of the stack that browser automation hasn't commoditized. See Why now for the market reasoning, and Self-heal & root-cause for how it works mechanically.
How a run flows
plain-English YAML suite
│
▼
Claude reads the live DOM ──► decides actions ──► Playwright drives a real browser
│ │
│ network errors + trace_id captured
▼ │
assertions adjudicated (deterministic where possible) ▼
│ failure → server-log correlation
▼ │
report.json · junit.xml · report.html ▼
│ Claude: backend error + cause + fix
▼ │
deduped issue filed ◄───────────────────────────────────┘
(built-in · GitHub · GitLab · Jira)The core ideas
- Plain-English suites. A case is a list of
steps(do:) andexpectations. No selectors, no page objects. The LLM grounds each step against the live page at run time. See Writing Tests. - Claude is the brain, Playwright is the hands. The model reads the DOM and chooses actions (click, fill, select, navigate, create and upload files); Playwright executes them in a real browser on Windows, macOS, or Linux. See Architecture.
- Sequenced, stateful cases. Cases run in order and share state. A suite-level
fixtures:block generates a unique user once; later cases reuse the same one.captureshares a produced value forward;depends_onskips a case if its prerequisite didn't pass. - Deterministic where it counts. Add a
checkand an assertion is verified with no model call. Omit it and the model adjudicates a forced pass/fail. See Runs & assertions. - Self-healing. There are no stored locators to go stale — every run re-reads the live DOM, so a moved button or renamed label re-grounds instead of failing.
- Auto-filed, deduped, root-caused issues. A verified failure becomes an issue with a stable fingerprint, filed to your tracker; re-runs comment instead of duplicating. See Filing issues.
How you reach it
| Surface | What it is |
|---|---|
| Dashboard | Vite + React UI: author suites, run them, watch live, triage the issues board, configure integrations. |
| REST API | FastAPI under /api/v1: suites, runs, issues, settings, generate, analytics, suites/{name}/export, health. See the API reference. |
| MCP server | tripwire_test, tripwire_run_suite, tripwire_check — registers in Cursor & Claude Code. See IDE & MCP. |
| CLI | tripwire run and tripwire test-url, designed as a CI gate. See the CLI reference. |
| GitHub Action | action.yml — run suites and gate PRs. See CI. |
What it is not (yet)
Tripwire leads with functional + backend-root-cause strengths — it finds broken flows and root-causes them. It is not a security scanner: it surfaces user-facing symptoms and root-causes them, but pair it with a dedicated scanner for deep secret/authz audits. Mobile (simulators) is on the roadmap; web is the focus today.
Next: Why now · Getting Started