Unedited, apart from fast-forwarding the typing
Watch it order a bagel.
A brand-new feature file, written in vim and run against the live Wikipedia. Nobody told jevcumber where the search box is, or what "an article about bagels" looks like.
Stay for the last frame: when the run passes, the terminal's autosuggest offers to “refactor the step definitions to improve maintainability.” There aren't any.
How it works
You order. Jev reads the menu.
jevcumber is built on Jev, TypeSafe AI's fast System One model. Jev doesn't write code and it doesn't invent values. It answers multiple-choice questions — and jevcumber writes the choices from what is really on the page.
Code lists what's there
Playwright opens the page. jevcumber collects its buttons, fields and links, and the literal values in your step.
Jev picks among them
One request, about a second: what kind of action, which control, which value. Every answer comes back with a probability.
Playwright does it
The picks become an ordinary click, fill, or assertion — and get written down so they never need asking again.
It refuses to guess.
If Jev isn't sure, jevcumber won't click anything. The step is reported as ambiguous, with what it was torn between, so you can say what you meant.
? When I click it (ambiguous) Jev was not confident about the element (0.10 < 0.6). Candidates: button "Log in" (45%), link "Sign up" (35%), none (20%).
Pickled for later.
The first run saves what every step resolved to in a lockfile next to your feature. Commit it, like a package-lock.json.
After that, runs replay it: no API calls, no API key, no model variance. Change a step and only that step is re-resolved. Change your UI and the step heals itself — visibly, in the diff.
$ jevcumber features/ --frozen # in CI ✓ Given I am on https://en.wikipedia.org ✓ When I search for "bagel" ✓ Then the URL should contain "/wiki/Bagel"