Steel Browser

Browser & Desktop 💻 TypeScript ⚖️ Apache-2.0 🟢 Actively maintained
7.6k stars

Steel is an open-source browser API that provides full control of Chrome instances via Puppeteer, Playwright, or Selenium, managing sessions, proxies, and resources. It solves the complexity of building browser automation infrastructure for AI agents and apps, allowing developers to focus on their application logic.

Steel Browser demo
🎞️ Demo from the project README

✨ Key features

  • Full browser control via Puppeteer, Playwright, or Selenium
  • Session management with state, cookies, and local storage
  • Built-in proxy chain management for IP rotation
  • Load custom Chrome extensions
  • Anti-detection with stealth plugins and fingerprint management
  • Quick actions for scraping, screenshots, and PDFs

🎯 Use cases

  • Build AI agents that interact with live web pages
  • Scrape clean HTML content from websites
  • Take full-page screenshots or generate PDFs of web pages
  • Automate complex, stateful browsing workflows with custom proxies
  • Integrate with existing Selenium test suites

📦 Installation

🧰 Requirements: Requires Docker or Node.js with Chrome installed; no API keys needed for self-hosted, but Steel Cloud account optional.

Docker

The simplest way to deploy/run a Steel browser instance locally is to run the pre-built Docker image:

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

Alternatively, you can run the API and UI separately with docker compose:

docker compose up

For Mac Silicon users, you will need to pass this env flag to the Docker compose command to run the images on the correct platform:

DOCKER_DEFAULT_PLATFORM=linux/arm64 docker compose up

Node.js

Alternatively, if you have Node.js and Chrome installed, you can run both the server and the UI directly:

npm install
npm run dev

Make sure you have the Chrome executable installed and in one of these paths:

  • Linux: /usr/bin/google-chrome
  • MacOS: /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
  • Windows: C:\Program Files\Google\Chrome\Application\chrome.exe OR C:\Program Files (x86)\Google\Chrome\Application\chrome.exe

🚀 Usage

Scrape a Web Page

Extract the HTML content of a web page.

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

Take a Screenshot

Take a screenshot of a web page.

curl -X POST http://0.0.0.0:3000/v1/screenshot \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com",
    "fullPage": true
  }' --output screenshot.png

Download a PDF

Download a PDF of a web page.

curl -X POST http://0.0.0.0:3000/v1/pdf \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com"
  }' --output output.pdf

⚠️ Good to know

Steel is in public beta and evolving every day; Selenium integration does not support all features of the CDP-based browser sessions API.

❓ FAQ

How can I run Steel locally?

You can run Steel locally using Docker with docker run -p 3000:3000 -p 9223:9223 ghcr.io/steel-dev/steel-browser, or with Node.js by running npm install and npm run dev.

What browsers can I connect with?

Steel uses Puppeteer and CDP, allowing you to connect using Puppeteer, Playwright, or Selenium.

Can I use custom proxies?

Yes, Steel has built-in proxy chain management for IP rotation, and you can specify a proxy URL when creating a session.

Is there a cloud version?

Yes, you can create a Steel Cloud account at app.steel.dev for the easiest way to get started.

📊 Repository

Stars★ 7,592
Forks🍴 972
Open issues🐛 68
Last commit🕒 Sep 3, 2026
Created📅 Nov 2024
Language💻 TypeScript
License⚖️ Apache-2.0
Websitesteel.dev

🤖 Overview, features, install steps and FAQ were generated from the project's README on Sep 4, 2026. Always check the original source before running commands.