jevcumber
Cucumber runner where Jev resolves each Gherkin step against the live page and Playwright executes it, so tests need only the .feature file.
Overview
jevcumber lets you write Cucumber tests with just the .feature file and no step definitions. It opens your site in a real browser with Playwright and, for each Gherkin step, asks Jev what the step means on the page in front of it. Jev never writes code or invents values: jevcumber lists what is actually there (the page's buttons, fields and links, plus the literal values quoted in your step) and Jev picks among them. For a step like when I search for bagel, one request of about a second asks what kind of action it is (fill), which control (Search Wikipedia), which literal is the text (bagel) and whether to type only or type and submit (submit).
Every answer comes with a probability, and if Jev is not confident, below 0.6 in the example, jevcumber refuses to guess and reports the candidates it was torn between. A frozen mode is shown in the example run. It is published on npm, has CI, is available as an agent skill, and has a website with a demo video.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Choice | What kind of action is this step (fill, click, assert, navigate...)? | — |
| Choice | Which on-page control does the step refer to? | — |
| Choice | Which quoted literal is the text to type? | — |
| Choice | Type only, or type and submit? | type · submit |
How it works
- Open the site with Playwright
- For each step, list page controls and literals
- One Jev request answers action, target, value and submit questions
- Execute if confident (>= 0.6), else refuse and show candidates
Strengths
- No step definition glue code
- Refuses to guess on ambiguity
- About a second per step per the README
Caveats
- Requires a TypeSafe key
- Ambiguous wording leads to refusals
Getting started
npx jevcumber examples/ (install from npm; set TYPESAFE_API_KEY).At a glance
- Type
- Project
- Status
- beta
- Language
- TypeScript
- Runtime
- Node + Playwright
- Has code
- yes
- Has tests
- yes
Use cases and integrations
How curated lists describe it
Write Cucumber tests with just the .feature file. No step definitions — Jev (TypeSafe AI) resolves each Gherkin step and Playwright runs it.
hellogumbo/awesome-jev
Frequently asked questions
Do I need step definitions?
No, Jev resolves each step against the page's actual controls and your step's literals.
Can Jev invent values to type?
No, it only picks among literals quoted in your step.
What if a step is ambiguous?
Below the confidence threshold it refuses and lists the candidates.
Related projects
CodexQA browser skill that indexes in-page controls and has Jev pick the operation and target each step, with no screenshots needed.
Agent skillbetaGoal-driven browser agent where each step is one Jev choice over the page's controls, then reviews the run for root causes.
AppbetaTypeScriptChinese UI test framework where Jev scores candidate page elements for each step of a natural-language test case.
ProjectbetaPythonBrowser tests written as user steps: Jev finds each control once, the path is recorded, and replays run without the model.
ProjectbetaTypeScriptCommunity runner for Midscene Test adding jevAct, jevAssert and jevWaitFor nodes that use Jev over a bounded, non-text action space.
PluginbetaTypeScriptNode CLI for goal-driven E2E tests: Jev picks the next step from a code-generated action space, playwright-cli executes, code asserts.
CLIbetaJavaScript