A tiny 0.6B Jev-like model, fine-tuned from Kev-0.6B for browser use.
Pick the next browser action with a 0.6B model. Give it a goal and the page's candidate elements; it returns which element to act on and whether to click, type or select, as probabilities. It never generates text.
32.2% step success on Mind2Web, the best of any open-weights model that runs in a browser, at 80 ms per decision.

| Model | Size | Step success | Element accuracy | Operation accuracy | Brier (lower is better) | p50 latency |
|---|---|---|---|---|---|---|
| Jev (TypeSafe, hosted API) | closed | 43.5 | 47.9 | 82.7 | 0.73 | network |
| Kev-9B | 9B | 32.5 | 38.7 | 78.7 | 0.76 | 428 ms |
| kev-0.6b-browser-use | 0.6B | 32.2 | 36.1 | 83.6 | 0.84 | 80 ms |
| SemIf, frozen Qwen3.5-4B | 4B | 30.0 | 38.4 | 75.2 | 0.85 | 289 ms |
| Bespoke Nimble-9B | 9B | 26.2 | 38.5 | 59.6 | 0.87 | 979 ms |
| decider-2B | 2B | 24.7 | 33.0 | 62.5 | 0.87 | 139 ms |
| Kev-0.6B (base) | 0.6B | 14.1 | 20.6 | 67.4 | 1.06 | 78 ms |
| NanoJev | 0.6B | 4.2 | 13.1 | 16.4 | 0.92 | 245 ms |
| Laya | 421M | 3.8 | 10.7 | 33.4 | 0.98 | 40 ms |
| Random | 3.6 | 10.5 | 35.5 | 0.94 |
1,000 steps from Mind2Web's test set, 10 candidate elements per step, same text and same candidates for every model. - Step success: the correct element and the correct action in the same step, the number that matters for an agent.
Full table, harness and per-model notes: github.com/arbazsiddiqui/kev-browser-use.
The 4-bit web build, kev-0.6b-browser-use-ONNX, runs on WebGPU with open-jev:
npm install open-jev @huggingface/transformers
import { OpenJev, choice } from "open-jev";
const kev = await OpenJev.load({ model: "arbazsiddiqui/kev-0.6b-browser-use-ONNX", dtype: "q4f16" });
const state = `Goal: Type "Alan Turing" into the search box
Candidate elements:
[0] <a> role=None "Main page"
[1] <input> role=searchbox "Search Wikipedia"
[2] <button> role=None "Search"`;
const { element, operation } = await kev.decide(state, {
element: choice("Which element should be acted on?", [
'[0] <a> "Main page"',
'[1] <input> "Search Wikipedia"',
'[2] <button> "Search"',
]),
operation: choice("What operation should be performed on the target element?", ["CLICK", "TYPE", "SELECT"]),
});
element.choice; // '[1] <input> "Search Wikipedia"', confidence 0.93
operation.choice; // "TYPE", confidence 0.74
This checkpoint is a LoRA adapter plus a pointer head in Kev's format, served by Kev's server.
git clone https://github.com/jaredpalmer/kev.git && cd kev && uv sync --extra serve
uv run --extra serve python -m kev.serve --run arbazsiddiqui/kev-0.6b-browser-use --port 8009
Ask it about a page. Use this exact text shape, it is what the model was trained on:
curl -s localhost:8009/v1/systemone -H 'content-type: application/json' -d '{
"model": "kev-latest",
"state": "Goal: Search Wikipedia for \"Alan Turing\"\nCandidate elements:\n[0] <a> role=None \"Main page\"\n[1] <input> role=searchbox \"Search Wikipedia\"\n[2] <button> role=None \"Search\"\n[3] <a> role=None \"Random article\"\n[4] <a> role=None \"Log in\"",
"questions": {
"element": {"type": "choice", "instructions": "Which element should be acted on?",
"criteria": {"[0] <a> \"Main page\"": null, "[1] <input> \"Search Wikipedia\"": null,
"[2] <button> \"Search\"": null, "[3] <a> \"Random article\"": null,
"[4] <a> \"Log in\"": null}},
"operation": {"type": "choice", "instructions": "What operation should be performed on the target element?",
"criteria": {"CLICK": null, "TYPE": null, "SELECT": null}}}}'
Real response (bf16, L4): element [1] <input> "Search Wikipedia" at 0.90, operation TYPE at 0.91.
State format: Goal: line, optional Previous actions: with the last two actions as - [tag] text -> OP, then Candidate elements: with one [i] <tag> role=R "visible text" line per candidate (text cut at 60 characters). Option labels are [i] <tag> "text".
Built on Kev by Jared Palmer, whose model, trainer and server this uses unchanged. Trained on Mind2Web (Deng et al., 2023) and WebChain. The browser build follows the layout of onnx-community/kev-0.6b-ONNX so open-jev loads it.
Apache-2.0, like Kev and Qwen3. Training data: Mind2Web (CC BY 4.0, Deng et al. 2023) and WebChain (CC BY 4.0).
A tiny 0.6B Jev-like model, fine-tuned from Kev-0.6B for browser use.
Pick the next browser action with a 0.6B model. Give it a goal and the page's candidate elements; it returns which element to act on and whether to click, type or select, as probabilities. It never generates text.
32.2% step success on Mind2Web, the best of any open-weights model that runs in a browser, at 80 ms per decision.

| Model | Size | Step success | Element accuracy | Operation accuracy | Brier (lower is better) | p50 latency |
|---|---|---|---|---|---|---|
| Jev (TypeSafe, hosted API) | closed | 43.5 | 47.9 | 82.7 | 0.73 | network |
| Kev-9B | 9B | 32.5 | 38.7 | 78.7 | 0.76 | 428 ms |
| kev-0.6b-browser-use | 0.6B | 32.2 | 36.1 | 83.6 | 0.84 | 80 ms |
| SemIf, frozen Qwen3.5-4B | 4B | 30.0 | 38.4 | 75.2 | 0.85 | 289 ms |
| Bespoke Nimble-9B | 9B | 26.2 | 38.5 | 59.6 | 0.87 | 979 ms |
| decider-2B | 2B | 24.7 | 33.0 | 62.5 | 0.87 | 139 ms |
| Kev-0.6B (base) | 0.6B | 14.1 | 20.6 | 67.4 | 1.06 | 78 ms |
| NanoJev | 0.6B | 4.2 | 13.1 | 16.4 | 0.92 | 245 ms |
| Laya | 421M | 3.8 | 10.7 | 33.4 | 0.98 | 40 ms |
| Random | 3.6 | 10.5 | 35.5 | 0.94 |
1,000 steps from Mind2Web's test set, 10 candidate elements per step, same text and same candidates for every model. - Step success: the correct element and the correct action in the same step, the number that matters for an agent.
Full table, harness and per-model notes: github.com/arbazsiddiqui/kev-browser-use.
The 4-bit web build, kev-0.6b-browser-use-ONNX, runs on WebGPU with open-jev:
npm install open-jev @huggingface/transformers
import { OpenJev, choice } from "open-jev";
const kev = await OpenJev.load({ model: "arbazsiddiqui/kev-0.6b-browser-use-ONNX", dtype: "q4f16" });
const state = `Goal: Type "Alan Turing" into the search box
Candidate elements:
[0] <a> role=None "Main page"
[1] <input> role=searchbox "Search Wikipedia"
[2] <button> role=None "Search"`;
const { element, operation } = await kev.decide(state, {
element: choice("Which element should be acted on?", [
'[0] <a> "Main page"',
'[1] <input> "Search Wikipedia"',
'[2] <button> "Search"',
]),
operation: choice("What operation should be performed on the target element?", ["CLICK", "TYPE", "SELECT"]),
});
element.choice; // '[1] <input> "Search Wikipedia"', confidence 0.93
operation.choice; // "TYPE", confidence 0.74
This checkpoint is a LoRA adapter plus a pointer head in Kev's format, served by Kev's server.
git clone https://github.com/jaredpalmer/kev.git && cd kev && uv sync --extra serve
uv run --extra serve python -m kev.serve --run arbazsiddiqui/kev-0.6b-browser-use --port 8009
Ask it about a page. Use this exact text shape, it is what the model was trained on:
curl -s localhost:8009/v1/systemone -H 'content-type: application/json' -d '{
"model": "kev-latest",
"state": "Goal: Search Wikipedia for \"Alan Turing\"\nCandidate elements:\n[0] <a> role=None \"Main page\"\n[1] <input> role=searchbox \"Search Wikipedia\"\n[2] <button> role=None \"Search\"\n[3] <a> role=None \"Random article\"\n[4] <a> role=None \"Log in\"",
"questions": {
"element": {"type": "choice", "instructions": "Which element should be acted on?",
"criteria": {"[0] <a> \"Main page\"": null, "[1] <input> \"Search Wikipedia\"": null,
"[2] <button> \"Search\"": null, "[3] <a> \"Random article\"": null,
"[4] <a> \"Log in\"": null}},
"operation": {"type": "choice", "instructions": "What operation should be performed on the target element?",
"criteria": {"CLICK": null, "TYPE": null, "SELECT": null}}}}'
Real response (bf16, L4): element [1] <input> "Search Wikipedia" at 0.90, operation TYPE at 0.91.
State format: Goal: line, optional Previous actions: with the last two actions as - [tag] text -> OP, then Candidate elements: with one [i] <tag> role=R "visible text" line per candidate (text cut at 60 characters). Option labels are [i] <tag> "text".
Built on Kev by Jared Palmer, whose model, trainer and server this uses unchanged. Trained on Mind2Web (Deng et al., 2023) and WebChain. The browser build follows the layout of onnx-community/kev-0.6b-ONNX so open-jev loads it.
Apache-2.0, like Kev and Qwen3. Training data: Mind2Web (CC BY 4.0, Deng et al. 2023) and WebChain (CC BY 4.0).