HunterAlphaHub
OpenRouter model reference Facts from the public catalogue, dated and labelled
Union Alpha revealed no live codename Verified
2026-09-18

Field notes · Jev

How people actually use Jev

Eleven repositories on GitHub build on TypeSafe's Jev. I read them, and the files most people don't open — docs/performance.md, the limits sections, a benchmark buried in a repository with no stars. I ran none of them. Everything below comes from what their authors wrote and measured, and where there is a number you can go and check it.

Field notes Read 2026-09-20 Eleven repositories What Jev is, and what it costs →

The pitch, and the sentence under it

The version going around is that Jev flips the browser-automation industry. The repository that started that — Browser Use's, eight and a half thousand stars — says something narrower, in its first paragraph:

"Give it one goal. TypeSafe's Jev picks an operation and an element. A small LLM writes text only when the operation is TYPE_TEXT."

Read that twice. Jev picks. It does not write, it does not plan, and it does not check its own work. Five projects in this list — written by people who have never met — draw that same line in the same place, and every one of them says it out loud. It is the difference between "a model that runs your agent" and a model you can actually put inside a loop.

Where everyone draws the same line

I did not go looking for this. I went looking for how each project uses the model, and kept hitting the same sentence in different words. It is the most consistent thing in the whole field.

ProjectWhat it says the model is responsible for
browser-use/jev-ultrafast A small LLM writes text only when the operation is `TYPE_TEXT`.
jkudish/jev-browser Code owns the loop: budgets, recovery, stop gates.
Nainish-Rai/jev-frontend-qa Jev is the action selector, not the test author or the correctness judge.
jiawei686/jev-ultrafast-mcp It never invents a target: it picks from what the page actually has, and the server refuses rather than guesses.
charleeagni/JevPiano Jev answers with option ids from the list the page offered, never a key name or a coordinate.

The piano project puts the sharpest version of it in a line about what the model is allowed to answer with: option ids from the list the page offered, never a key name or a coordinate. That is not modesty. A model that returns a coordinate can return a wrong coordinate, and you have no way to check it. A model that returns "option 7" can only be wrong about which of the things you offered it is right — and the executor can still refuse.

The seven seconds nobody earned

The demo everyone shared is a Google Flights search from Zürich to London that completes in about seven seconds. It is real — there is a video at 1× speed with continuous frames and the timing left in. What is missing from the coverage is what the same repository says about it two files later.

The claimWhat the file says
The shared demo, as the author measured it
9.450 s → 7.092 s, median of three alternating pairs
browser-use/jev-ultrafast · docs/performance.md
What the author says about that sample
“Three pairs are too few for a strong statistical claim (two-sided sign-test p = 0.25)”
same file
Where the speed actually came from
browser protocol calls 1,092 → 101
same file, “Where the time went”
The commit that produced the famous demo
“Reduce browser round trips and record a 7-second Flights demo”
upstream commit 452c1ad, pinned by jgridifier/jev-research-eval
Decision latency, as measured in two separate projects
median 178 ms (Browser Use) · ~431 ms API-only (dairui1/jev-lab)
docs/performance.md · dairui1/jev-lab README
Piano project's workaround for that latency
asks about a note ~500 ms before it is due, several requests in flight
charleeagni/JevPiano README
Cheapest observed cost for a real task
$0.0016 for a Wikipedia navigation, about four seconds
jkudish/jev-browser README
A whole day of MCP browser work
$0.01, with a screenshot of the billing dashboard
jiawei686/jev-ultrafast-mcp README

Put those rows together and the story changes shape. The matched comparison is a median of 9.450 s down to 7.092 s — a quarter faster, and the author writes out the sign test result himself: p = 0.25, three pairs, "not a broad agent benchmark". The number that moved hardest was not model latency at all. It was browser round trips, which fell from 1,092 to 101, because the new version reads the page in one call instead of walking the accessibility tree repeatedly. The commit where that landed is titled, in the author's own words, Reduce browser round trips and record a 7-second Flights demo.

This is not a takedown. A 25% end-to-end improvement on a real task is a good result, and publishing the p-value next to it is better practice than most research. It just means the headline number belongs to the DOM reader, not to the model.

178, 431, and a half-second head start

Two projects measured the same thing and got different answers, which is the useful part. Browser Use reports a median decision latency of 178 ms. A separate triage project measured roughly 431 ms per call, API only. Different inputs, different endpoints, no shared harness — so take the pair as a range, not a specification.

The piano project shows what that latency costs when the thing you are driving does not wait for you. It gives each hand its own model, and every 100 ms slice of the piece is a question: where does this hand sit, and which key is each finger on. The answer takes about 400 ms — four times slower than the slice. So it asks about each slice 500 ms before that slice is due, keeps several requests in flight, and applies the answer at the moment it was asked about rather than when it lands.

That is the most useful engineering note in the whole field, and it is in a repository with one star. If your loop needs a decision faster than the model returns one, you do not make the model faster — you ask earlier.

The loop every project in this list implements: read the page, build a numbered table of what can be acted on, ask one decision, execute it, then read again. The page nothing is sent to the model A numbered table [1] button · Change ticket type [2] combobox · Where from? …only what can be acted on One decision operation + option id 178–431 ms the operation executes · the page changes · read it again
Every project in this list is this loop. What changes between them is the middle box: clickable elements for a browser, reachable keys for a piano, legal moves for a board. Nothing observes the page but your own code, and nothing executes the choice but your own code either.

A cent a day, with a screenshot

Cost claims are usually the vaguest part of any AI project page. Two of these are not. The MCP server publishes an OpenRouter billing dashboard reading one cent for a day of work, and states plainly what that replaces: "one tool call instead of twenty, three seconds instead of a minute, a cent instead of a frontier model's context." The headless browser project reports $0.0016 for the Wikipedia navigation it uses as its own demo.

That fits the pricing we read from the catalogue: $0.042 per million input tokens and free output, which is what makes a per-step decision cheap enough to do on every element of every page. It also means the cache price matters more than the headline price here — if your harness re-sends the same instruction block on every step, the cached rate is the one that shows up on the bill. We publish those rates for every model in the directory, including this one, in the cached-pricing table.

Someone finally tested the calibration claim

The vendor's boldest claim is not speed, it is that the probabilities are calibrated — that 0.8 means roughly 80%. Almost nobody tests that, because it needs labelled data and patience. One repository does. It has zero stars.

The setup: 120 synthetic support tickets, three judgements each — department, urgency, frustration — run through the same workflow twice, once with Jev and once with a current small LLM.

TaskJevSmall LLM
urgency accuracy 91% 79%
frustration accuracy 79% 65%
department tie tie
latency, API only ~431 ms ~1536 ms
observed price ≈ $0.037 / M blended
"Jev's p(urgent) is well calibrated (bucket hit-rates 0 / 21 / 41 / 75 / 100%), so the workflow can route 0.35–0.65 to human_review instead of guessing."

The bucket hit-rates are the part that matters. Score buckets that actually land 0, 21, 41, 75 and 100 percent of the time mean you can write a rule that sends the uncertain middle to a human and lets the confident ends through — which is the thing you cannot do with a model that says "urgent" and nothing else. One caveat, from the repository itself: the tickets are synthetic and the labels were generated by a larger model, so this measures agreement with a model, not with reality.

Where it breaks

Limits sections are the least-read paragraphs on GitHub and the most useful. Quoted, because paraphrasing these would soften them:

ProjectIts own list of what does not work
browser-use/jev-ultrafast Canvas, uploads, new tabs, nested scrolling, and arbitrary keyboard widgets remain unsupported. A valid operation can still be wrong, and DONE is never independent evidence of success.
browser-use/jev-ultrafast This DOM reader supports common HTML and ARIA controls; it does not implement the full accessible-name algorithm or traverse shadow roots/frames.
jkudish/jev-browser This is early software. Expect rough edges on harder sites.
Nainish-Rai/jev-frontend-qa Exploration never implies a contract PASS.

"A valid operation can still be wrong, and DONE is never independent evidence of success" is the sentence I would put on the box. It is the author of the fastest implementation telling you not to trust its own success signal.

The fair objection

Not everyone is convinced, and the sceptical version is worth stating properly because it is partly right. The most-shared objection on the day I read these — from an AI commentator with a large following — was that X is full of flashy demos that "don't amount to much actual value when you look behind the scenes", and that the hard part is going from a demo to a loop you can depend on.

The evidence in this page splits the difference. On one side: three of the eleven repositories have no stars at all, one has no README, and the famous demo is a quarter faster, not a hundred times faster. On the other: people are pointing it at pianos and iOS simulators and QA harnesses within three days, several of them measured their work and published the failures, and the cost is low enough that trying it is not a decision you need a meeting about.

The honest summary is that the demos are real, the difficulty has moved rather than disappeared, and the part that moved is the part you would have had to write anyway: the table of things that can be acted on, and the rule that decides when you are finished.

We ran it, twenty times

Everything above is read from other people's files. This part is not. Our waitlist cleared on 2026-09-20, and the first thing worth doing with a key is the thing nobody does: send the same request over and over and see what moves.

One support ticket as the state, three questions in one call — a Noul, a Choice and a Score — and then 20 byte-identical repeats.

Signal Min Max Spread Std dev
Noul — P(urgency) 0.980 0.980 0.000 0.000
Score — frustration level 1.030 1.040 0.010 0.005
Choice — P(technical) 0.59 0.73 0.14 0.03
Choice — confidence 0.38 0.58 0.20 0.05

The Noul did not move at all. The Choice's label did not move either — technical, 20 times out of 20. What moved is the number next to it: the confidence ran from 0.38 to 0.58, which under TypeSafe's own three-band guidance — act, proceed with caution, do not act — is the difference between two different behaviours on an input nobody changed. A pipeline that gates on confidence, as the documentation tells you to, routes the same ticket two ways. The label it logs will be identical every time.

Our whole experiment — 20 calls, 420 input tokens each — cost $0.000353. Wall time from our machine was a median of 783 ms, which includes the network and is not comparable to the 70–500 ms the vendor quotes from their own machines. The full response body, and the one field their cookbook sends that the API rejected, are on the reference page.

We also cloned browser-use/jev-ultrafast and ran its own test suite, because that is the cheapest question anyone can ask about a repository and almost nobody reports the answer: 31 passed, in 0.44 s, via uv sync && uv run pytest -q. It is an offline suite, not a live run. What we did not run is the live browser agent — its harness daemon was not running here, and the live path wants a second API key we chose not to spend; every browser number on this page is still the author's, and still says so.

Source eleven public repositories, read 2026-09-20 Verified 2026-09-20 Star counts are a snapshot from that date, not a live countQuotes are verbatim and linked to the project they came fromNo project here was executed: every number is its author's, and the page says which file it is in

The eleven

RepositoryStarsWhat it is
jev-ultrafast
browser-use
8,457
The one that started it. Browser Use's own ultrafast agent.
Description is three words: “i. am. speed.”
jev-browser
jkudish
146
A headless browser driven through an MCP server, a CLI, or a library.
Missing from the obvious GitHub search — see the note above.
jev-ultrafast-mcp
jiawei686
4
An MCP server, so your existing agent hands the browser work off.
Ships a screenshot of an OpenRouter bill: one cent for a whole day.
jev-for-chrome
chy4pro
2
A Chrome extension that drives the tab you are looking at.
An explicit port of Browser Use's policy: same observation format, same questions, same execution rules.
jev-frontend-qa
Nainish-Rai
2
Frontend QA: contract runs and exploratory runs against a real browser.
The clearest statement of the model's boundary that I found anywhere.
jev-research-eval
jgridifier
2
An evaluation harness over someone else's research-browser session.
Not a fork: it pins one upstream commit and regenerates a report from it.
JevPiano
charleeagni
1
Two decision models, one per hand, playing a web piano in real time.
Hides the model's latency by asking about a note half a second before it is due.
jev-ultrafast
authrain-cloud-abdullahformuli
1
Another ultrafast browser agent, with dynamic indexed action spaces.
No README found at read time beyond the description.
jev-lab
dairui1
0
The only head-to-head measurement of Jev against an LLM that I could find.
Zero stars. It is the most useful repository in this list.
jev-ios-ultrafast
Clueless-Creations
0
Runs iOS Simulator goals with Jev, and replays the decisions.
Pushes the same pattern out of the browser entirely.
laya-jev-ultrafast
leisc
0
No description and no README at read time.
Listed for completeness: a search returns twelve, and not all twelve are projects.

Questions people actually ask

How do you actually use Jev?

You give it a state and a list of options, and it returns which option, with a probability. That is the whole interface. In every project I read, the options are numbered — a table of clickable elements on a page, the keys a hand can reach, the legal moves on a board — and the model answers with an index. It does not answer with a selector, a coordinate, or a key name, because it has no way to produce one.

Is Jev a browser agent?

No, and this is where most coverage goes wrong. Jev picks one action and one target per step. Something else has to build the element table, execute the click, detect that the page changed, and decide when to stop. Browser Use wrote both halves, which is why their repository looks like a browser agent. The model is one call inside it.

Can Jev replace my LLM?

Not on the evidence I read. Every project that needs text keeps a language model for exactly that: Browser Use keeps a small one for typing city names, and their README says so in the first paragraph. What Jev replaces is the per-step decision, which in a screenshot-driven agent is the slow part.

How fast is Jev in practice?

Faster than that, in two senses. Browser Use measured a median of 178 ms per decision; a separate triage project measured about 431 ms per call. Both are far below a frontier model's per-turn latency, and neither is instant — the piano project works around it by asking about a note about 500 ms before that note is due, keeping several requests in flight.

What does it cost to run?

The two cost claims I could check are tiny and both come with receipts. The MCP server project publishes a screenshot of an OpenRouter bill reading one cent for a full day of browser work. Another project reports $0.0016 for a Wikipedia navigation that took about four seconds. At those numbers the model is not the expensive part of your stack.

Do I need to be on a waitlist?

TypeSafe still runs an early-access waitlist. Jev is also served through OpenRouter as typesafe/jev-1.13 and listed in the Cloudflare Workers AI catalogue, and the projects above assume one of those two. Note that the model does not appear in OpenRouter's /api/v1/models list, so tooling that enumerates models will not see it.

Where to go next

Jev: the reference page

What the model is, what it costs per million tokens, the three question types, the cached rate, and the one thing we could not check because we have no key.

Cached pricing, every model

The input price nobody publishes, for the models we track — up to fifty times cheaper than the number on every other comparison site.

The Alpha line

The other way a model appears on OpenRouter: anonymous, free, and gone in days. Jev did not arrive that way, and the difference changes how you plan around it.

The project that started it → Jev reference Model directory