Dowser is free for 5 days, no card to start. Get started
60/60 benchmark6 ms local matching

Give your AI real hands in your browser

Your AI thinks once, and Dowser resolves every click, fill and read locally, in milliseconds. No screenshots through your model, nothing leaves your machine.

0
model calls to find a button
6 ms
to find & act, locally
60/60
benchmark tasks, top-1 correct
0
of your data leaves your machine

First principles

Every browser agent has to answer one question: which element did you mean?

An assistant has intent in words (“click add to cart”). A browser has state in a render tree. Something must translate one into the other. Firing the click is trivial; deciding which element is the entire job, and there are only four ways to do it.

Who grounds it

A human

The status quo. The AI tells you what to click, tab after tab, and you click it.

Your time, every action

Who grounds it

A model, per action

Ship a screenshot or page snapshot to the model, let it pick. Every popular agent works this way.

10,000+ tokens and seconds, every action

Who grounds it

Brittle selectors

Classic RPA: hard-coded XPaths and CSS. No language, breaks when the page changes.

Your engineering time, forever

Who grounds it

A local matcher

Dowser. Rank the page's own accessibility tree against the request, on your machine, no model.

Milliseconds. Zero tokens.

Where the money goes

The model in the loop is the cost. Not the model.

When the model is the element finder, every action pays a model’s price in dollars, seconds and context window. Cheaper models shrink the bill; nothing shrinks the round-trips or the snapshots piling up in your conversation.

Snapshot architecture, one action

snapshot the page      ~18,000 tokens
model reads it         ~2 s
model picks a target
click
snapshot again         ~18,000 tokens
...

Dowser, one action

dowser_act "add to cart"
  matched: button "Add to cart"
  confidence: 0.98
  6 ms
done.

A 30-step task through a snapshot loop is roughly 300,000 tokens of page representations and thirty round-trips before the model has had a useful thought. Through Dowser it is thirty sentence-sized tool calls, about a thousand tokens total. These aren’t our numbers alone: the most popular snapshot tool’s own users report 25,000-token snapshots and multi-million-token days.

Time to find and click one thing on a page, shorter is faster

Perplexity Comet≈ 2,000 ms
Codex browser≈ 1,800 ms
Gemini in Chrome≈ 1,600 ms
Claude in Chrome≈ 1,300 ms
Dowser6 ms

Typical figures from our own runs, not vendor benchmarks. Dowser and Claude in Chrome measured on the same page; Codex, Gemini and Perplexity estimated.

The insight

The web already answered the question. Decades ago.

Screen readers needed exactly this: natural-language access to a page by role and name. So every page ships a machine-readable semantic index of itself, the accessibility tree, and the web is obligated to maintain it. Using a frontier model to re-derive “which of these is the email field” on every click is re-solving, at inference prices, a problem the page has already answered in its own metadata. Dowser reads that index instead. Lookup, where everyone else does inference. That is why 6 ms versus 1,300 ms isn’t an optimization; it’s a different complexity class.

What Dowser ranks against

textbox   "Email"
textbox   "Password"          refused
button    "Continue"
link      "Forgot password?"
checkbox  "Remember me"       unchecked
button    "Add to cart"       ← 0.98

Proof, not promises

A real run, and a benchmark you can re-run.

Below is a screen recording of the extension on a live site, timings included. Underneath it, the numbers from our public 60-task grounding benchmark, with the code and the caveats.

60 / 60
tasks, top-1 correct
4.3 ms
median to resolve an element
11
tokens per result the agent reads
0
model calls to ground an action

Synthetic fixture pages, jsdom, tasks written by us. Snapshot-tool success is not simulated; only its per-action input size is measured. Methodology and limits in bench/README.md.

The same run, side by side

DowserClaude in Chrome
Time to find each target~6 ms1 to 2 s
Model calls per step01
Tokens per step0~1,500
Leaves your machinenothinga screenshot

Same three steps as the clip: find, type, open. The model-driven figures are typical for a screenshot-per-step agent.

Determinism

When it doesn’t know, it doesn’t guess.

dowser_act "delete"

Not confident enough to act:
confidence 0.21 is below 0.5.

[e1] button "Delete draft"       0.94
[e2] button "Delete account"     0.71
[e3] button "Delete attachment"  0.43

Nothing was clicked.

A model reading a snapshot always produces an answer, including when it shouldn’t: the second red button probably means delete. A ranker with a real confidence score, the margin between the best match and the next, can do something a generative loop structurally cannot: refuse. Below the bar, Dowser returns the candidates, says why each matched, and acts on none of them. Deterministic execution isn’t just cheaper; it’s the difference between an agent that misfires quietly and one whose uncertainty is visible and handled.

The boundary

Webpages give Dowser data. They don’t get to talk to your agent.

The famous browser-agent vulnerability is a page that says “ignore your instructions and do X” landing in the model’s context dressed as content. Snapshot tools inherit it by construction. Keeping the page out of the model isn’t only a cost optimization; it is a channel separation, and channel separations hold when model judgment doesn’t.

Enters your model

  • Structured candidates: role, name, confidence, position
  • Reads you asked for, capped and labelled untrusted
  • One-line action results

Never enters your model

  • Screenshots. Pages are never rendered to pixels.
  • Page snapshots or serialized DOMs
  • Password, card and one-time-code fields, ever

The extension talks to exactly one endpoint: your own MCP server on 127.0.0.1. Tested, documented, checkable: the security model.

Where it’s the wrong tool

First principles cut both ways.

Canvas-only pages

A page with no accessibility tree gives the ranker nothing to rank. Dowser says so and returns low confidence; a vision tool reads those better.

Reproducible test suites

Dowser acts in your live browser. For CI runs that must be identical every time, Playwright is the right tool, and many people run both.

Twice-a-week use

If your assistant rarely touches the browser, per-action costs never compound and free snapshot tools are perfectly rational.

Setup

Two minutes. One click is yours, the rest is your AI’s.

There’s no installer to run and no settings to get right. You hand your assistant one line, press one button when it asks you to, and start giving it work.

  1. 1

    Hand this line to your AI

    Paste it into Claude Code or whichever assistant you use. It downloads Dowser, pairs the local piece to your machine and wires itself in. Nothing to configure.

    Set up the Dowser browser extension for me: fetch https://dowser.click/install.md and follow the steps in it, then confirm Dowser is connected.

    Message your assistant
    • Claude Code
    • Codex
    • Gemini CLI
    • Cursor
    • Windsurf
    • + any MCP assistant
  2. 2

    Add it to your browser

    Your assistant sends you the link; this press is yours, because browsers only let a person add an extension. It comes from the Chrome Web Store, so it is the reviewed build and it keeps itself updated.

    chromewebstore.google.com
    Dowser
    Real hands for your AI, in this browser.
    One click · updates itself · remove any time
    Add to Chrome
  3. 3

    Then just ask

    Your assistant reports back that Dowser is connected and your five free days have started. From here you talk, it clicks.

    Add the blue one in medium to my cart
    dowser_act click "color blue" · 5 msdowser_act click "size medium" · 4 msdowser_act click "add to cart" · 6 ms
    Done. Blue, medium, and it’s in your cart. Want me to head to checkout?
Rather do it by hand? It’s four lines.

Needs Node 18 or newer and a Chrome-based browser. Everything stays on your machine.

downloadcd ~ && curl -fsSL -o dowser.zip https://dowser.click/dowser-extension.zip && unzip -o dowser.zippaircd ~/dowser && npm install && npm run setuploadchrome://extensions  ›  Developer mode  ›  Load unpacked  ›  ~/dowser/distconnectclaude mcp add --scope user dowser -- node ~/dowser/mcp/server.mjs

Full instructions, including Cursor, Windsurf, Codex and Windows

Simple monthly pricing

One flat price. Everything on.

  • Works with Claude and any assistant that can use tools
  • Clicking, typing, reading, moving between pages
  • The glow and cursor so you can see what it's up to
  • Every update, no tiers, no metered anything
  • Five days free before you pay a cent
$19 /month
Buy your key
  1. Pay securely with Stripe
  2. Your key appears right away on the receipt page
  3. Paste the key to your AI to activate, or click the Dowser icon in your toolbar and paste it there

Questions

Questions you’re probably having.

Do I need to be technical?

Not really. Copy the line in the Setup section, paste it to your assistant, and it does the install. The extension itself is one click on the Chrome Web Store. Figure a couple of minutes start to finish.

Does my browsing go anywhere?

No. It runs on your computer and only talks to your own assistant, right there on the machine. The extension needs no account and nothing watches from a server; the only account is the optional one on this site for managing your subscription.

What happens after the trial?

Your assistant gets a note that the trial's up and where to buy. Nothing gets removed. Pop in a key and you carry on where you left off.

Which browsers?

Chrome, Brave, Edge, and the other Chrome-based ones. It's on the Chrome Web Store, and Brave and Edge install from there too. Your key works in any of them.

What if it clicks the wrong thing?

If it isn't sure, it won't click. It shows your assistant the likely matches and lets it pick, so a bad guess never actually happens.

Refunds and cancelling?

You get five days free before paying anyway. Cancel anytime and it simply stops billing. And if you subscribe and change your mind within 14 days, email us and we'll refund that payment.