A small CLI for driving a self-hosted Steel browser — the open-source Chrome automation API for AI agents — for browsing, scraping, screenshotting and search from a terminal or agent toolchain.
Instead of building browser automation from scratch, point this at your Steel API server and get clean text, search results and screenshots in one command.
The built-in browser gateways (Browserbase, etc.) frequently hit CAPTCHA walls on Google, Indeed and other IP-reputation-gated sites. Steel gives you a real Chrome instance (stealth fingerprinting, session persistence, proxy support) you control. This tool is the thin wrapper to drive it.
- A running Steel browser instance (see steel-browser for deploy).
Minimum:
docker run -d --name steel-browser -p 3100:3000 ghcr.io/steel-dev/steel-browser - Python 3.10+
playwright(pip) — only forsearchandrun(CDP-session commands)
pip install . # installs the `steel` command
# or run directly without installing:
./steel.py --help# DuckDuckGo result snippets (text)
steel search "kitchen supervisor salary Jonesboro"
# JSON output for pipelines
steel search "browser automation API" --json
# Clean text of a page
steel scrape https://example.com 1200
# Screenshot
steel shot https://example.com out.png
# Create a browser session, optionally through a proxy
steel session --proxy user:pass@host:port
# Run a custom Playwright snippet against a session
steel run my_script.py
# Manage sessions
steel sessions
steel kill [session_id]| Var | Default | Purpose |
|---|---|---|
STEEL_BASE |
http://127.0.0.1:3100 |
REST base URL for Steel API |
STEEL_WS |
ws://127.0.0.1:3100/ |
Playwright CDP WebSocket URL |
Set these as env vars, pass --base/--ws, or drop a .steel_env file
(STEEL_BASE=... / STEEL_WS=..., one per line) next to the script or in ~.
Steel's stealth browser defeats fingerprint / cookie detection. It does not
change your IP reputation. Google and Indeed gate on IP; if your egress IP
is already flagged, even a real Chrome via Steel will still be captcha-walled.
The lever is Steel's per-session proxyUrl — route through a clean proxy
(steel session --proxy user:pass@host:port) and the stealth browser should
pass. DuckDuckGo and most fingerprint-only sites work without a proxy.
Apache-2.0 (matches the upstream Steel project).