Skip to content

jev-browser

Playwright plus Jev core behind a typed SDK, persistent CLI and MCP server, with native operations needing no key and verifiable assertions.

MCP serverbetaApache-2.0

Overview

Jev Browser by tontoko combines native Playwright operations with Jev decisions over actual page elements, offered through one core behind a typed TypeScript SDK, a persistent CLI and an MCP server. It positions itself as a replacement for a Playwright MCP or CLI setup and for Stagehand's DOM-grounded act, observe, structured extract and bounded agent workflows. Its tagline is parallel semantic decisions, deterministic Playwright effects and explicit verification provenance.

Native operations and assertions run without any AI key; only the natural-language paths call Jev, through the official TypeSafe SDK by default or any compatible System One endpoint set with a base URL, which never receives the hosted key. The decision backend only chooses among supplied candidates and never generates JavaScript or selectors. It requires Node 22.15+ and a matching playwright-core, ships as release tarballs, has documentation on migration, API, semantic verification and security, a Japanese README, and is Apache-2.0 licensed without hosted services or weights.

What the decision model decides

TypeQuestionAnswers
ChoiceWhich page element matches this natural-language act or observe instruction?(inferred)—
Yes / noDoes this semantic assertion hold on the page?(inferred)yes · no

How it works

  1. Use native Playwright operations directly where possible
  2. For natural-language steps, collect candidate elements
  3. Jev chooses among candidates in parallel
  4. Playwright performs the effect; verification records provenance

Strengths

  • Native operations work with no key
  • Works with any compatible System One endpoint
  • Never generates code or selectors

Caveats

  • Installed from release tarballs rather than npm
  • Version pinning of playwright-core required

Getting started

`npm install --save-dev ./tontoko-jev-browser-0.16.0.tgz` then `npx jev-browser install chromium`.

At a glance

Type
MCP server
Status
beta
Language
TypeScript
Runtime
SDK, CLI, MCP server (Playwright)
Has code
yes
Has tests
yes
License
Apache-2.0

Use cases and integrations

How curated lists describe it

  • Playwright browser automation with Jev decisions through a shared CLI, MCP server and TypeScript SDK.

    logicrw/awesome-jev-projects
  • One grounded Jev/Playwright core: typed SDK, persistent CLI, and MCP server…

    wh000wh000/awesome-jev-live
  • One grounded Jev/Playwright core: typed SDK, persistent CLI, and MCP server with native browser operations and deterministic assertions.

    hellogumbo/awesome-jev
  • One core behind a typed SDK, a persistent CLI and an MCP server: native Playwright operations and assertions need no key, and only the natural-language paths call Jev. Japanese.

    MrJev/awesome-jev

Frequently asked questions

Do I need a key for everything?

No, native operations and assertions run without any AI key.

Can I use a self-hosted model?

Yes, any compatible System One endpoint via baseURL.

What does it replace?

Playwright MCP/CLI setups and Stagehand-style act, observe and extract.

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 skillbeta
  • Browser agent where Jev picks each action from indexed page controls, an LLM plans and reads, and answers cite page quotes.

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

    AppbetaTypeScript
  • 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
  • Browser tests written as user steps: Jev finds each control once, the path is recorded, and replays run without the model.

    ProjectbetaTypeScript