Skip to content
MrJev

fastbrowse

Browser agent that indexes the page into candidates for Jev to pick from, leaves planning and reading to an LLM, and cites a quote from the page for every claim.

View on GitHub →

Hands-on review

Jev picks each action from what is on the page, an LLM reads, and every claim in the answer carries a verbatim quote with a hash of the capture.

Good for

  • Browser answers you can check: every claim cites a quote, a URL and a capture hash
  • Actions picked from indexed page elements rather than generated from a screenshot
  • Pausing by default before submit, pay, delete and send

Watch out for

  • Three parties by default: Jev, OpenRouter, and a cloud browser
  • Pages are fetched by Browser Use Cloud unless you pass `--local`
  • Page text and your task go to every one of them

Tested Sep 22, 2026 at ce08a6c8f362 · Python 3.13 in Docker with Chromium, against a local site we wrote; real Jev and OpenRouter calls

How we reviewed this: we built it in Docker on Python 3.13 with Chromium and ran it against a small site we wrote and served locally, with real Jev and OpenRouter keys. We did not point it at anyone else’s website. We don’t publish our own measurements of Jev’s speed or cost.

What it does

fastbrowse is a browser agent built on a division of labour: the page is indexed into candidate elements, Jev picks which one to act on, an LLM reads and plans, and code owns verification, safety and secrets. The pitch is that a model which picks cannot click something that is not there.

On our three-page site, asked what a plan costs:

0  click Pricing -> executed
1  read -> executed
complete (2 steps)
The Workshop plan costs 49 dollars a month.

Two steps, correct answer. The interesting part is what --json returns with it.

Every claim carries a receipt

"evidence": [{
  "url": "http://127.0.0.1:8931/pricing.html",
  "captured_at": "2026-09-21T07:58:44Z",
  "capture_sha256": "d83e4b09cb1ac97786de750de0120ea93123ebb9e387fdd0f3392a0cce2495cb",
  "start": 9, "end": 104,
  "quote": "| Plan | Price |\n| --- | --- |\n| Starter | 19 dollars a month |\n| Workshop | 49 dollars a month"
}]

The README says “every claim in an answer cites a verbatim quote from the page”. It does, and it goes further than the sentence promises: the quote comes with the URL, the capture time, character offsets into that capture, and a SHA-256 of the capture it was taken from. You can check the claim without trusting the agent, and you can tell later whether the page you are looking at is the page it read.

We have reviewed a lot of browser agents. This is the first whose answer we could audit without re-running it.

Safety defaults

The flags say a lot about the design:

  • --authorize — “allow submit/pay/delete/send without pausing”, which means it pauses before those by default.
  • --max-dollars — a spend cap on the run.
  • --secret NAME=ENV_VAR and --bitwarden ITEM — credentials typed from the environment or a vault rather than pasted into the task.
  • --profile — a Chrome profile kept between runs, separate from your everyday browser unless you point it at one.

A complete status is defined in the README as “every information requirement is backed by a quote, and every action is confirmed on the page” — a definition of done that rules out the most common browser-agent failure, which is a confident summary of a page that was never loaded.

What to know

Three parties, since 0.5.2. TYPESAFE_API_KEY (or the Vercel gateway) for the picks, OPENROUTER_API_KEY for the reading and planning, and — as of a breaking change on 21 September — a Browser Use Cloud browser by default, which is the thing that actually fetches the pages. Without BROWSER_USE_API_KEY the run stops before it starts:

$ fastbrowse "what is on this page" --start http://127.0.0.1:1/
fastbrowse: set BROWSER_USE_API_KEY for a cloud browser

--local puts Chrome back on your own machine. The README explains the default — a cloud browser passes bot checks a fresh local Chrome fails, and prints a URL to watch the run live — and that is a fair trade for a browsing agent, but it changes the answer to “what leaves your machine” from two services to three, and the third one sees every page. Our own run in this review was local; the evidence block above is from Chrome in a container against a site we served ourselves.

The documented dev flow used to leave pytest broken. uv sync then uv run pytest failed at collection on ModuleNotFoundError: No module named 'mcp' — an optional extra, imported unguarded by a test, absent from the dev group. Their CI was already right. Reported, and the README now says uv sync --all-extras in both places it describes the flow, with a comment saying what the extras carry. At d081b5f that line gives 598 passed, 133 skipped; the old one still fails, but nothing tells you to type it any more.

Chrome in a container needs the usual namespace permissions; our first two attempts died in Chrome’s sandbox before fastbrowse saw anything. That is Docker, not the project, but budget for it if you plan to run this in CI.

Maintenance

Created 17 September, MIT, from Agent Labs, and moving at a rate that makes any pinned reference stale within a day: 0.4.2 when we first ran it, 0.5.2 twenty-six hours later, with a cloud-browser default, a provider-outage rework and a prompt audit in between. CI green. The NOTICE file credits the three Browser Use projects it adapts code from, naming the files that port them — the most careful attribution we have seen in this directory, and a contrast with several projects that quietly carry the same lineage.

Verdict

The best-behaved browser agent we have run. The action model cannot invent a click, the answer cannot dodge a citation, and the dangerous verbs pause unless you say otherwise. If you need a browser agent to produce something a person will act on, the evidence block is the feature to care about.

Expect to pay two providers and a browser host, pass --local if the pages matter to you, and read the --authorize flag twice before you use it.

For the fastest possible version of the same loop see jev-ultrafast, whose page handling this adapts; for a Manifest V3 port that drives the tab you are looking at, Jev for Chrome.

See how it compares with other tools in Best Jev tools, tested hands-on.

Review updated Sep 22, 2026. Numbers quoted from the project are its author's own; we don't publish our own measurements of Jev.

More in Browser & Computer Use

jev-ultrafast

★ 24k▲ 400

browser-use/jev-ultrafast

Fast browser agent from Browser Use. Jev decides each step and which element to act on; a small model is called only when text needs to be typed. The authors report a full Google Flights search in about 7.1 seconds.

PythonReviewed

agent-desktop

★ 8.5k▲ 6.6k

vercel-labs/agent-desktop

macOS desktop automation over accessibility trees. Since v0.9.2, its jev-desktop scripts let Jev choose which control to operate and which action to take.

RustReviewed

typesafe-computer-use

★ 1.3k▲ 16

awlevin/typesafe-computer-use

macOS computer use without sending screenshots to a large model. The screen is read deterministically and Jev picks the next action.

PythonReviewed

Get new Jev projects every week

New Jev releases, pricing changes, and the best new projects, once a week. No spam; unsubscribe anytime.

Powered by Buttondown. See our privacy policy.