Skip to content

jev-browser (vinilana)

Hybrid TypeScript browser harness: an LLM plans verifiable subgoals, Jev picks each action and DOM field, Playwright acts.

Projectprototype

Overview

Jev Browser by vinilana is a hybrid browser harness in TypeScript that divides work three ways. An OpenRouter LLM turns a goal into a short plan of sequential, verifiable subgoals without selectors or invented fields; Jev chooses each action and DOM field; OpenRouter generates text whenever a field needs filling; and Playwright executes the actions. Documentation is in English and Brazilian Portuguese.

It can be run with a high-level goal and supplied values (for example registering a user on a site with name, email and password), with a direct task on a start URL, or with an explicit batch of commands. Direct tasks and batches only use OpenRouter when filling a field. It requires Node 22+, a TypeSafe key for Jev and an OpenRouter key for planning and text, defaulting to OpenRouter's free routing model but accepting any model that supports structured output.

What the decision model decides

TypeQuestionAnswers
ChoiceWhich action should be taken next?—
ChoiceWhich DOM field is the target?—

How it works

  1. LLM plans verifiable subgoals (goal mode)
  2. For each step, Jev picks action and DOM field
  3. LLM writes text for fields that need it
  4. Playwright executes and the harness checks the subgoal

Strengths

  • Clear division between planning, deciding and acting
  • Works with free OpenRouter models for text
  • Several modes from goals to explicit commands

Caveats

  • Needs both TypeSafe and OpenRouter keys
  • Planner quality depends on the chosen LLM

Getting started

`npm install && npm run browser:install`, set TYPESAFE_API_KEY and OPENROUTER_API_KEY, then `npm start -- --url https://www.wikipedia.org 'Search for Alan Turing and open the matching article' --headed`.

At a glance

Type
Project
Status
prototype
Language
TypeScript
Runtime
Node CLI (Playwright)
Has code
yes

Use cases and integrations

How curated lists describe it

  • Hybrid browser harness: an LLM turns goals into verifiable subgoals, Jev chooses each action and DOM field, Playwright acts.

    hellogumbo/awesome-jev

Frequently asked questions

What does Jev decide?

Each action and which DOM field it targets.

What does the LLM do?

Plans subgoals and writes text for fields.

Which OpenRouter model is used?

openrouter/free by default; any structured-output model works.

Related projects

  • RAM-efficient Rust coding-agent harness, listed as using Jev decisions for memory pruning, browser navigation and voice routing.

    ServiceproductionRust
  • MCP server and libraries that drive Chrome over CDP and hand a decision model like Jev a bounded menu of page actions.

    ProjectproductionTypeScript
  • Headless browser automation via MCP server, CLI or library: Jev picks one action per step and scores goal-met and stuck probabilities.

    MCP serverbetaTypeScript
  • Local browser agent that picks each step's operation and element with a Jev-shaped model such as a fine-tuned Laya, no cloud needed.

    MCP serverbetaPython
  • Claude Desktop MCP extension that drives Brave or Chrome with Jev choosing on-page actions and a guard freezing irreversible clicks.

    MCP serverbetaTypeScript
  • Browser-agent benchmark with five timed events from one prompt, plus a ~200-line DevTools agent where Jev picks each action.

    ProjectbetaJavaScript