Jev decides · any harness acts
Jev decides. The harness acts.
One observed element and one operation per step. Decisions come from TypeSafe Jev; actions come from your browser MCP. No screenshots and capped text keep navigation quick and cost low.
Zero-touch setup
Paste this one line into any coding agent that can run shell commands. It fetches the instructions, detects the harness, installs the matching adapter, and asks you for the one key it needs.
Set up jev-browser from https://xpressabhi.github.io/jev-browser/install.md and follow those instructions.
The instructions live in install.md — read it before running it. Prefer to do it by hand? README → Install.
Observed decisions, not generated ones
Jev asks a narrower question than a general agent: given the elements the harness actually observed, which single operation advances the goal?
- Targets are element refs from the latest snapshot; the executor never invents selectors, coordinates, or values.
- One validated operation and target per cycle, consumed once; stale refs are re-observed, not acted on.
- No screenshots in the loop; page text is capped near 6,000 characters and treated as untrusted data.
- Text values reuse the session’s selected model; host keys, an optional TEXT_MODEL_API_KEY override, and free Zen models are the fallbacks.
Full reference — tools, loop, key resolution, limits — in the README.
Fast cycles, small bills
Bounded multiple-choice questions and text-only payloads. The core is harness-agnostic; one code-mode script or CLI pipe can run the whole cycle with snapshots kept out of the model context.
- 378–419 msdecision latency in the live trace
- 0screenshots or image tokens sent to Jev
- ≤255choices offered per question
- ≤6,000characters of page text per request
How the fast path scripts it: README → Loop.
Quick start
The core and the CLI need no build step and no browser binding: pipe a snapshot in, get a decision out. Node 22.6+.
./src/cli.ts observe --snapshot snapshot.txt --url "$URL" --title "$TITLE" \
| ./src/cli.ts step --goal "Search Wikipedia for OpenAI" --page -
Then wire it into a harness — the same core underneath each one.
{
"$schema": "https://opencode.ai/config.json",
"plugins": ["/path/to/jev-browser"]
}
Full step-by-step installs for OpenCode, Claude Code, Codex, and any other harness are in the README → Install. Then run /jev-browse in OpenCode, or just ask for browser work.