Overview
Jevitate is open-source, autonomous browser testing that turns discovered bugs into deterministic regression tests. It explores your app in a real browser, reports only what the browser can prove, and hands every finding back as a Recording you can replay: to reproduce it, to verify the fix, and to gate CI. Deterministic replay rests on one artifact, the Journey.
--from-journey, anchors) and campaigns of them;
code-decided oracles (hard signals, success checks, app-declared invariants, backend logs
correlated by request id, with opt-in signal triage that keeps only the lines related to each defect) and opt-in action deltas; verify-fix, the ledger,
regression capture / run and the jevitate check CI gate; the
Journey engine (author, replay, intent, environments, self-heal, load-test, share); browser
extensions; resource governance for shared machines; demo mode, narrated demos and captioned
defect evidence; and the allowlisted MCP server with full CLI parity, plus agent skills. 0.5.0 adds success checks that hold on different pages (--success-when each), network checks in authored Journeys, confirm dialogs (--dialogs), a fixed --geolocation, and codes delivered mid-run. 0.6.0 adds loop detection that ends a run no-progress, value guards that respect what the goal asks for, and explore-author-journey with the goal run's flags and not-reached diagnostics. 0.7.0 makes a Journey prove its outcome: authored Journeys keep the goal's success checks as their end state and each step's expected effect, journey lint and the journey promote gate flag assertions that cannot prove anything, journey verify --mutate proves each assertion can fail, and a navigate URL can take declared (even secret) parameters. Adversarial runs block off-origin misuse writes and report a slow save as inconclusive, and the repeat guard no longer re-fires a write that answered 5xx. 0.8.0 adds jevitate sweep (many targets and personas, concurrency, resume, one cross-target deduped sweep.result.json), --tag key=value on every run command, and jevitate login for persona sessions with a pre-flight check that ends an expired session as auth-expired. Results separate the goal from the defects (goalOutcome, goalReason, defectOutcome), server-log defects are structured, configuration-caused log lines are environment faults, and a quiet log source no longer makes a run inconclusive. Open-ended find-outs explore to a minimum depth and return a grounded partial report, safety refusals name their rule (--allow-control exempts one benign control), Jev judgment can run on an OPENROUTER_API_KEY. Sign-off gets a catalog: personas and job stories a person approves, linked to Journeys; journey review produces a review sheet and journey promote binds the approval to its content hash (--reviewed-hash); edited items go stale; every review shows a readiness check and catalog analysis; approvals record their provenance, and check --require-approvals and init --codeowners enforce human sign-off. init keeps its AGENTS.md block in place across upgrades, with --uninstall and --claude-md. 0.9.0 makes self-heal safe for CI: --changes and --change-note tell it what changed, a heal is a proposed Journey revision (exit 5, healed-pending-review) that a person accepts with journey promote --proposal, and heal budgets bound it (heal-exhausted); it also adds jevitate login --api, install-browser / browser-path (one pinned Chromium), target.id in results, goalOutcome: not-started, host-starved failures with a sweep retry, and fixes for closed drawers, rich-text editors, false hangs, inline validation text, short-secret redaction and absence claims. 0.10.0 connects the catalog to Journeeze and makes Journeys sturdier as the app improves: catalog export --format journeeze-bundle, connect journeeze and publish journeeze; jobs with desired outcomes, steps and metrics, reference checks and job draft-outcomes; anchors as job-step boundaries and a machine baseline per anchor in check.json; approvals verified from a merged pull-request review (pr-review); stable step ids with journey migrate --step-ids and journey review --stale; and locator-health with check --max-brittle-steps. It requires Node 22, and promoted Journeys need re-approval after the step-id backfill. Fixes: strict-mode providers such as Azure work again, quoted goal values and loose select options are read correctly, and returning to the starting tab is no longer reported as a hang. 0.11.0 makes campaigns trustworthy on a misconfigured environment and anchors easy to author: campaign run preflights (exit 64, E_CAMPAIGN_PREFLIGHT; --skip-preflight), a write jevitate blocked is an environment fault with what it caused linked to it, a late 2xx is an advisory slow step (--step-response-timeout) and a cold start is reported as one, journey anchor add|remove, journey lint --fix and journey anchors --suggest author anchors (names follow catalog bundle v1), catalog export refuses a promoted Journey it cannot carry, upload fixtures resolve against the project root, publish journeeze --product-name, check --app-version, and verify-fix --allow / --env. 0.12.0 rebuilds the Journey review sheet for sign-off (journey review: what needs your attention first, every check in plain English, --full for the detail), shows steps by their recorded label (journey migrate --labels backfills older Journeys; re-approval needed) and requires upload fixtures to stay inside the project root (sensitive files refused, no override). 0.13.0 lets you edit anchors on a promoted Journey (the approval goes stale; needsReapproval and reapproveCommand), makes journey anchors --suggest work on older recordings, gives sweep the browser launch flags and upload fixtures, and accepts a job whose writes all succeeded as done when the scope judgment confirms them. 0.14.0 adds scope regions (--scope-region, an anchor region) so an in-place sub-flow is measured on its own controls, the opt-in --block-off-allowlist-navigation, E_INVALID_NAME for unsafe store ids, and the promotion-ready workflow (journey review --strict, journey link, catalog draft, catalog status --strict). 0.15.0 makes split-origin apps and off-UI side effects first-class: an http: end-state check proves a write whose effect is outside the page (a dev mail outbox), journey run and journey verify take --allow <origin> (with metadata.allowedOrigins recorded at authoring), explore-author-journey --fixtures is recorded as metadata.fixtures and reused by replays, it also takes the backend-log flags and --allow-writes, the pixel mask uses only the browser's own primitives and fails closed (E_PIXEL_MASK), --version prints the git tree hash, and releases publish through npm trusted publishing with provenance (next from staging, latest on the tag).
Start here
Getting Started takes you from install to a first result
against your own dev server in about a minute: npm install -g @jevitate/cli,
jevitate init, then one jevitate explore command.
The Journey
Everything produces or consumes a Journey: a parameterized, deterministic,
replayable recording. Discovery can be nondeterministic; the replay never is. Once promoted, a
Journey runs on any environment you name, renders as a narrated demo, and is one call over MCP
(run_journey). A model never drives the page directly.
The loop
The autonomous testing engine operates as a repeated state-transition loop: one typed action per step, chosen by Jev (TypeSafe's judgment model) in goal and usability runs, or by code strategies in adversarial, coverage, exploratory and feature runs, and executed by a runner:
Observe
→ Enumerate
→ Decide
→ Act
→ Measure
→ Verify
→ Record
→ Repeat A model claim never constitutes proof — success or failure is decided by runtime evidence or an explicit assertion you define.
The docs
- Getting Started: install,
init, first run, next steps. - Journeys: author or record, promote, replay, intent, anchored missions and campaigns, stable step ids, locator health, self-heal, share, load-test.
- Demos & Environments: watch or record runs,
--env,journey demo,demo "<aspect>", screenshots, pixel masking. - MCP & CLI: every command, the MCP tools and what stays human-only.
- Safety & Secrets: the hard floors that always hold.
- Testing Modes: every way to point
jevitate exploreat your app. - Beyond tests: replay Journeys as parameterized, self-healing browser automation.
- Sweeps & Personas:
jevitate sweep, run tags,jevitate login, the auth pre-flight check. - Catalog & Sign-off: personas, job stories, review sheets, approvals bound to a content hash, readiness, catalog analysis, job outcomes, publishing to Journeeze, what human approval guarantees (including verified pull-request approvals).
- Usability Review: advisory usability findings, each a claim verified by code.
- Flags Reference: which flag applies where.
- Report Schema: exit codes, the result fields, evidence,
check.jsonbaselines and locator health. - Targeting Real Apps: dev servers, SPAs, stateful apps, log correlation, browser extensions and shared machines.
- Regression & CI: verify fixes, commit regressions, gate CI.