Getting Started

One command to install, one to run. Jevitate runs locally as a daemon, a CLI, and an MCP server.

Prerequisites

  • Node.js 20+
  • A desktop with a visible browser — you sign in yourself, in a real window.

Install

npm install -g @jevitate/cli

Or run on demand without installing:

npx @jevitate/cli --help

Initialize & sign in

jevitate init                 # set up local state
jevitate profile create work  # opens a headed browser — you sign in
jevitate profile status work
You sign in. Jevitate never requests or stores your password. Complete login, MFA, and consent in the visible browser.

Run a Journey

List what's available, find one, and replay it deterministically — no model in the loop:

jevitate journey list
jevitate journey find "checkout"
jevitate journey run <id> --param email=you@example.com

Journeys live in ~/.jevitate/journeys by default (override with --dir). See Journeys for the full record → promote → run lifecycle.

Record a Journey

Demonstrate a flow yourself in a headed browser and capture it into a Recording:

jevitate record --url http://localhost:3000 --intent "Check out with a saved card"

Press Enter to finish. The Recording lands in ~/.jevitate/recordings.

Promote a recorded take

Turn a captured take into a parameterized, promoted Journey:

jevitate recording fit take.json          # bind variables
jevitate recording postdoc take.json --out journey.json
jevitate recording promote journey.json   # register it

Load-test a Journey

jevitate load run <journeyId> --concurrency 5 --iterations 10 --seed 1

Autonomous testing

Point Jev at your app — goal-directed, feature, exploratory, or adversarial:

jevitate explore --url http://localhost:3000 \
  --goal "Add a product to the cart and reach checkout" \
  --success urlIncludes:/checkout --real

jevitate explore --url http://localhost:3000 --strategy adversarial --real

Each run emits a deterministic Recording (and, for coverage/exploratory, a coverage summary). See Testing Modes for every strategy and flag.

Serve over MCP

Expose your promoted Journeys to an MCP client as typed, allowlisted tools:

jevitate mcp   # MCP stdio server — only allowlisted domain tools, no raw browser

Today find_capabilities and run_journey are fully wired; the other allowlisted tools are served but return not_implemented while they're being wired. See MCP & CLI.

Building from source

git clone https://github.com/matt-cochran/jevitate
cd jevitate && pnpm install && pnpm build