jeva
Open 2B browser-agent decision model fine-tuned from MiniCPM5 that serves the System One protocol for jev-ultrafast.
Overview
jeva is a 2B-parameter browser-agent decision model you can train and run yourself. It turns a page observation plus a goal into exactly one action as compact JSON: an operation (CLICK, TYPE_TEXT, SELECT, WAIT, DONE or BLOCKED) and a target index from the supplied observation. It never emits CSS selectors, coordinates or JavaScript. It is a fine-tune of openbmb/MiniCPM5-2B with weights merged into the base, about 1.6 GB as a Q4_K_M GGUF, running at about 230 ms per decision under llama.cpp on a single V100.
A jeva systemone command serves TypeSafe's /v1/systemone protocol, so an existing jev-ultrafast agent can be repointed with a one-line change. The README reports 100% task success on frozen suites, including a site whose vocabulary and layout never appear in training, and stability under title and form-layout changes that tripped earlier revisions. Training used 10,686 trajectories from 2,600 tasks collected in about 30 minutes by driving real Chrome with a deterministic solver, with zero human labels, and one LoRA pass of about 75 minutes. The collector, training and quantisation pipeline, test sites and eval results are included.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Choice | Which operation and target index advance the goal on this page? | CLICK · TYPE_TEXT · SELECT · WAIT · DONE · BLOCKED |
How it works
- Observe the page into an indexed element list
- jeva returns one operation and target
- Executor resolves the index against the same snapshot
- Repeat until DONE or BLOCKED
Strengths
- Self-hostable; drop-in for jev-ultrafast via the systemone protocol
- About 230 ms per decision on one V100 per the README
- Full training pipeline included, no human labels
Caveats
- Evaluated on the author's frozen suites
- Generalisation beyond tested sites unproven
- Needs a GPU for the reported latency
At a glance
- Type
- Project
- Status
- research
- Language
- Python
- Runtime
- llama.cpp / local server
- Has code
- yes
- Has tests
- yes
Use cases and integrations
How curated lists describe it
A 2B browser-agent decision model. Speaks the TypeSafe System One protocol, so jev-ultrafast is repointed with one line. Answers do not move with the page title or the form layout. 100% on the action suite.
hellogumbo/awesome-jev
Frequently asked questions
Can I use it with jev-ultrafast?
Yes, `jeva systemone` serves the same /v1/systemone protocol, so repointing is a one-line change.
How was it trained?
On 10,686 trajectories collected automatically from a deterministic solver driving Chrome, with one LoRA pass.
How fast is it?
About 230 ms per decision on a single V100 per the README.
Related projects
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 serverbetaPythonRuns jev-browser entirely on a local Jev-style engine (Qwen2.5 1.5B decisions, 0.5B typing) on an RTX 2060 SUPER, with no cloud API.
BenchmarkprototypePython, TypeScriptOpenJev 1.7B-8B: open decision models distilled for general decisions and browser-agent steps, served behind /v1/systemone.
ModelbetaPythonComputer-use platform (Cua Spaces, Driver, Lume) with CUA-S1 small decision models and a preview jev-use example for bounded actions.
ProjectbetaPythonFork of the jev-chat Windows app adding a key-free local LAYA judgment backend and a DPI-aware screen capture fix.
ProjectbetaPythonSelector-free pytest UI tests for saucedemo using a jev-ultrafast-style agent run fully locally with laya-browser and a small Ollama model.
ProjectprototypePython