Steel Browser is an open-source browser API designed specifically for AI agents and applications, with the goal of enabling developers to build real-time agents and browser automation tools that interact with web pages without having to build automation infrastructure from scratch.
Main capabilities:
- Full browser control: uses Puppeteer and CDP at the underlying level, can fully control Chrome instances, and supports connecting via Puppeteer, Playwright, or Selenium.
- Session management: maintains browser state, cookies, and local storage across requests.
- Proxy support: built-in proxy chain management for IP rotation.
- Extension support: can load custom Chrome extensions to enhance functionality.
- Debugging tools: built-in request logging and a UI for viewing/debugging sessions.
- Anti-detection: includes stealth plugins and fingerprint management.
- Resource management: automatic cleanup and browser lifecycle management.
- Browser tools: provides APIs to quickly convert pages into Markdown, readability content, screenshots, or PDFs.
How to use:
- You can get started quickly by creating a Steel Cloud account, or deploy to a cloud provider or run locally.
- The simplest way to run locally is to run the prebuilt Docker image. After startup, the Steel browser server runs on port 3000 (http://localhost:3000),UI located at http://localhost:3000/ui,9223 port for the console debugger.
- You can also use docker compose to run the API and UI separately; Mac Silicon users need to pass a specific environment flag.
- For local development by contributors, you need to run docker-compose.dev.yml with --build; the server and UI run on ports 3000 and 5173 respectively.
- If Node.js and Chrome are already installed, you can also run the server and UI directly. The Chrome executable needs to be located at the specified path, or a custom path can be set via the CHROME_EXECUTABLE_PATH environment variable.
- Cookbook examples are provided, and you can also run npm run start in the repl directory to try the REPL.
API interaction methods:
- Quick action endpoints: the /scrape, /screenshot, and /pdf endpoints can quickly extract clean, well-formatted data from any web page, suitable for simple, read-only, on-demand tasks.
- The full REST OpenAPI documentation can be viewed on the official website and at the local instance's http://localhost:3000/documentation .
- Python and Node SDKs are provided (the steel-sdk package), built on the REST API, fully typed, and compatible with Steel Cloud and self-hosted instances (switch via Node's baseURL or Python's base_url).
- The /sessions endpoint can restart the browser with custom options or extensions (such as a custom proxy), and reset the browser state, suitable for complex stateful workflows that require fine-grained control.
- After creating a session, you can interact with the browser via Puppeteer or Playwright using the session ID or root URL; the documentation provides examples for Puppeteer integration, Playwright with Node, and Playwright with Python. Note that this integration does not support all the features of the CDP-based browser session API.
- For teams with existing Selenium workflows, Steel Browser provides a drop-in replacement solution, using the isSelenium option to create a Selenium session, fully compatible with Selenium's WebDriver protocol, and can be connected using any existing Selenium client.
Applicable scenarios:
- Building AI agents and applications that need to interact with web pages.
- Browser automation tool development.
- Complex stateful web workflows that require session persistence, proxy rotation, and anti-detection.
- Read-only on-demand tasks such as quick scraping, screenshots, and PDF generation.
Limitations and status:
- Steel is in public beta and is still continuously evolving.
- The Playwright integration does not support all the features of the CDP-based browser session API.
- Running locally requires Docker or a Node.js and Chrome environment.
- Specific information such as fees, pricing, and platform support scope is not yet provided in the materials.