Dev & Engineering browser-automationchrome-devtools-protocolplaywrightpuppeteerseleniumweb-scrapingscreenshot-generationpdf-generation

Steel Browser

A self-hostable browser API for stateful web automation and on-demand page outputs.

FollowAgents review · FARS-2.1
Not recommended
29/ 100 5-point scale 1.5 / 5
1 2 3 4 5 6
Per-dimension scores and reasoning
1Trust0 / 29 · 0.0/5

Evidence: The repository provides no documentation on permission model, user confirmation, data flow transparency, sensitive data handling, dependency security, external effects control, rollback, or source attribution. README mentions proxy support and anti-detection but does not clarify permission boundaries or data usage. Hence all trust criteria score 0.

2Reliability3 / 14 · 1.1/5

Evidence: README and package.json are consistent, but error handling documentation is missing. Dependencies are pinned in package.json but no lockfile or integrity checks are provided. Thus self_consistency scores 1, dependency_availability scores 1, failure_messages scores 0.

3Adaptability8 / 18 · 2.2/5

Evidence: README clearly targets AI agent developers, provides multiple deployment options (Docker, Railway, Render) and local run instructions, indicating good environment fit. However, capability boundaries (e.g., supported browser versions, limitations) are not specified, and trigger conditions (e.g., API invocation) are not defined. Hence audience_and_scenarios scores 2, capability_boundaries scores 1, trigger_precision scores 0, environment_fit scores 2.

4Convention9 / 18 · 2.5/5

Evidence: README is well-structured, provides installation instructions, examples, and license. However, changelog, version history, detailed known limitations, and maintenance responsibility are missing. Thus information_architecture scores 2, install_notes scores 2, naming_stability scores 1, examples_and_faq scores 2, known_limitations scores 1, license scores 2, versioning_changelog scores 1, maintenance_responsibility scores 1.

5Effectiveness7 / 13 · 2.7/5

Evidence: README provides multiple output formats (HTML, screenshot, PDF) and SDK support, indicating high output usability. Marginal value is clear (provides full browser API). However, cost-benefit is not quantified; no performance or resource consumption data. Hence output_usability scores 2, marginal_value scores 2, cost_benefit scores 1.

6Verifiability2 / 8 · 1.3/5

Evidence: Claims in README (e.g., support for Puppeteer, Playwright) are not backed by code or test evidence, making traceability low. No independent source verification. Facts and inferences are not clearly separated. Thus claim_traceability scores 1, cross_source_corroboration scores 0, fact_inference_separation scores 1.

Evidence confidence: Low Reviewed Aug 09, 2026 Reviewed revision 5880b48c1af1
The upstream repository has new commits since this review. The score still applies to the reviewed revision shown and may not cover the latest changes.
Safety controls not found in source: least-privilege scoping, confirmation before acting, data-flow disclosure, sensitive-data handling, dependency security, disclosed external effects, rollback or recovery path, verifiable attribution
Before you use it
  • No permission model or user confirmation mechanism is provided; caution when using proxy and anti-detection features.
  • Dependencies lack lockfiles, posing supply chain risks.
  • Error handling documentation is missing, making troubleshooting difficult.
  • Capability boundaries are not defined, potentially leading to unintended usage.
  • No changelog provided, version upgrades may be opaque.
Review evidence [1][2][3][4][5]
See the full review method →

What does this agent do, and when should you use it?

Steel Browser is an open-source browser API for AI applications and web automation tools that need to interact with live websites. It runs as a service that manages Chrome processes, pages, and browser session state behind a REST API. Stateful workflows create a session through /sessions and connect to it with Puppeteer, Playwright, or Selenium. Read-only jobs can call /scrape, /screenshot, or /pdf to obtain page HTML, an image, or a PDF. It can run from a prebuilt Docker image, Docker Compose, or directly with Node.js, with the API and UI served on port 3000.

A client creates a browser through POST /v1/sessions, supplying fields such as blockAds, proxyUrl, dimensions, or isSelenium. The resulting session maintains browser state, cookies, and local storage; a client then uses the session ID or root URL to drive it with Puppeteer, Playwright, or Selenium. For stateless work, POST /v1/scrape accepts a url and optional delay to extract page HTML, POST /v1/screenshot accepts a url and fullPage to produce a screenshot, and POST /v1/pdf accepts a url to return a page PDF. The README also documents proxy-chain management, custom Chrome extensions, request logging, a session debugging UI, stealth plugins, fingerprint management, and automatic browser cleanup.

  1. An AI application developer who needs a research workflow to retain sign-in state, cookies, or local storage can create a /sessions session and continue it with Playwright.
  2. A team with Puppeteer automation that wants browser-instance management handled by a separate service can connect to Steel-created sessions.
  3. A team maintaining Selenium WebDriver workflows can create an isSelenium session, after evaluating the documented feature limitations.
  4. A backend service that needs on-demand HTML from a webpage can call /v1/scrape and set delay when needed.
  5. A reporting or archival tool that needs a full-page image or page PDF can call /v1/screenshot or /v1/pdf.

What are this agent's strengths and limitations?

Pros
  • It centralizes browser-process, page, and session-lifecycle management in a service rather than requiring every client to manage it.
  • The same managed-session approach supports Puppeteer, Playwright, and Selenium clients.
  • It offers both stateful browser sessions and direct read-only endpoints for scraping, screenshots, and PDFs.
  • Documented operational features include proxy chains, custom extensions, request logging, a session debugging UI, and automatic resource cleanup.
Limitations
  • The project is explicitly described as being in public beta and evolving.
  • Direct Node.js operation requires an installed Chrome executable at a supported path or through CHROME_EXECUTABLE_PATH.
  • The Selenium integration explicitly does not support all CDP-based browser-session API features.
  • The README does not document API authentication configuration, Steel Cloud pricing, or self-hosted resource requirements.

How do you install or deploy this agent?

The quickest local start is:

docker run -p 3000:3000 -p 9223:9223 ghcr.io/steel-dev/steel-browser

The server runs at http://localhost:3000, the UI is at http://localhost:3000/ui, and 9223 is for the console debugger. Docker Compose is also supported with docker compose up; on Apple Silicon, use DOCKER_DEFAULT_PLATFORM=linux/arm64 docker compose up. For direct Node.js development, install Node.js and Chrome, then run npm install followed by npm run dev. Chrome must be at one of the documented system paths or supplied through CHROME_EXECUTABLE_PATH.

How do you use this agent?

After starting the server, create a session:

curl -X POST http://localhost:3000/v1/sessions -H "Content-Type: application/json" -d '{"blockAds":true,"dimensions":{"width":1280,"height":800}}'

Use the returned session ID or root URL with Puppeteer, Playwright, or Selenium. For a one-off scrape, run:

curl -X POST http://0.0.0.0:3000/v1/scrape -H "Content-Type: application/json" -d '{"url":"https://example.com","delay":1000}'

When targeting a hosted or self-hosted instance, set its address with baseURL in the Node SDK or base_url in the Python SDK. The README does not specify API authentication setup or Steel Cloud credential configuration.

How does this agent compare with similar options?

Steel is not presented as a replacement for Puppeteer, Playwright, or Selenium clients: it supplies managed browser sessions that those tools can connect to. For single read-only tasks, its Quick Actions API can be used without establishing a client automation connection.

FAQ

Is Steel Cloud required?
No. The README documents a prebuilt Docker image, Docker Compose, and direct Node.js execution; Steel Cloud is described as the easiest starting option.
Can an existing Playwright, Puppeteer, or Selenium workflow be retained?
Yes. Sessions can be connected through Puppeteer or Playwright, and isSelenium creates a Selenium session. The Selenium integration does not support all CDP-based session API features.
Do one-off extraction tasks need a browser session?
Not necessarily. /v1/scrape, /v1/screenshot, and /v1/pdf are intended for simple, read-only, on-demand jobs.
What is required for local execution?
Docker can be used. Direct Node.js execution requires Node.js and Chrome, with Chrome at a documented path or specified by CHROME_EXECUTABLE_PATH.

Compare agents like this one

The same FARS review applied across the shortlist this agent qualifies for.

Related agents