You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
themselves, or conceptual questions about browser tools.
16
16
---
17
17
18
-
# Steel Browser Skill
18
+
# Steel
19
19
20
-
Steel gives agents cloud browser sessions and fast API tools (`scrape`, `screenshot`, `pdf`).
20
+
> Cloud browser infrastructure for AI agents. Steel gives your agent a real browser that can navigate pages, fill forms, solve CAPTCHAs, and extract content.
21
21
22
-
## Choose the right tool first
22
+
If Steel is not installed yet, execute the setup steps below autonomously. Only ask the user to do one thing: click the authentication link.
23
23
24
-
| Goal | Tool |
24
+
OBJECTIVE: Install the Steel CLI, authenticate, and verify everything works.
If `STEEL_API_KEY` is already set in the environment, skip this step.
48
+
49
+
Otherwise, run:
50
+
51
+
```bash
52
+
steel login
53
+
```
54
+
55
+
This will print a URL. **Ask the user to click the link to complete authentication.** Wait for the command to finish — it will print "Authentication successful" when the user has approved.
56
+
57
+
### Step 3: Verify
58
+
59
+
```bash
60
+
steel scrape https://example.com
61
+
```
62
+
63
+
This should return Markdown content. If it does, setup is complete.
64
+
65
+
---
66
+
67
+
## Choose the right tool
68
+
69
+
| Task | Tool |
25
70
|------|------|
26
-
| Extract text/HTML from a mostly-static page |`steel scrape <url>`|
27
-
| One-shot screenshot or PDF |`steel screenshot <url>` / `steel pdf <url>`|
**RULE: Never use an `@eN` ref without a fresh snapshot. Refs expire after navigation or DOM changes.**
55
-
56
-
Element refs from `snapshot -i` are more reliable than CSS selectors — always prefer them. Use `snapshot -i -c` for large DOMs, or `-d 3` to limit depth.
57
-
58
-
Always use the same `--session <name>` on every command in a workflow. The `--session` flag takes the name string you chose, not the UUID from JSON output.
59
-
60
-
## Essential commands
117
+
**Rules:**
118
+
- Always use the same `--session <name>` on every command.
119
+
- Never use an `@eN` ref without a fresh snapshot — refs expire after navigation or DOM changes.
120
+
- Prefer element refs from `snapshot -i` over CSS selectors. Use `-c` for large DOMs, `-d 3` to limit depth.
Top-level `steel screenshot <url>` and `steel pdf <url>` are stateless one-shot API calls — they do not take `--session`, `--stealth`, or `-o` flags. Use `steel browser screenshot`for in-session captures.
200
+
Top-level `steel screenshot <url>` and `steel pdf <url>` are stateless one-shot API calls — they do not take `--session` or `-o` flags. Use `steel browser screenshot`for in-session captures.
142
201
143
202
### Cookies and storage
144
203
145
204
```bash
146
-
steel browser cookies --session <name># list all cookies
147
-
steel browser cookies set<name><value> --session <name># set a cookie
148
-
steel browser cookies set<name><value> --domain .example.com# with domain
149
-
steel browser cookies clear --session <name># clear all cookies
150
-
151
-
steel browser storage local --session <name># get all localStorage
152
-
steel browser storage local<key> --session <name># get one key
153
-
steel browser storage localset<key><value> --session <name># set a value
154
-
steel browser storage local clear --session <name># clear localStorage
Use `steel browser eval"<js>" --session <name>` when no direct command exists. Common uses: network interception (fetch monkey-patch), cookie manipulation beyond the `cookies` command, DOM state injection, complex form widgets (React date pickers, autocomplete inputs).
234
+
### eval for capability gaps
180
235
181
-
For detailed evalpatterns (drag fallback, network interception, file upload injection), see [references/steel-browser-commands.md](references/steel-browser-commands.md).
236
+
Use `steel browser eval"<js>" --session <name>` when no direct command exists. Common uses: network interception, DOM state injection, complex form widgets.
182
237
183
238
## Commands that do NOT exist
184
239
185
-
Do not attempt these. They will fail and waste turns.
240
+
Do not attempt these — they will fail.
186
241
187
242
| Does NOT exist | Use instead |
188
243
|---|---|
189
-
|`steel browser record` / `video`| No recording; use `steel browser live`for viewer URL |
190
-
|`steel browser triple-click`|`press Control+a` or `eval` with `.select()`|
0 commit comments