steel-developer — Claude Code skill: what it does, how to install
Generates scripts and implementation guides for Steel cloud browsers using Playwright or REST APIs. Useful when preparing automated browser code to run in your project.
npx skills add steel-dev/skills --skill steel-developer -a claude-codeWhat steel-developer does
This skill writes reusable automation scripts targeting Steel cloud infrastructure. It outputs properly structured code for Node.js and Python SDKs. It connects via CDP websocket endpoints and reuses the default browser context.
The skill does not perform live browsing for the assistant. If the agent needs to navigate websites directly, use steel-browser. Broken session triage belongs to steel-session-debugging, while anti-bot configurations route to steel-reliability.
Without STEEL_API_KEY set in the environment, scripts will fail immediately. The skill enforces mandatory session release inside finally blocks to prevent dangling cloud instances.
What it helps with
- generate Playwright scripts targeting Steel cloud browser sessions
- configure Node.js and Python SDK clients with proper credentials
- build direct CDP connections using explicit websocket URLs
- ensure cloud browser sessions release correctly in cleanup blocks
Example prompts for the agent
- Write a Node.js Playwright script to launch a Steel cloud session and take a screenshot
- Show a minimal Python snippet connecting to Steel over CDP with session release
- Create a TypeScript template integrating the Steel SDK without stale anti-patterns
How to install steel-developer
1Skills CLI (Vercel)
npx skills add steel-dev/skills --skill steel-developer -a claude-code2Manually: put the files in place
~/.claude/skills/steel-developer/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/steel-developer/
1Skills CLI (Vercel)
npx skills add steel-dev/skills --skill steel-developer -a codex2Manually: put the files in place
.agents/skills/steel-developer/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add steel-dev/skills --skill steel-developer -a cursor2Manually: put the files in place
.cursor/skills/steel-developer/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install steel-dev/skills steel-developer2Manually: put the files in place
.github/skills/steel-developer/SKILL.md1Skills CLI (Vercel)
npx skills add steel-dev/skills --skill steel-developer -a gemini-cli2Platform CLI
gemini skills install https://github.com/steel-dev/skills --path steel-developerManually: put the files in place
.devin/skills/steel-developer/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add steel-dev/skills --skill steel-developer -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about steel-developer
How to install steel-developer in Claude Code?
Run npx skills add steel-dev/skills --skill steel-developer -a claude-code in your terminal.
How does steel-developer differ from steel-browser?
steel-developer provides code and configuration for your own codebase to run later. If you need the AI agent to browse the live web right now, use steel-browser.
What credentials does steel-developer require?
Your environment must export STEEL_API_KEY. You can verify local setup and credentials using steel login and steel doctor --preflight.
Source text
SKILL.md · MIT
---
name: steel-developer
description: Use this skill when the user wants reusable code, scripts, examples, or docs that build on Steel cloud browsers with SDKs, REST APIs, Playwright, Puppeteer, Stagehand, Browser Use, credentials, profiles, files, extensions, embeds, proxies, or CAPTCHA APIs. Do not use for live web browsing performed by the agent; use steel-browser. Route failed-session diagnosis to steel-session-debugging and reliability mitigation to steel-reliability.
license: MIT
compatibility: claude-code,codex,cursor,opencode,pi
metadata:
owner: steel
category: build
stage: ga
---
# Steel Developer
## Skill Boundary
- Use this skill when the user wants code or implementation guidance they will run later.
- Do not use this skill when the user wants the agent to browse, extract, screenshot, create a PDF, or fill a form now; use `steel-browser`.
- Use `steel-session-debugging` when the main task is diagnosing a failed session.
- Use `steel-reliability` when the main task is bot detection, proxy, CAPTCHA, identity, pacing, or login reliability mitigation.
## Route By Need
Load the relevant reference before writing code:
- CLI setup and local verification: `references/cli-setup.md`
- TypeScript, JavaScript, Node.js, Playwright, Puppeteer, Stagehand: `references/typescript.md`
- Python, Playwright Python, Browser Use: `references/python.md`
- First-party APIs, exact docs/API/SDK lookup, browser tools, files, extensions, auth context, embeds, traces, mobile mode, multi-region: `references/apis.md`
- Framework choice, Stagehand, Browser Use, typed agent frameworks, coding-agent integrations: `references/ecosystem.md`
- Stale SDK/API patterns to avoid: `references/anti-patterns.md`
- Computer-use loops: `references/computer-use.md`
- Live and past session embeds: `references/live-embed.md`
- Reliability boundary and handoff: `references/reliability-handoff.md`
## Non-Negotiables
- Auth env var is `STEEL_API_KEY`.
- Node examples import `Steel` from `steel-sdk`; SDK source is `steel-dev/steel-node`.
- Node SDK constructor uses `steelAPIKey`.
- Python SDK constructor uses `steel_api_key`.
- Always release sessions in cleanup.
- Construct the CDP URL explicitly as `wss://connect.steel.dev?apiKey=...&sessionId=...`.
- Reuse the default browser context after connecting; do not create a new context unless the user explicitly needs isolation.
- Keep target-site credentials out of prompts, code comments, page scripts, and logs.
- For exact API fields or SDK method signatures, inspect the API reference, SDK docs, local installed types, or Steel docs via `curl -sSfL`.
- Never use stale patterns listed in `references/anti-patterns.md`.
## Minimal Session Shape
TypeScript:
```ts
const steelAPIKey = process.env.STEEL_API_KEY;
if (!steelAPIKey) throw new Error("STEEL_API_KEY is required");
const client = new Steel({ steelAPIKey });
const session = await client.sessions.create();
const cdpUrl = `wss://connect.steel.dev?apiKey=${steelAPIKey}&sessionId=${session.id}`;
const browser = await chromium.connectOverCDP(cdpUrl);
const context = browser.contexts()[0];
const page = context.pages()[0] ?? (await context.newPage());
try {
await page.goto("https://example.com");
} finally {
await browser.close();
await client.sessions.release(session.id);
}
```
Python:
```python
steel_api_key = os.environ["STEEL_API_KEY"]
client = Steel(steel_api_key=steel_api_key)
session = client.sessions.create()
cdp_url = f"wss://connect.steel.dev?apiKey={steel_api_key}&sessionId={session.id}"
browser = await playwright.chromium.connect_over_cdp(cdp_url)
context = browser.contexts[0]
page = context.pages[0] if context.pages else await context.new_page()
try:
await page.goto("https://example.com")
finally:
await browser.close()
await playwright.stop()
client.sessions.release(session.id)
```
## Setup Verification
```bash
steel --version
steel login
steel doctor --preflight
steel skills doctor
```
## Source-Of-Truth Links
- API reference: https://steel.apidocumentation.com/api-reference
- Node SDK/types: https://github.com/steel-dev/steel-node
- Python SDK/types: https://github.com/steel-dev/steel-python
- Docs index: `curl -sSfL https://docs.steel.dev/llms.txt`
- Full docs bundle: `curl -sSfL https://docs.steel.dev/llms-full.txt`
- Single docs page: `curl -sSfL https://docs.steel.dev/llms.mdx/<page-path>`
© steel-dev · MIT · steel-dev/skills