Flags Reference
jevitate explore takes one flag set for all six modes (--strategy goal
| exploratory | adversarial | coverage | usability, plus
--feature <name>). Some flags only mean something in some modes: a few are
refused elsewhere (exit 64), the rest are accepted and do nothing. This page names them. Every flag
of every command, with its description, is in the generated
docs/cli.md.
Target & scope
| Flag | goal | feature | exploratory | coverage | adversarial | usability |
|---|---|---|---|---|---|---|
--url | req | req | req | req | req | req |
--allow | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
--goal | req* | — | — | — | — | req (the job) |
--feature | — | req (selects it) | — | — | — | — |
--route | — | ✓ (replaces the scope) | ✓ (widens) | ✓ (widens) | ✓ (widens) | — |
--scope app | — | — | ✓ | ✓ | — | — |
--app-class | — | — | — | — | — | req |
* A goal with no --success is a find-out goal: it ends with an answer grounded in text the run saw, and is read-only unless you pass --allow-writes. A goal with no --success that asks for a change still never performs a destructive write without --allow-writes or --allow-destructive. Coverage and exploratory runs stay on the start URL's route by default.
Start inside a Journey
| Flag | goal | feature | exploratory | coverage | adversarial | usability |
|---|---|---|---|---|---|---|
--from-journey | ✓ | 64 | ✓ | ✓ | ✓ | ✓ |
--at-step | ✓ | 64 | ✓ | ✓ | ✓ | ✓ |
--param / --journeys-dir | ✓ | 64 | ✓ | ✓ | ✓ | ✓ |
--from-journey <id> --at-step <n|anchor|all|anchors> replays a promoted Journey's prefix and starts the mission on the live page, instead of --url. With it, --feature, --url, --repeat, --persona, --personas and --actor are refused (exit 64). --at-step all|anchors runs each stop in a fresh session restored by --fixtures (any strategy here) and splits --max-actions evenly. A single --at-step <anchor|n> also takes --fixtures, --before and --after (hooks need --allow-shell-hooks) with any strategy; it runs as a one-stop campaign. See Journeys.
Success checks
| Flag | goal | feature | exploratory | coverage | adversarial | usability |
|---|---|---|---|---|---|---|
--success | ✓ (repeatable) | 64 | 64 | 64 | 64 | ✓ |
--success-when (final | held | each) | ✓ | 64 | 64 | 64 | 64 | ✓ |
--allow-vacuous-checks | ✓ | 64 | 64 | 64 | 64 | ✓ |
On a usability run, --success checks decide whether the job was done, exactly as on a goal run. Every other mode refuses them rather than silently ignoring them.
Authenticated apps & secrets
| Flag | goal | feature | exploratory | coverage | adversarial | usability |
|---|---|---|---|---|---|---|
--storage-state | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
--save-storage-state | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
--secret | ✓ | — | — | — | ✓ | ✓ |
--secret-field | ✓ | 64 | 64 | 64 | 64 | ✓ |
--allow-secret-cmd | ✓ | 64 | 64 | 64 | 64 | ✓ |
--totp | ✓ | 64 | 64 | 64 | 64 | ✓ |
--fixture | ✓ | 64 | 64 | 64 | 64 | ✓ |
--fixtures / --before / --after | ✓ | 64 | 64 | 64 | 64 | 64 |
--fixture-identity | ✓ | 64 | 64 | 64 | 64 | 64 |
--type-fixture | ✓ | 64 | 64 | 64 | 64 | 64 |
--actor | ✓ | 64 | 64 | 64 | 64 | 64 |
--secret only redacts a value; it is never typed. --secret-field and --totp bind a login or MFA field to an environment variable that code types (or, with a cmd: source and --allow-secret-cmd, to the output of a command run when the field is typed; operator-only, never an MCP argument); under any other strategy they are refused (exit 64). --fixture is a local file for an upload control; --fixtures (and --before/--after hooks, with --allow-shell-hooks) seed and reset app state around a goal run and every replay. --fixture-identity <name>=<storageState> binds a named identity a fixture step authenticates as (mint an invite as the owner, run the mission cold). --type-fixture types a file's exact text into a matching field, line breaks kept.
Conversational pages
| Flag | goal | feature | exploratory | coverage | adversarial | usability |
|---|---|---|---|---|---|---|
--reply-wait-ms | ✓ | — | — | — | — | ✓ |
--reply-ceiling-ms | ✓ | — | — | — | — | ✓ |
--reply-max-chars | ✓ | — | — | — | — | ✓ |
--reply-quiet-ms | ✓ | — | — | — | — | ✓ |
Bounds
| Flag | goal | feature | exploratory | coverage | adversarial | usability |
|---|---|---|---|---|---|---|
--max-actions | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
--max-decisions | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
--stall-timeout | — | ✓ | ✓ | ✓ | — | — |
--hang-replays | ✓ | — | — | — | ✓ | — |
A page that settles before any control renders gets up to 3 s of grace (never past the render ceiling) before it is judged blank, so lazy and code-split routes are not blocked; a very short --stall-timeout can fire on such a step. --max-actions caps executed mutations and navigations only. A wait or scroll decision never increments it; only --max-decisions and the built-in no-progress detector bound a run that keeps deciding to wait.
Adversarial thresholds (adversarial only, not coverage)
| Flag | goal | feature | exploratory | coverage | adversarial | usability |
|---|---|---|---|---|---|---|
--min-control-coverage | — | — | — | — | ✓ | — |
--no-require-form-submit | — | — | — | — | ✓ | — |
Despite the name, --min-control-coverage and --no-require-form-submit only decide whether an adversarial run that found nothing counts as clean. --strategy coverage does not read them.
Scope region and navigation guard (0.14.0)
| Flag | goal | feature | exploratory | coverage | adversarial | usability |
|---|---|---|---|---|---|---|
--scope-region | 64 | 64 | ✓ | ✓ | ✓ | 64 |
--block-off-allowlist-navigation | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
--scope-region <descriptor> (repeatable, the --success descriptor syntax) measures and hunts only the controls inside a page region; declare a region instead of lowering --min-control-coverage. Other strategies, a bad descriptor, or one beside an anchor region are refused (E_EXPLORE_ARGS, exit 64). --block-off-allowlist-navigation answers an off-allowlist page navigation 204 before it loads and treats it as a departure (server redirects still pass; the HTTP cache is off); it applies to mission runs only.
Oracles
| Flag | goal | feature | exploratory | coverage | adversarial | usability |
|---|---|---|---|---|---|---|
--invariants | ✓ | ✓ | ✓ | ✓ | ✓ | budget part only |
--log-source / --log-defect | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
--check-overflow | — | — | ✓ (defect) | ✓ (defect) | ✓ (defect) | ✓ (signal) |
--ignore-overflow | — | — | ✓ | ✓ | ✓ | ✓ |
--log-correlation-header / --log-id-pattern / --log-scope | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
--action-deltas | ✓ | 64 | ✓ | ✓ | ✓ | ✓ |
--log-triage | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
--check-overflow covers horizontal overflow and vertical clipping (text cut off by a fixed-height box or above the page top); both are on by default below a 1024px viewport, and --ignore-overflow <selector> excludes intentional cases. The log flags match backend-log lines to the exact request by trace or correlation id, and --log-scope keeps only matching lines when runs share one log. --log-triage needs at least one --log-source (else exit 64) and keeps only the log lines related to each defect in defects[].relatedLogs; Jev scores them with --real, code keeps the window's error and warning lines with --fake-ai. --action-deltas (opt-in) records what each action changed, with a code verdict per action (no-change, relevant-change, inconclusive): goal runs use it for no-progress and a persistence re-check after writes; other strategies keep it as evidence. It costs about 50–110 ms per action on a small page.
Usability review
| Flag | goal | feature | exploratory | coverage | adversarial | usability |
|---|---|---|---|---|---|---|
--probe-guards | 64 | 64 | 64 | 64 | 64 | ✓ |
--product | 64 | 64 | 64 | 64 | 64 | ✓ |
--polish | 64 | 64 | 64 | 64 | 64 | ✓ |
--probe-guards opts in to clicking each destructive control once, fail-safe (every write and destructive-looking request is aborted), to check it asks first; without it those claims are unverifiable. --product <file> (default .jevitate/product.json) is the product facts the review checks prices, trials and next steps against. See Usability Review.
Watch, record and capture
| Flag | goal | feature | exploratory | coverage | adversarial | usability |
|---|---|---|---|---|---|---|
--headed / --slow-mo | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
--no-overlay | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
--record-video | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
--screenshots | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
--evidence-video | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Headless by default. --headed without a display is refused (exit 64); use --record-video. --no-overlay only matters with --headed. See Demos & Environments.
Issue filing
| Flag | goal | feature | exploratory | coverage | adversarial | usability |
|---|---|---|---|---|---|---|
--file-issues | ✓ | — | — | — | ✓ | — |
--issue-repo / --jevitate-repo | ✓ | — | — | — | ✓ | — |
Every run writes redacted issue drafts; only goal and adversarial runs file them, and with --evidence-video only after their media is linked.
Emulation
| Flag | goal | feature | exploratory | coverage | adversarial | usability |
|---|---|---|---|---|---|---|
--viewport / --device | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
--geolocation | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
--viewport and --device are mutually exclusive. --geolocation <lat>,<lng>[,<accuracy m>] places the browser at a fixed position, with the permission granted to the allowed origins only. The emulation is recorded on the Recording, so verify-fix and regressions replay at the same size.
Gateways & output
| Flag | goal | feature | exploratory | coverage | adversarial | usability |
|---|---|---|---|---|---|---|
--real / --fake-ai | req (one) | — (model-free) | req (one) | req (one) | req (one) | req (one) |
--json | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
--out | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
--real and --fake-ai together are refused (exit 64). Adversarial and feature missions plan in code: --feature needs no gateway, and on adversarial --fake-ai only replaces advisory calls (nothing it reports depends on them). Without --json every strategy prints a human summary; with it, the one-line {v, ok, data} envelope.
Every strategy
These apply to every mode (see docs/cli.md for each one's exact semantics):
--api-prefix · --settle-ignore · --long-poll-ms · --ignore-no-progress (timing & settle)
--deny · --paid · --allow-destructive · --read-rpc · --dialogs dismiss|accept (click, write and dialog safety)
--repeat / --min-agreement · --persona name=storageState · --personas (repeat-and-vote, persona matrix)
--browser-executable · --browser-channel · --browser-arg (which Chromium)
--extension <dir> (load an unpacked browser extension)
--max-browsers · --max-browser-memory · --ignore-host-load (resource governance) See the dev-server recipe for the timing and settle flags.
Other commands: environments, demo mode and capture
| Flag | Commands |
|---|---|
--env <name> / --base-url <origin> | journey run, journey annotate, journey demo, regression run, load run; demo requires --env |
--headed / --slow-mo | explore, journey run, journey demo, demo, demo approve, verify-fix, regression capture, regression run |
--record-video [dir] | explore, journey run, verify-fix (before/after clips); mission queue (a switch) |
--screenshots [screens|steps|dir] | explore, journey run, journey annotate, journey demo, verify-fix; mission queue (a mode, never a path) |
--evidence-video | explore, mission queue |
--viewport / --device | explore, journey run, journey annotate, journey demo, demo, load run, source run, verify-fix, regression capture, regression run, mission queue |
--video <file.webm> / --guide <file.md> / --pace <ms> | journey demo (demo and demo approve take --out and --pace) |
--action-deltas | explore (not --feature), journey run, journey annotate, journey demo, verify-fix |
--allow <origin> (0.15.0) | journey run, journey verify: an extra origin the replay may reach (repeatable), added to the recorded site and metadata.allowedOrigins; MCP run_journey and verify_journey take no allow argument |
--fixtures / --before / --after / --fixture-identity (0.15.0) | explore-author-journey: --fixtures is recorded as metadata.fixtures and reused by journey run, journey verify --mutate and journey annotate with no flag (precedence: --fixtures, recorded file, environment's); a missing recorded file is E_FIXTURE_SPEC |
--log-source and the other backend-log flags, --allow-writes (0.15.0) | explore-author-journey (MCP author_journey maps allowWrites and omits the log flags) |
--fixture-identity <name=storageState> | explore, journey run, journey annotate, journey demo, demo, demo approve, verify-fix, regression capture |
--geolocation <lat>,<lng>[,<accuracy m>] | wherever --viewport / --device are, except mission queue |
--extension <dir> | every command that drives a browser: explore, explore-author-journey, journey run|annotate|demo, demo, verify-fix, check, ledger verify, regression capture|run, load run, source run, mission run, record |
--log-triage | explore (every strategy), campaign run, check (suite items and targets: logTriage); logs triage re-triages a finished run |
campaign run mission options | --allow-destructive, --allow-writes, --deny, --paid, --invariants, the backend-log flags, --evidence-video, --record-video, --screenshots, --log-triage, forwarded to every mission; --hook-timeout-ms reaches campaign and sweep hooks |
--max-browsers / --max-browser-memory / --ignore-host-load | every browser-driving command except record |
Never headed: mission run, load run and source run. See
Demos & Environments.
What --app-class does and does not control
--app-class is read in one place: the usability analyzer's calibration. It tells the
rubric what kind of app this is (consumer, admin, internal, …)
so heuristics are judged sensibly for that context. It is not a persona: the live
usability review calibrates against a default "first-time user", and only the offline
jevitate ux takes a usability --persona. explore --persona
name=storageState is something else again: it runs the same mission once per signed-in
session and diffs them for RBAC candidates. Under every strategy other than usability,
--app-class is accepted and ignored. See Usability Review.