Illustrative workflow · not a live agent or Jev response
Explore the app.
Describe the action.
Your agent sends targets and claims through MCP. Jev picks from structured candidates and judges accessible state.
Passed actions.
Written in plain language.
The flow takes shape as you explore. Only passed actions become steps in the saved spec.
The session ends.
The test stays.
Save writes the passed steps as YAML. Read it. Edit it. Commit it.
Run it again.
Without the agent.
The CLI replays your saved flow. Jev still makes picks and judgments where needed.
● ● ●demo.playwright.dev / todomvc
A little less to do.
Your test environment.
What needs to be done?
buy milk
write a regression test
“Add buy milk to the list.”
expecta todo item named ‘buy milk’ is listed
add-todo.yamlSaved spec
name: add a todo
url: https://demo.playwright.dev/todomvc
steps:
- goto: /
- fill:
target: "the new todo input"
value: "buy milk"
- press: Enter
- expect: "a todo item named 'buy milk' is listed"
Your terminal · illustrative replay
$ npx -p @gabe4coding/plain plain add-todo.yaml
✓ goto
✓ fill
✓ press
✓ expect
Flow replayed · simulated
No coding agent required.
Jev decisions still apply.
Before you run it.
Does replay still cost model calls?
Yes. The coding agent is absent, but Jev still selects targets and judges claims. Spatial classification can also need a call. Provider charges depend on usage. Measured costs and scope ↗.
What does the cache remove?
Spec runs can reuse accepted picks only when the candidate list and spatial evidence checks allow reuse. MCP does not use the pick cache. Claims are not cached. Cache rules ↗.
What happens when a target is ambiguous?
A weak pick is inconclusive, not passed. Claim probabilities between 0.1 and 0.9 are also inconclusive. Write specific targets and scope claims with within. Thresholds and phrasing ↗.
Can it understand layout and visual appearance?
Jev reads structured candidates and accessible state, not screenshots. Spatial prompts also receive rendered bounds, including reference text, frames and open shadow roots. Bounds do not prove color or image appearance. Missing labels, truncated evidence and unusual controls still limit results. Evidence and limits ↗.
What do I need, and where is my key?
Node 22+, npm and a TypeSafe or Vercel AI Gateway key. All CLIs read ~/.config/plain/.env. Desktop needs accessibility permissions. Mobile needs Appium and a configured device. Requirements and key options ↗.
Is this a replacement for every test?
No. Keep explicit conventional tests for exact assertions and pixel-level checks. Use test environments only. Stop before payment, booking or sending. Usage rules ↗.