Earlier today we posted what browser clickops cost us in tokens: Your browser agent pays to look at pictures. That post compared calls on the same websites, not the same task. Readers asked for a same-task test, so we ran one.

Same task, both tools

Setup

  • Five read-only tasks: read a GitHub pull request page, count the Workers in the Cloudflare dashboard, read this blog's previous article, read our own homepage header, and read a Wikipedia article.
  • Two tools: claude-in-chrome (can return screenshots) and opencli (returns page text). Both drive the same logged-in Chrome.
  • Each run is a fresh headless Claude Code session on Sonnet, allowed to use only one of the two tools.
  • Three runs per task per tool, 30 runs in total. The order alternated between tools so prompt-cache warmth would not favor one side.
  • Cost and tokens are the billed usage the API reported for each run.

Results

claude-in-chrome opencli Change
Billed cost, 15 runs $3.13 $1.19 −62%
Tokens, 15 runs 5.02M 2.91M −42%
Median turns per run 9 4 −56%
Median time per run 83 s 38 s −54%

Median tokens per run, by task:

Task claude-in-chrome opencli Change
GitHub pull request 213k 193k −9%
Cloudflare Workers list 517k 267k −48%
dev.to article 335k 126k −62%
Our homepage header 289k 128k −56%
Wikipedia article 285k 127k −55%

Accuracy

Both tools got the GitHub and Wikipedia answers right in all three runs. The Cloudflare Worker count came back between 172 and 179 from both tools, because the list mixes Workers and Pages projects. On the dev.to task, claude-in-chrome missed the reading-time label once and opencli missed it twice. One of opencli's misses ended early and cost $0.015, which flatters its number on that task. Without the dev.to task, opencli still cost 61% less.

What we take from it

  • The gap is small on text-heavy pages like a GitHub pull request, where text and screenshots cost about the same.
  • The gap is large wherever the model reaches for screenshots to find its way around.
  • Every run carries about 95–120k tokens of session startup in both arms, so the difference in the browsing itself is larger than 42%.

Limits

Three runs per task is a small sample. We did not test a page where the data lives in a chart. A text read should do fine when a chart's numbers are in the page's HTML and badly when they are only drawn on a canvas. That is the next task we will add.