A recording, not a live browser

Watch the same task run on Reflex and on Playwright MCP.

Pick one of three measured tasks and hit run. Both columns replay a real agent run from 2026-07-22, call by call, with the round trips and the tokens into context counting up as they landed. Nothing installs, nothing runs on our servers, and every number traces back to the published benchmark.

Pick a measured task, then run it.

A recording, not a live browser. Paced to the measured clock, compressed 9.6x.

Playwright MCP

@playwright/mcp 0.0.78
  1. press run to replay the measured calls
round trips
0/11
tokens into context
0

0.0s of 62.7s measured

Reflex

reflex-browser 0.7.2
  1. press run to replay the measured calls
round trips
0/2
tokens into context
0

0.0s of 28.1s measured

Same task, same agent, same machine, both driving a real local Chrome. Reflex finished it in 2 calls, Playwright MCP in 11. Run it to watch the token counters.

Replay of a single measured run per side, 2026-07-22, reflex-browser 0.7.2 against @playwright/mcp 0.0.78, driven by Claude Fable 5 on live public sites. Flow D1_demoblaze_checkout, task: Add a product to the cart, open the cart, fill the order form, and complete the purchase (about ten actions). Nothing runs on our servers: your browser plays back recorded numbers, and after you install, the browser runs on your machine and only on your machine.

What is measured and what is paced: the call counts, failed calls, end to end seconds and total tokens are the recorded values. A +Nbeside a call is that call's own recorded payload, and it appears only where the report records one; the rest of each side's measured total is spread across its remaining calls so the counter is paced and lands exactly on the recorded total. Calls are spaced evenly across each side's measured clock, since per-call timings were not recorded, and the call labels reconstruct the run's shape from the report's notes.

From the report on this flow. Playwright MCP: Every navigate and click returns a file path only, so each one is paired with a browser_snapshot. browser_fill_form batched six fills into one call. The plugin's persistent browser carried a stale cart into this run, which we disclosed in the report.

This Playwright build spills any snapshot over the client's token cap to a file and returns an error line instead. A pure MCP client (Claude Desktop, no filesystem) cannot read that file, so we counted only the context actually received. That undercounts Playwright: a client without a cap pays for those trees in full (they run 58,000 to 86,000 characters each).

The three tasks above are not the whole run.

The benchmark covered six flows, and the replay features the three where the report records the per-call payloads. Here is all six, including the one where Playwright MCP used fewer tokens than Reflex and the two where both tools had a rough time. A benchmark that only shows wins is an ad.

All six measured flows: tool calls, tokens into context and end to end seconds for Reflex and Playwright MCP.
FlowCallsTokensEnd to endFailed calls
DemoBlaze checkoutin the replay2vs11650vs4,58628.1svs62.7s0vs0
Tailwind install wizardin the replay3vs134,830vs47,81560.7svs84.2s0vs3
Can I use, two features7vs157,836vs19,15087.7svs155.2s2vs5
GitHub issues filter4vs95,152vs12,12059.4svs105.0s2vs2
Wikipedia revision history4vs713,683vs2,42550.0svs71.7s0vs1
BBC News top storyin the replay2vs63,986vs7,97522.9svs50.5s0vs2
All six22vs6136,137vs94,071308.8svs529.3s4vs13

Green is Reflex, amber is Playwright MCP. Totals across the six flows: 2.77x fewer round trips, 2.60x less context, 1.71x faster end to end. The round-trip ratio is the clean one. Tokens are counted as the client actually received them, so 2.60x undercounts what Playwright would cost a client with no token cap: the snapshots that spilled to a file never entered context here, and on the Wikipedia flow its agent dodged a 593,622 character snapshot with scoped CSS selectors.

Can I use, two features

Reflex's roughest flow: two waits timed out on shadow DOM and each cost a full re-read. Playwright's search results snapshot blew the client token cap twice.

GitHub issues filter

Both tools struggled with GitHub's React issues UI, where the filter input has no accessible name.

Wikipedia revision history

Playwright used fewer tokens than Reflex here. Its agent dodged the 593,622 character article snapshot with scoped CSS selectors, which is DOM knowledge a pure accessibility-ref client does not have, and it still took 7 turns to Reflex's 4. Reflex's agent re-read the whole 20K article for one sentence.

Single runs on live public sites, one fresh agent per flow and per tool, 2026-07-22. A real LLM agent drove each MCP in the loop until the task was done, one fresh agent per flow and per tool, identical task text on both sides. Turns are browser tool calls. Tokens are characters into context divided by 4. Wall clock is the whole agent run, including model read and think time, not tool latency. Full methodology, the wider field, and the places Reflex loses are on the benchmarks page. Ready to try it on your own pages? The install guide takes about two minutes and a fresh install comes with 25 free calls, no account and no card.

Ready when you are

Same browser tasks. ~13K tokens, not ~56K.

Installed in 2 minutes. Your pages stay yours. Or install first and skip the account.