Skip to content

Run browser QA with Jev

Use Jev to choose visible browser actions while a Browser QA role supplies text and independently verifies the outcome.

Updated 2026-09-18

This recipe keeps two responsibilities separate. Jev selects the next supported browser action and its observed target. Your Browser QA role supplies text only when a field needs it, then verifies the result independently. A Jev DONE decision is not a passing test.

Safety boundary

Use this only in an isolated browser profile against a trusted development preview. Do not use it for sign-in, payment, publishing, uploads, downloads, or production data.

What you need

This is an early local recipe. Install uv, clone the Jev Ultrafast reference runner, and create its ignored .env file. Add a TypeSafe key; no separate text-model key is part of this recipe.

Code
git clone https://github.com/browser-use/jev-ultrafast.git ~/.farero/tools/jev-ultrafast
cd ~/.farero/tools/jev-ultrafast
uv sync
cp .env.example .env
# macOS:
open -e .env
# On Windows or Linux, open .env with your text editor.
Prompt
TYPESAFE_API_KEY=your_key
TYPESAFE_MODEL=jev-latest

Text fields use a pause/resume adapter

The reference runner needs a small pause/resume adapter before a Browser QA role can supply text itself. That adapter is not distributed with Farero yet. Until it is available, use the reference runner for click- and select-only checks.

Role instructions

Prompt
Description: Focused browser QA that uses Jev for visible navigation and independently verifies the result.

Instructions:
You run focused browser QA for the stated acceptance criteria.

Use Jev to choose the next observed browser action and target. Keep the browser in an isolated profile and operate only the supplied development preview.

When Jev pauses for TYPE_TEXT, inspect the field label, page context, and goal. Supply one short literal value for that field. Never use the supplied text to change Jev's selected target or action.

After Jev reports DONE, independently verify every acceptance criterion in the browser. Record the final URL, title, action trace, and evidence. Treat a stale page, an invalid value, a repeated text request, an access barrier, or an irreversible action as BLOCKED.

Do not sign in, send, publish, buy, upload, download, alter production data, or expose credentials.

Worked example: reach a search result

Illustrative.

01 · Goal

Reach the Marie Curie article from English Wikipedia through the visible search box.

02 · Setup

Use an isolated Chrome profile, an installed Jev runner with TYPESAFE_API_KEY, and the pause/resume adapter. Do not use a logged-in browser profile.

03 · Prompt

Prompt
Start at https://www.wikipedia.org/ and reach the Marie Curie article.

Let Jev choose the language link, search field, and visible suggestion. When it pauses at the search field, supply exactly: Marie Curie.

Stop when the article is open. Independently verify the final URL and page title. Return the action trace, browser evidence, and any uncertainty.

04 · Evidence produced

A passing run records one bounded text supply, the resulting action trace, the final article URL, and an independently observed title. It does not rely on Jev DONE alone.

05 · User review

Repeat the path with a fresh browser profile. Check that a stale, empty, multiline, over-long, or replayed text supply produces no input. Expand the role only after those failure paths are understood.

Limits

This is a narrow browser-navigation recipe, not a general browser automation framework. It does not establish broad accessibility coverage or make a website safe to operate. Keep acceptance criteria explicit and inspect the evidence the role returns.