Steel CLI + Skill
Overview
@steel-dev/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
- Package: npmjs.com/package/@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
Requirements:
- Node.js
>=18
Install globally:
npm i -g @steel-dev/cli
Or run without global install:
npx @steel-dev/cli --help
Quick Start
Cloud Mode (Default)
steel loginsteel browser start --session my-jobsteel browser open https://example.com --session my-jobsteel browser snapshot -i --session my-jobsteel browser stop --session my-job
Self-Hosted Endpoint
steel browser start --api-url https://steel.your-domain.dev/v1 --session my-jobsteel browser open https://example.com --api-url https://steel.your-domain.dev/v1 --session my-job
Local Runtime (localhost) Flow
steel dev installsteel dev startsteel browser start --local --session local-jobsteel browser open https://example.com --session local-jobsteel browser stop --session local-jobsteel dev stop
Skills 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-browser
Or from a local checkout:
npx skills add ./skills/steel-browser
After 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:
- 1Start or attach a named session.
- 2Open a page and inspect interactable elements (
snapshot -i). - 3Perform actions (
fill,select,check,click). - 4Wait for the post-action state and verify output.
- 5Stop 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/signupagent-browser snapshot -iagent-browser fill @e1 "Jane Doe"agent-browser fill @e2 "jane@example.com"agent-browser select @e3 "California"agent-browser check @e4agent-browser click @e5agent-browser wait --load networkidle
Command 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 --helpsteel browser click --helpsteel browser wait --help
For full command references:
Command Overview
| Group | Commands |
|---|---|
| Quickstart | forge, run |
| 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 |
| Account + utility | login, logout, config, settings, cache, docs, support, star, 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 modesteel browser start --session my-job --session-solve-captchasteel browser captcha solve --session my-job# Auto solve mode (stealth preset)steel browser start --session my-job --stealth
3. agent-browser Migration
# Beforeagent-browser open https://example.comagent-browser snapshot -iagent-browser click @e3# Aftersteel browser open https://example.comsteel browser snapshot -isteel browser click @e3
4. API Tool Commands
# Scrape (markdown-first output by default)steel scrape https://example.com# Screenshotsteel screenshot https://example.com --full-pagesteel pdf https://example.com
forge and run (Templates)
Use forge to scaffold a project and run to execute templates instantly.
# Scaffold a projectsteel forge playwright --name my-bot# Run an instant task-oriented template flowsteel run browser-use --task "Research the latest browser automation libraries"
List all templates and flags:
steel forge --helpsteel run --help
Endpoint Resolution
For browser lifecycle, passthrough bootstrap, and API tools (scrape, screenshot, pdf),
endpoint selection is deterministic.
Self-hosted precedence:
- 1
--api-url <url> - 2
STEEL_BROWSER_API_URL - 3
STEEL_LOCAL_API_URL - 4
browser.apiUrlin~/.config/steel/config.json - 5
http://localhost:3000/v1
Cloud precedence:
- 1
STEEL_API_URL - 2
https://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 loginsteel configsteel logoutsteel settingssteel cache --cleansteel updatesteel update --checksteel update --force
Disable auto-update checks (24-hour cache window):
steel run --no-update-checkSTEEL_CLI_SKIP_UPDATE_CHECK=true steel runCI=true steel runNODE_ENV=test steel run
Runtime 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.