turbo
Browser automation where Jev picks every step from a sightmap's named actions and reports whether the goal is met.
Overview
jev-turbo runs browser tasks without a large model in the action loop. A sightmap turns each page into a short list of named actions (for example a ProductCard's add-to-cart button), and Jev picks one per step and also judges whether the goal has been reached. You give it a goal, a finish check such as view=Cart, and the values it is allowed to type.
The project also measures what the site map is worth: it runs the same goal with and without the map on the same model. In its IKEA example, sixteen identical add-to-cart buttons confused Jev without a map, while with the map it picked the right one at 1.00 confidence in fewer steps. Per-step timings are printed, with picks around 140 to 180 ms in the sample run. Without an existing map, a --grow flag names controls as it goes, though good names still need a person.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Choice | Which named action on this page moves toward the goal? | — |
| Yes / no | Is the goal met? | yes · no |
How it works
- Start a sightmap browser session on the site.
- Each step, sightmap lists named actions on the page.
- Jev picks an action and estimates whether the goal is done.
- The harness acts, waits for the page to settle and repeats until the finish check passes.
Strengths
- No large model call per action.
- Per-step latency breakdown is printed; sample picks are around 150 ms.
- Built-in with/without-map comparison shows the value of semantic page structure.
Caveats
- Works best with a curated sightmap; auto-grown names need human cleanup.
- Requires a TypeSafe API key.
Getting started
npm install -g @sightmap/jev-turbo, export TYPESAFE_API_KEY, then jev-turbo explore --sightmap-dir <dir> --goal "..." --done-when view=CartAt a glance
- Type
- Project
- Status
- beta
- Language
- Go
- Runtime
- CLI with Chrome via CDP
- Has code
- yes
Use cases and integrations
How curated lists describe it
Jev-powered semantic browser use.
hellogumbo/awesome-jev
Frequently asked questions
What does Jev decide?
Which named page action to take next and whether the goal has been reached.
What is a sightmap?
A map that turns a page into a short list of named actions with properties, read over CDP.
Do I need any key besides TypeSafe?
No, the README says the TypeSafe key is the only one needed.
Related projects
Browser-agent benchmark with five timed events from one prompt, plus a ~200-line DevTools agent where Jev picks each action.
ProjectbetaJavaScriptego-decision-layer: measured, pluggable decision layer for ego lite where Jev picks operation and target in one request.
ProjectbetaTypeScriptPlugs any CDP browser, including engines that never draw a page, into a Jev loop that picks operations and targets from the DOM.
LibrarybetaPythonBrowser agent that acts on one look at the page with one open-model call per action; Jev is an optional chooser backend.
AppprototypePythonOpen Apache-2.0 browser-agent decision model (Qwen3.5-35B-A3B fine-tune) that doubled Jev 1.13's task success in the same agent.
ServiceresearchPythonBrowser driver where Jev makes every decision and agent-browser performs every action, benchmarked against Claude Code on 10 tasks.
BenchmarkbetaTypeScript