Skip to content

JevOnly

Browser agent with no LLM: code enumerates options from the page and goal, and Jev only picks actions, values and when to stop.

Projectprototype

Overview

JevOnly shows that a browser agent can complete tasks using only Jev, with no planner model or helper LLM. Each step is a closed question over options that code enumerates from the page's accessibility snapshot, the goal and a register of copied values. A single request answers whether the task is done, whether the agent is off path and which action to take next.

Fields can only receive a known fact, a span of the goal that Jev narrows down, or a value copied from the page, never invented text. After each action Jev compares before and after states and failed actions are undone. Irreversible actions, when a risk vote is at least 0.5, pass through a gate set to refuse, ask or allow. The README reports a Wikipedia lookup task finishing in about 20 steps, 80 Jev calls and 30 seconds. The same loop can run QA regression suites on a site you own, with repeated runs and replayable event logs.

What the decision model decides

TypeQuestionAnswers
Yes / noIs the task done? / Is the agent off path?—
ChoiceWhich action should be taken next?—
ChoiceWhich value (fact, goal span or copied page value) should fill this field?—
Yes / noIs this action irreversible or risky?—

How it works

  1. Observe the page's enabled controls and visible text
  2. Jev votes on done, off-path and next action in one request
  3. Bind field values only from facts, goal spans or copied page values
  4. Act in Chromium, then Jev verifies the change; undo on failure
  5. Risky actions go through the refuse/ask/allow gate; stop when done

Strengths

  • No generated text, so fields cannot receive invented values
  • Live viewer shows every observation, vote and action
  • Doubles as a cheap QA regression tester
  • Environment-agnostic core with browser as first environment

Caveats

  • Each step uses several Jev calls (about 80 for a 20-step task)
  • Requires Python 3.12+, Node 22+ and a TypeSafe key
  • Closed option sets may not cover every page interaction

Getting started

git clone https://github.com/buluoray/JevOnly.git && cd JevOnly && ./run.sh, then paste your key, a start URL and a goal in the viewer at http://127.0.0.1:7791.

At a glance

Type
Project
Status
prototype
Language
Python
Runtime
CLI and local web viewer with Chromium
Has code
yes

Use cases and integrations

How curated lists describe it

Frequently asked questions

How can it type without an LLM?

It fills fields only with known facts, spans of the goal or values copied from the page, chosen by Jev.

What stops it doing something destructive?

Actions with a risk vote of 0.5 or more go through a gate that defaults to refuse in the CLI and ask in the viewer.

Can I use it for testing?

Yes, jevonly qa runs a suite of closed tasks repeatedly and records pass/fail per case.

Related projects

  • Goal-driven browser agent where each step is one Jev choice over the page's controls, then reviews the run for root causes.

    AppbetaTypeScript
  • TypeScript library and CLI for exploratory browser testing where Jev chooses actions and judges results and Playwright executes them.

    ProjectprototypeTypeScript
  • CodexQA browser skill that indexes in-page controls and has Jev pick the operation and target each step, with no screenshots needed.

    Agent skillbeta
  • Chinese UI test framework where Jev scores candidate page elements for each step of a natural-language test case.

    ProjectbetaPython
  • Cucumber runner where Jev resolves each Gherkin step against the live page and Playwright executes it, so tests need only the .feature file.

    ProjectbetaTypeScript
  • Flutter integration-test package where Jev picks the next registered UI action and judges whether the test goal is reached.

    LibrarybetaDart