Overview
The Steel CLI lets you run full browser workflows from the terminal, end-to-end. You can start a browser session, navigate pages, click/fill/type, extract content, and stop the session without wiring custom browser infrastructure.
What it enables:
- Run browser automation in cloud mode (default) or self-hosted/local mode
- Drive pages with terminal-first browser commands (
open,snapshot,fill,click, etc.) - Use API tools for
scrape,screenshot, andpdf - Bootstrap projects quickly with
forgeand run templates instantly withrun
Under the hood, steel browser is directly integrated with the agent-browser runtime. That means Steel adds session lifecycle, auth, and endpoint routing while preserving familiar browser command behavior.
- GitHub: steel-dev/cli
Documentation Index (for Agents)
If you are using an AI agent and want a complete docs index before exploring pages:
https://docs.steel.dev/llms-full.txt
This returns a flattened, agent-friendly text map of the docs site.
Installation
Install with the official script (recommended):
curl -fsS https://setup.steel.dev | shThis installs the native steel binary to ~/.steel/bin and runs steel init to log you in, verify connectivity, and install coding-agent skills.
Quick Start
Cloud Mode (Default)
steel login
steel browser start --session my-job
steel browser open https://example.com --session my-job
steel browser snapshot -i --session my-job
steel browser stop --session my-jobSelf-Hosted Endpoint
steel browser start --api-url https://steel.your-domain.dev/v1 --session my-job
steel browser open https://example.com --api-url https://steel.your-domain.dev/v1 --session my-jobLocal Runtime (localhost) Flow
steel dev install
steel dev start
steel browser start --local --session local-job
steel browser open https://example.com --session local-job
steel browser stop --session local-job
steel dev stopSkills for Coding Agents
Steel ships a dedicated skill package for browser workflows:
This is designed for coding agents, including:
- Codex
- OpenCode
- OpenClaw
- Claude Code
Install from GitHub:
npx skills add github:steel-dev/cli/skills/steel-browserOr from a local checkout:
npx skills add ./skills/steel-browserAfter installation, restart your agent client so it can discover newly installed skills.
What this skill gives agents:
- Mode-aware command planning (cloud vs self-hosted)
- Named-session lifecycle discipline (
start -> work -> stop) - Reliable command patterns for
steel browserpassthrough actions - Migration guidance from
agent-browser - Troubleshooting playbooks for auth/session/CAPTCHA failures
Typical Agent Skill Workflow
Most agent loops follow this pattern:
- Start or attach a named session.
- Open a page and inspect interactable elements (
snapshot -i). - Perform actions (
fill,select,check,click). - Wait for the post-action state and verify output.
- Stop the session when done.
SESSION="signup-demo-$(date +%s)"
steel browser start --session "$SESSION"
steel browser open https://example.com/signup --session "$SESSION"
steel browser snapshot -i --session "$SESSION"
steel browser fill @e1 "Jane Doe" --session "$SESSION"
steel browser fill @e2 "jane@example.com" --session "$SESSION"
steel browser select @e3 "California" --session "$SESSION"
steel browser check @e4 --session "$SESSION"
steel browser click @e5 --session "$SESSION"
steel browser wait --load networkidle --session "$SESSION"
steel browser stop --session "$SESSION"If you already know upstream agent-browser, the behavior is typically command-prefix only:
agent-browser open https://example.com/signup
agent-browser snapshot -i
agent-browser fill @e1 "Jane Doe"
agent-browser fill @e2 "jane@example.com"
agent-browser select @e3 "California"
agent-browser check @e4
agent-browser click @e5
agent-browser wait --load networkidleCommand Model
Steel-Owned Browser Lifecycle Commands
steel browser startsteel browser stopsteel browser sessionssteel browser livesteel browser captcha solve
Inherited Browser Commands (Passthrough)
All non-lifecycle steel browser <command> calls are routed through the vendored agent-browser runtime.
Migration is usually command-prefix only:
- Before:
agent-browser <command> ... - After:
steel browser <command> ...
Essential Inherited Commands
These are the most common inherited commands agents use:
- Page navigation:
open,back,forward,reload - Page understanding:
snapshot,snapshot -i - Interaction:
click,fill,type,select,check,press,hover - Data retrieval:
get text,get html,get title,get url - Synchronization:
wait,wait --load networkidle,wait --text - Debugging:
screenshot,errors,console
Use command help directly when needed:
steel browser --help
steel browser click --help
steel browser wait --helpFor full command references:
Command Overview
| Group | Commands |
|---|---|
| Onboarding | init, forge |
| Browser lifecycle | browser start, browser stop, browser sessions, browser live, browser captcha solve |
| Browser passthrough | steel browser <inherited-command> |
| API tools | scrape, screenshot, pdf |
| Local runtime | dev install, dev start, dev stop |
| Profiles | profile import, profile sync, profile list, profile delete |
| Credentials | credentials list, credentials create, credentials update, credentials delete |
| Account + utility | login, logout, config, doctor, cache, update |
Common Workflows
1. Named Session Lifecycle
SESSION="job-$(date +%s)"
steel browser start --session "$SESSION"
steel browser open https://example.com --session "$SESSION"
steel browser snapshot -i --session "$SESSION"
steel browser get title --session "$SESSION"
steel browser stop --session "$SESSION"2. CAPTCHA-Aware Sessions
# Manual solve mode
steel browser start --session my-job --session-solve-captcha
steel browser captcha solve --session my-job
# Auto solve mode (stealth preset)
steel browser start --session my-job --stealth3. agent-browser Migration
# Before
agent-browser open https://example.com
agent-browser snapshot -i
agent-browser click @e3
# After
steel browser open https://example.com
steel browser snapshot -i
steel browser click @e34. API Tool Commands
# Scrape (markdown-first output by default)
steel scrape https://example.com
# Screenshot
steel screenshot https://example.com --full-page
# PDF
steel pdf https://example.comforge (Templates)
Use forge to scaffold a project from a template.
# Scaffold a project
steel forge playwright --name my-botList all templates and flags:
steel forge --helpEndpoint Resolution
For browser lifecycle, passthrough bootstrap, and API tools (scrape, screenshot, pdf), endpoint selection is deterministic.
Self-hosted precedence:
--api-url <url>STEEL_BROWSER_API_URLSTEEL_LOCAL_API_URLbrowser.apiUrlin~/.config/steel/config.jsonhttp://localhost:3000/v1
Cloud precedence:
STEEL_API_URLhttps://api.steel.dev/v1
Attach-flag override:
- If
--cdpor--auto-connectis provided, Steel skips bootstrap injection and forwards passthrough arguments unchanged.
Auth, Config, and Updates
steel login
steel config
steel logout
steel cache --clean
steel update
steel update --check
steel update --forceDisable auto-update checks (24-hour cache window):
steel scrape https://example.com --no-update-check
STEEL_CLI_SKIP_UPDATE_CHECK=true steel scrape https://example.com
CI=true steel scrape https://example.com
NODE_ENV=test steel scrape https://example.comRuntime and Output Notes
steel scrapedefaults to markdown-first output; use--rawfor full JSON payload.steel browser startandsteel browser sessionsreturn display-safeconnect_urlvalues with sensitive query parameters redacted.- Browser command paths bypass auto-update checks to reduce interactive latency.
Troubleshooting
Missing browser auth...: runsteel loginor setSTEEL_API_KEY.Failed to reach Steel session API ...: confirm mode and endpoint settings (--local,--api-url, env vars).- Session reuse issues: use a consistent
--session <name>across every step. - Local runtime issues: run
steel dev installonce, thensteel dev start. - Stale state: run
steel browser stop --alland start a fresh named session.