Head to head · Browser automation · October 2026 research run

Puppeteer vs Steel

Puppeteer and Steel score within a point of each other on agent readiness, 70.6 (BB) and 70.4 (BB). Steel leads on schema & documentation, agent ergonomics and payments & pricing. Both do browser automation. Steel accepts x402. Puppeteer doesn't.

Best browser automation tools for AI agents · All 120 browser comparisons

Which one, for what

Puppeteer BB

Best for Agents that write and run Node.js scripts against Chrome or Firefox.

Ahead on

  • Reliability, 80 against 58
  • Maintenance & community, 89 against 82
  • Transparency & trust, 70 against 64

Also in its favour

  • No key needed to call it

Watch for

No MCP server, CLI or llms.txt of its own. The docs point agents to the separate chrome-devtools-mcp project

Steel BB

Best for Agents that need a real cloud browser with persistent profiles, stored logins, CAPTCHA solving and a human takeover path, and teams that want an open-source runtime they can also self-host.

Ahead on

  • Schema & documentation, 86 against 81
  • Agent ergonomics, 79 against 67
  • Payments & pricing, 75 against 60

Also in its favour

  • An agent can pay per call over x402, with no account
  • A hosted endpoint, with nothing to install
  • Runs on your own machine
  • Free to start without a card

Watch for

Three incidents of more than an hour hit the API or session creation in the 90 days to 8 October 2026, the longest 5 hours 41 minutes

Score by category

CategoryWeight this runPuppeteerSteelEdge
Reliability16%208058Puppeteer +22
Performance10%pendingpendingpendingnot scored in this run
Schema & documentation13%16.28186Steel +5
Agent ergonomics13%16.26779Steel +12
Security & auth14%17.55256Steel +4
Payments & pricing10%12.56075Steel +15
Task success10%pendingpendingpendingnot scored in this run
Maintenance & community7%8.88982Puppeteer +7
Transparency & trust7%8.87064Puppeteer +6
Negative events≤1500
TotalBB 70.6/100BB 70.4/100

Facts side by side

FactPuppeteerSteel
KindSDK + MCPHTTP API
VendorGoogleNen Labs, Inc.
Hosted endpointno (local only)https://api.steel.dev
TransportsHTTP, stdio
AuthNoneAPI key
PricingFreeFreemium
x402noyes, from $0.01/call
LicenceApache-2.0Proprietary cloud service under Steel's terms. steel-browser and the Node and Python SDKs are Apache-2.0. The MCP server and the CLI are MIT
Read-only variant documentednono
llms.txtnoyes
Last release2026-10-082026-10-02
Terms last updatedno document linked2025-02-05
Privacy policy last updatedno document linked2026-02-05
Customer content may train modelsnot found in the text
Terms restrict automated accessyes
Terms restrict benchmarkingyes
Terms or service can change without noticeyes
Arbitration or class-action waiveryes
Popularity96k stars, 11.5M npm/wk47k npm/wk, 63k PyPI/wk

Verdicts

Puppeteer

Puppeteer is a stable, Apache-2.0 library on 25.13.0, with ten releases since 27 July 2026, typed APIs, locators that wait and retry, and accessibility snapshots an agent can read. It has no MCP server or llms.txt of its own, and 10 of the 20 most recent CI runs on main failed between 7 and 13 October 2026.

Steel

The hosted API has a public OpenAPI document, per-unit prices, $30 of starting credit and x402 payment for scrape, screenshot and PDF calls. The status page records three API or session-creation incidents of more than an hour in 90 days, and the documented CDP connection puts the API key in the URL.

Before you call either

Puppeteer

  1. Install with npm i puppeteer, which downloads a matching Chrome for Testing. Use puppeteer-core to bring your own browser
  2. Prefer page.locator() over page.$(). Locators wait for the element to be visible and stable before acting
  3. Read pages with page.accessibility.snapshot({interestingOnly: true}) rather than full HTML to keep output short
  4. Catch TimeoutError separately from TargetCloseError. The first can be retried, the second needs a new page or browser
  5. Packages are ESM only since 25.0.0. Use import puppeteer from 'puppeteer' rather than require

Steel

  1. Use POST /v1/scrape for pages you only need to read. It starts no session and costs $5 per 1,000 calls, or $0.01 a call by x402
  2. Release every session with POST /v1/sessions/{id}/release and set inactivityTimeout. Browser time bills by the minute, rounded up
  3. Build the CDP URL as wss://connect.steel.dev?apiKey=<key>&sessionId=<id> and keep it out of logs, because it carries the key
  4. Launch sessions end after 15 minutes at most, and timeout cannot be changed on a live session
  5. CAPTCHA solving and Steel's managed proxies on Launch need $10 of paid balance. Free credit does not count

Questions

Which is better for AI agents, Puppeteer or Steel?

Puppeteer and Steel score within a point of each other on agent readiness, 70.6 (BB) and 70.4 (BB). Steel leads on schema & documentation, agent ergonomics and payments & pricing.

Can an agent call Puppeteer and Steel without installing anything?

No hosted endpoint is listed for Puppeteer. Steel has a hosted endpoint at https://api.steel.dev.

Are Puppeteer and Steel open source?

Yes. Puppeteer is open source (Apache-2.0). Steel is open source (Proprietary cloud service under Steel's terms. steel-browser and the Node and Python SDKs are Apache-2.0. The MCP server and the CLI are MIT).

Other comparisons with Puppeteer or Steel

Machine-readable

For companies

Do agents find, use and choose your tools?

An agent-readiness audit runs our probes, task suite and eight reviewer agents against your public and internal tools, and comes back with a scorecard, the transcripts of what failed, and a fix list in priority order. From $2,500, re-run included. We never take payment to move a rank. We do help companies earn one.