← back

Benchmarks

One agent drove three local, no-API-key browser tools through the same tasks. We counted the tokens each tool fed back into the model’s context and the wall-clock seconds each took. One shared tokenizer, identical logical steps, blocked runs recorded honestly. Shorter bar wins.

iframer (MCP)iframer (CLI)agent-browserPlaywright MCP

Easy tasks

One known page, a few steps. Everyone does fine, the gap is small.

Fill a form

10 fields, submit, confirm

tokens
757
819
940
1,513
seconds
3.5
2.0
2.7
2.7

Read 2 wiki articles

Everest + Gojo, capped reads

tokens
1,088
1,157
1,149
1,288
seconds
0.9
0.9
1.7
3.8

Extract a list

Hacker News top 10

tokens
453
542
615
681
seconds
1.1
0.3
2.1
2.5

Redo the form

fresh session, memory test

tokens
594
625
940
1,513
seconds
1.9
1.9
2.7
2.7

Hard tasks

Many pages, real finding-your-way. This is where the tools stop being similar.

Wiki link chase

Everest → Gojo, 6 hops, find each link

tokens
517
721
913
1,405
seconds
2.0
3.8
2.9
7.4

Store purchase

login → sort → cart → checkout

tokens
552
697
851
2,739
seconds
2.2
2.3
3.0
7.0

Heavy-page recon

GitHub: look + pull 4 facts

tokens
986
1,058
8,433
19,906
seconds
5.0
5.2
4.7
5.2

The whole run, added up

All 7 tasks. Token totals include the one-time setup cost each tool preloads per chat.

💬 total tokens

iframer (MCP)
10,079
iframer (CLI)
5,619
agent-browser
13,845
Playwright MCP
33,089

⏱ total seconds

iframer (MCP)
16.6s
iframer (CLI)
16.4s
agent-browser
20.0s
Playwright MCP
31.2s

The two iframer modes bracket everything: the schema-free CLI spends the fewest total tokens, and, now that it routes to a warm shared daemon instead of a cold browser per call, runs as fast as the MCP (16.4s vs 16.6s).

Worst-case stress test

We rigged the tasks so iframer would guess wrong three times and have to look twice, then gave Playwright the same job on its normal path. Even sabotaged, iframer’s worst day costs less than Playwright’s best. Tokens only.

GitHub

2,425
13,486

Wikipedia article

2,261
238,551

Craigslist

1,538
11,342

Setup cost: once per chat

Connecting an MCP tool preloads its instructions into the conversation. Paid once per chat, not per call, and even if you never browse. This is iframer’s one weak spot on short sessions; the CLI preloads nothing.

iframer (MCP)
5,132
iframer (CLI)
0
agent-browser
0
Playwright MCP
4,024

How it was measured

  • Same agent drove all tools through identical logical steps. Each tool used its native idiom: refs from its own snapshot, CSS, or @e refs.
  • Tokens counted from the real returned payloads with one shared tokenizer (o200k_base), a consistent proxy for Claude's tokenizer, so relative comparison holds.
  • Ring = local, no-API-key tools only: iframer, agent-browser (vercel-labs), Playwright MCP (microsoft). browser-use and friends are out, they run their own paid model loop.
  • CLI times are steady-state with a warm daemon; the first call of a session still pays a ~1-2s browser spawn. Times are single runs on a home connection, treat as rough.
  • A tool that got blocked or needed headful was recorded as a real result, not hidden.

iframer 0.10.3 · agent-browser 0.35.1 · Playwright MCP 0.0.79 · one shared tokenizer · single runs, treat as rough · 2026