Browser Harness
davidondrej/skills
Direct browser control via CDP. An agent skill from davidondrej/skills.
Cloud browser automation CLI for AI agents powered by Scrapeless.
$ npx skills add LeoYeAI/openclaw-master-skills --skill scrapeless-scraping-browser -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills scrapeless-scraping-browser --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/scrapeless-scraping-browser-skill .claude/skills/scrapeless-scraping-browser && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "scrapeless-scraping-browser" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/scrapeless-scraping-browser-skill into .claude/skills/scrapeless-scraping-browser/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scrapeless-scraping-browser", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/scrapeless-scraping-browser-skillType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add LeoYeAI/openclaw-master-skills --skill scrapeless-scraping-browser -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills scrapeless-scraping-browser --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/scrapeless-scraping-browser-skill .agents/skills/scrapeless-scraping-browser && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "scrapeless-scraping-browser" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/scrapeless-scraping-browser-skill into .agents/skills/scrapeless-scraping-browser/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scrapeless-scraping-browser", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add LeoYeAI/openclaw-master-skills --skill scrapeless-scraping-browser -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills scrapeless-scraping-browser --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/scrapeless-scraping-browser-skill .cursor/skills/scrapeless-scraping-browser && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "scrapeless-scraping-browser" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/scrapeless-scraping-browser-skill into .cursor/skills/scrapeless-scraping-browser/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scrapeless-scraping-browser", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/LeoYeAI/openclaw-master-skills.git --path skills/scrapeless-scraping-browser-skill--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add LeoYeAI/openclaw-master-skills --skill scrapeless-scraping-browser -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills scrapeless-scraping-browser --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/scrapeless-scraping-browser-skill .gemini/skills/scrapeless-scraping-browser && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "scrapeless-scraping-browser" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/scrapeless-scraping-browser-skill into .gemini/skills/scrapeless-scraping-browser/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scrapeless-scraping-browser", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install LeoYeAI/openclaw-master-skills scrapeless-scraping-browserInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add LeoYeAI/openclaw-master-skills --skill scrapeless-scraping-browser -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/scrapeless-scraping-browser-skill .github/skills/scrapeless-scraping-browser && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "scrapeless-scraping-browser" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/scrapeless-scraping-browser-skill into .github/skills/scrapeless-scraping-browser/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scrapeless-scraping-browser", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add LeoYeAI/openclaw-master-skills --skill scrapeless-scraping-browser -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills scrapeless-scraping-browser --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/scrapeless-scraping-browser-skill .opencode/skills/scrapeless-scraping-browser && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "scrapeless-scraping-browser" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/scrapeless-scraping-browser-skill into .opencode/skills/scrapeless-scraping-browser/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scrapeless-scraping-browser", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
scrapeless-scraping-browserCloud browser automation CLI for AI agents powered by Scrapeless.
Scrapeless Scraping Browser is an agent skill from LeoYeAI/openclaw-master-skills. Cloud browser automation CLI for AI agents powered by Scrapeless. Use when the user needs to interact with websites using cloud browsers, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task with residential proxies and anti-detection features. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "use a proxy", "bypass…
Its SKILL.md is about 6.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including reference files (for example `SECURITY.md`, `_meta.json` and `references/authentication.md`).
It sits in Productivity & Automation, covering Web scraping and Browser automation. The repository describes itself as: 🧠 Curated collection of 1209+ best OpenClaw skills — weekly updated by MyClaw.ai. The licence is MIT.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit e5199b5. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
Bash(npx scrapeless-scraping-browser-skills scrapeless-scraping-browser:*)Bash(scrapeless-scraping-browser:*)From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
jqnpmFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
proxy.comsite-a.comsite-b.comanother-site.comAlso links to:
docs.scrapeless.comapi.scrapeless.comgithub.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
SCRAPELESS_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Scrapeless Scraping Browser loads about 6.3k tokens when it runs, and up to ~6.6k if it reads all its reference files. Until then it costs about 151 tokens; SKILL.md has 1,094 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from LeoYeAI/openclaw-master-skills at commit e5199b5, republished under its MIT licence (© LeoYeAI). 1,094 words, ~6,305 tokens.
.claude/skills/scrapeless-scraping-browser/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.All browser operation commands support the --session-id parameter to specify which Scrapeless session to use.
# Step 1: Create a session and save the session ID
SESSION_ID=$(scrapeless-scraping-browser new-session --name "workflow" --ttl 1800 --json | jq -r '.taskId')
# Step 2: Use the session ID for all operations
scrapeless-scraping-browser --session-id $SESSION_ID open https://example.com
scrapeless-scraping-browser --session-id $SESSION_ID snapshot -i
scrapeless-scraping-browser --session-id $SESSION_ID click @e1
# Step 3: Close when done
scrapeless-scraping-browser --session-id $SESSION_ID closeIf you don't specify --session-id:
For production workflows, always use --session-id to ensure consistency.
Before using scrapeless-browser, you MUST set up authentication:
# Method 1: Config file (recommended, persistent)
scrapeless-scraping-browser config set apiKey your_api_token_here
# Method 2: Environment variable
export SCRAPELESS_API_KEY=your_api_token_here
# Verify it's set
scrapeless-scraping-browser config get apiKeyGet your API token from https://app.scrapeless.com
The CLI manages Scrapeless sessions with the following behavior:
Important: For multi-step workflows, consider using the TypeScript API to maintain persistent connections.
Every browser automation follows this pattern:
--session-id to navigate to URL--session-id--session-id# Set API token first
scrapeless-scraping-browser config set apiKey your_token
# Create session
SESSION_ID=$(scrapeless-scraping-browser new-session --name "form-fill" --ttl 600 --json | jq -r '.taskId')
# Start automation with session ID
scrapeless-scraping-browser --session-id $SESSION_ID open https://example.com/form
scrapeless-scraping-browser --session-id $SESSION_ID snapshot -i
# Output: @e1 [input type="email"], @e2 [input type="password"], @e3 [button] "Submit"
scrapeless-scraping-browser --session-id $SESSION_ID fill @e1 "user@example.com"
scrapeless-scraping-browser --session-id $SESSION_ID fill @e2 "password123"
scrapeless-scraping-browser --session-id $SESSION_ID click @e3
scrapeless-scraping-browser --session-id $SESSION_ID wait --load networkidle
scrapeless-scraping-browser --session-id $SESSION_ID snapshot -i # Check resultCommands can be chained with && in a single shell invocation:
# Chain open + wait + snapshot
scrapeless-scraping-browser open https://example.com && scrapeless-scraping-browser wait --load networkidle && scrapeless-scraping-browser snapshot -i
# Chain multiple interactions
scrapeless-scraping-browser fill @e1 "user@example.com" && scrapeless-scraping-browser fill @e2 "password123" && scrapeless-scraping-browser click @e3When to chain: Use && when you don't need to read intermediate output. Run commands separately when you need to parse output first (e.g., snapshot to discover refs, then interact).
Note: All commands below support the optional --session-id <id> parameter.
# Navigation & Session
scrapeless-scraping-browser new-session [options] # Create new browser session
scrapeless-scraping-browser [--session-id <id>] open <url> # Navigate to URL
scrapeless-scraping-browser [--session-id <id>] close # Close browser session
scrapeless-scraping-browser sessions # List running sessions
scrapeless-scraping-browser stop <taskId> # Stop specific session
scrapeless-scraping-browser stop-all # Stop all sessionsThe new-session command supports extensive customization options:
# Basic session creation
scrapeless-scraping-browser new-session --name "my-session" --ttl 1800
# Session with proxy settings
scrapeless-scraping-browser new-session \
--name "proxy-session" \
--proxy-country US \
--proxy-state CA \
--proxy-city "Los Angeles" \
--ttl 3600
# Session with custom browser configuration
scrapeless-scraping-browser new-session \
--name "mobile-session" \
--platform iOS \
--screen-width 375 \
--screen-height 812 \
--user-agent "Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X)" \
--timezone "America/Los_Angeles" \
--languages "en,es"
# Session with recording enabled
scrapeless-scraping-browser new-session \
--name "recorded-session" \
--recording true \
--ttl 7200Available Options:
--name <name>: Session name for identification--ttl <seconds>: Session timeout in seconds (default: 180)--recording <true|false>: Enable session recording--proxy-country <code>: Proxy country code (e.g., AU, US, GB, CN, JP)--proxy-state <state>: Proxy state/region (e.g., NSW, CA, NY, TX)--proxy-city <city>: Proxy city (e.g., sydney, newyork, london, tokyo)--user-agent <ua>: Custom user agent string--platform <platform>: Platform (Windows, macOS, Linux, iOS, Android)--screen-width <px>: Screen width in pixels (default: 1920)--screen-height <px>: Screen height in pixels (default: 1080)--timezone <tz>: Timezone (default: America/New_York)--languages <langs>: Comma-separated language codes (default: en)
# Snapshot
scrapeless-scraping-browser [--session-id <id>] snapshot -i # Interactive elements with refs (recommended)
scrapeless-scraping-browser [--session-id <id>] snapshot -i -C # Include cursor-interactive elements
scrapeless-scraping-browser [--session-id <id>] snapshot -s "#selector" # Scope to CSS selector
# Interaction (use @refs from snapshot)
scrapeless-scraping-browser [--session-id <id>] click @e1 # Click element
scrapeless-scraping-browser [--session-id <id>] fill @e2 "text" # Clear and type text
scrapeless-scraping-browser [--session-id <id>] type @e2 "text" # Type without clearing
scrapeless-scraping-browser [--session-id <id>] press Enter # Press key
scrapeless-scraping-browser [--session-id <id>] scroll down 500 # Scroll page
scrapeless-scraping-browser [--session-id <id>] scroll down 500 --selector "div.content" # Scroll within element
# Get information
scrapeless-scraping-browser [--session-id <id>] get text @e1 # Get element text
scrapeless-scraping-browser [--session-id <id>] get url # Get current URL
scrapeless-scraping-browser [--session-id <id>] get title # Get page title
scrapeless-scraping-browser [--session-id <id>] screenshot # Take screenshot
scrapeless-scraping-browser [--session-id <id>] screenshot --full # Full page screenshot
# Wait
scrapeless-scraping-browser [--session-id <id>] wait @e1 # Wait for element
scrapeless-scraping-browser [--session-id <id>] wait --load networkidle # Wait for network idle
scrapeless-scraping-browser [--session-id <id>] wait --url "**/page" # Wait for URL pattern
scrapeless-scraping-browser [--session-id <id>] wait 2000 # Wait milliseconds
# Cookies & Storage
scrapeless-scraping-browser [--session-id <id>] cookies # Get all cookies
scrapeless-scraping-browser [--session-id <id>] cookies set <name> <val> # Set cookie
scrapeless-scraping-browser [--session-id <id>] cookies clear # Clear cookies
scrapeless-scraping-browser [--session-id <id>] storage local # Get localStorage
scrapeless-scraping-browser [--session-id <id>] storage local set <k> <v> # Set localStorage
# Multi-page
scrapeless-scraping-browser [--session-id <id>] pages # List all pages/tabs
scrapeless-scraping-browser [--session-id <id>] page <pageId> # Switch to page
scrapeless-scraping-browser [--session-id <id>] tab new [url] # Open new tab
scrapeless-scraping-browser [--session-id <id>] tab close [n] # Close tab
# Live preview
scrapeless-scraping-browser live [taskId] # Get live preview URLscrapeless-scraping-browser get url # Get current URL scrapeless-scraping-browser get title # Get page title scrapeless-scraping-browser screenshot # Take screenshot scrapeless-scraping-browser screenshot --full # Full page screenshot
scrapeless-scraping-browser wait @e1 # Wait for element scrapeless-scraping-browser wait --load networkidle # Wait for network idle scrapeless-scraping-browser wait --url "**/page" # Wait for URL pattern scrapeless-scraping-browser wait 2000 # Wait milliseconds
scrapeless-scraping-browser cookies # Get all cookies
scrapeless-scraping-browser cookies set <name> <val> # Set cookie
scrapeless-scraping-browser cookies clear # Clear cookies
scrapeless-scraping-browser storage local # Get localStorage
scrapeless-scraping-browser storage local set <k> <v> # Set localStorage
scrapeless-scraping-browser pages # List all pages/tabs
scrapeless-scraping-browser page <pageId> # Switch to page
scrapeless-scraping-browser tab new [url] # Open new tab
scrapeless-scraping-browser tab close [n] # Close tab
scrapeless-scraping-browser live # Get live preview URL
## Common Patterns
### Form Submission
```bash
scrapeless-scraping-browser config set apiKey your_token
scrapeless-scraping-browser open https://example.com/signup
scrapeless-scraping-browser snapshot -i
scrapeless-scraping-browser fill @e1 "Jane Doe"
scrapeless-scraping-browser fill @e2 "jane@example.com"
scrapeless-scraping-browser click @e3
scrapeless-scraping-browser wait --load networkidlescrapeless-scraping-browser config set apiKey your_token
scrapeless-scraping-browser open https://example.com/products
scrapeless-scraping-browser snapshot -i --json
scrapeless-scraping-browser get text @e5 --json# Simulate iPhone for mobile-specific content
SESSION_ID=$(scrapeless-scraping-browser new-session \
--name "mobile-test" \
--platform iOS \
--screen-width 375 \
--screen-height 812 \
--user-agent "Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X)" \
--json | jq -r '.taskId')
scrapeless-scraping-browser --session-id $SESSION_ID open https://m.example.com# Access content from different regions
SESSION_ID=$(scrapeless-scraping-browser new-session \
--name "geo-test" \
--proxy-country AU \
--proxy-city sydney \
--timezone "Australia/Sydney" \
--languages "en-AU,en" \
--json | jq -r '.taskId')
scrapeless-scraping-browser --session-id $SESSION_ID open https://example.com# Test on high-resolution displays
SESSION_ID=$(scrapeless-scraping-browser new-session \
--name "desktop-4k" \
--platform macOS \
--screen-width 3840 \
--screen-height 2160 \
--json | jq -r '.taskId')
scrapeless-scraping-browser --session-id $SESSION_ID open https://example.com# Enable recording for troubleshooting
SESSION_ID=$(scrapeless-scraping-browser new-session \
--name "debug-session" \
--recording true \
--ttl 7200 \
--json | jq -r '.taskId')
scrapeless-scraping-browser --session-id $SESSION_ID open https://example.com
# Session recording will be available for reviewImportant: Scrapeless sessions terminate when connections close. For persistent workflows, use the TypeScript API:
scrapeless-scraping-browser config set apiKey your_token
# Create a session for login
scrapeless-scraping-browser create --name "login-session" --ttl 1800
scrapeless-scraping-browser open https://app.example.com/login
scrapeless-scraping-browser snapshot -i
scrapeless-scraping-browser fill @e1 "username"
scrapeless-scraping-browser fill @e2 "password"
scrapeless-scraping-browser click @e3
scrapeless-scraping-browser wait --url "**/dashboard"
# For subsequent operations, create a new session
# (Cannot reuse previous session due to connection termination)
scrapeless-scraping-browser create --name "dashboard-session" --ttl 1800
scrapeless-scraping-browser open https://app.example.com/dashboardBetter Alternative: Use TypeScript API for multi-step workflows:
import { BrowserManager } from './dist/browser.js';
const manager = new BrowserManager();
await manager.launch({ id: 'persistent-workflow', action: 'launch' });
const page = manager.getPage();
await page.goto('https://app.example.com/login');
// Login persists throughout the session
await page.fill('#username', 'user');
await page.fill('#password', 'pass');
await page.click('#login');
await page.waitForURL('**/dashboard');
await page.goto('https://app.example.com/profile');
// Session and cookies maintained
await manager.close();scrapeless-scraping-browser config set apiKey your_token
# Use residential proxy from specific country
scrapeless-scraping-browser config set proxyCountry US
scrapeless-scraping-browser open https://example.com
# Use custom proxy
scrapeless-scraping-browser config set proxyUrl "http://user:pass@proxy.com:8080"
scrapeless-scraping-browser open https://example.com
# Use proxy with state and city (v2 API)
scrapeless-scraping-browser config set proxyCountry US
scrapeless-scraping-browser config set proxyState CA
scrapeless-scraping-browser config set proxyCity "Los Angeles"
scrapeless-scraping-browser open https://example.comscrapeless-scraping-browser config set apiKey your_token
# Set browser fingerprint to avoid detection
scrapeless-scraping-browser config set fingerprint chrome
scrapeless-scraping-browser open https://example.com
# Customize browser fingerprint details
scrapeless-scraping-browser config set userAgent "Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X)"
scrapeless-scraping-browser config set platform iOS
scrapeless-scraping-browser config set screenWidth 375
scrapeless-scraping-browser config set screenHeight 812
scrapeless-scraping-browser config set timezone "Asia/Shanghai"
scrapeless-scraping-browser config set languages "zh-CN,en"
scrapeless-scraping-browser open https://example.comscrapeless-scraping-browser config set apiKey your_token
# Enable session recording for debugging
scrapeless-scraping-browser config set sessionRecording true
scrapeless-scraping-browser open https://example.com
# ... perform actions ...
scrapeless-scraping-browser close
# Recording will be available in Scrapeless dashboardNote: Due to session termination behavior, the --session-id parameter has limitations. For reliable multi-session workflows, create separate sessions for each task:
scrapeless-scraping-browser config set apiKey your_token
# Create first session for task A
scrapeless-scraping-browser create --name "task-a" --ttl 1800
scrapeless-scraping-browser open https://site-a.com
# Complete task A operations...
# Create second session for task B
scrapeless-scraping-browser create --name "task-b" --ttl 1800
scrapeless-scraping-browser open https://site-b.com
# Complete task B operations...
# List all running sessions
scrapeless-scraping-browser sessions
# Stop specific session
scrapeless-scraping-browser stop <taskId>
# Stop all sessions
scrapeless-scraping-browser stop-allAlternative: For complex multi-session workflows, use the TypeScript API which supports persistent connections.
Configuration is managed via the config command. All settings are stored in ~/.scrapeless/config.json.
Priority: Config file > Environment variable (only SCRAPELESS_API_KEY supports env var)
Available configuration options:
apiKey - Your Scrapeless API token (required)apiVersion - API version (v1 or v2, default: v2)sessionTtl - Session timeout in secondssessionName - Session name for identificationsessionRecording - Enable session recording (true/false)proxyUrl - Custom proxy URLproxyCountry - Proxy country codeproxyState - Proxy state/provinceproxyCity - Proxy cityfingerprint - Browser fingerprintdebug - Enable debug loggingUse --json for machine-readable output:
scrapeless-scraping-browser snapshot -i --json
scrapeless-scraping-browser get text @e1 --json
scrapeless-scraping-browser is visible @e2 --jsonRefs (@e1, @e2, etc.) are invalidated when the page changes. Always re-snapshot after:
scrapeless-scraping-browser click @e5 # Navigates to new page
scrapeless-scraping-browser snapshot -i # MUST re-snapshot
scrapeless-scraping-browser click @e1 # Use new refsCritical: Scrapeless sessions have specific connection requirements:
# Create and use a session for a single task
scrapeless-scraping-browser create --name "single-task" --ttl 600
scrapeless-scraping-browser open https://example.com
scrapeless-scraping-browser screenshotFor complex workflows requiring multiple steps, use the TypeScript API instead of CLI:
import { BrowserManager } from './dist/browser.js';
const manager = new BrowserManager();
await manager.launch({ id: 'workflow', action: 'launch' });
const page = manager.getPage();
await page.goto('https://example.com');
await page.screenshot({ path: 'step1.png' });
await page.goto('https://another-site.com');
await page.screenshot({ path: 'step2.png' });
await manager.close();The --session-id parameter has limitations due to Scrapeless session behavior:
# This will fail if the session connection was previously closed
scrapeless-scraping-browser --session-id <session-id> open https://example.com
# Error: Session has been terminated and cannot be reconnectedWorkaround: Create new sessions for each workflow instead of reusing session IDs.
Always close sessions when done to avoid leaked resources:
scrapeless-scraping-browser close # Close current session
scrapeless-scraping-browser stop <taskId> # Stop specific session by ID
scrapeless-scraping-browser stop-all # Stop all sessionsCheck running sessions:
scrapeless-scraping-browser sessions
# Returns: sessionId, createdAt, status, sessionNameGet a real-time preview of your browser session via WebSocket:
# Get live preview URL for current session
scrapeless-scraping-browser live
# Get live preview URL for specific session
scrapeless-scraping-browser live abc123def456
# Returns live preview URL for browser viewing
# Open this URL in your browser to view the live sessionFor slow websites, use explicit waits:
# Wait for network activity to settle
scrapeless-scraping-browser wait --load networkidle
# Wait for specific element
scrapeless-scraping-browser wait @e1
# Wait for URL pattern
scrapeless-scraping-browser wait --url "**/dashboard"
# Wait fixed duration (milliseconds)
scrapeless-scraping-browser wait 5000Common errors and solutions:
Authentication Error:
# Make sure API token is set
scrapeless-scraping-browser config set apiKey your_token
# Or use environment variable
export SCRAPELESS_API_KEY=your_tokenSession Not Found:
# Session may have expired, create new one
scrapeless-scraping-browser open https://example.comElement Not Found:
# Re-snapshot to get fresh refs
scrapeless-scraping-browser snapshot -iTimeout:
# Increase session timeout (in seconds)
scrapeless-scraping-browser config set sessionTtl 600
scrapeless-scraping-browser open https://example.comEnable debug mode for detailed logs:
scrapeless-scraping-browser config set debug true
scrapeless-scraping-browser open https://example.comOr use --debug flag:
scrapeless-scraping-browser --debug open https://example.com| Configuration | Description |
|---|---|
apiKey | Your API token (required) |
apiVersion | API version (v1 or v2, default: v2) |
sessionTtl | Session timeout in seconds |
sessionName | Session name for identification |
sessionRecording | Enable session recording (true/false) |
proxyUrl | Custom proxy URL |
proxyCountry | Proxy country code |
proxyState | Proxy state/province |
proxyCity | Proxy city |
fingerprint | Browser fingerprint |
userAgent | Custom user agent string |
platform | Platform type (Windows, Linux, macOS, iOS, Android) |
screenWidth | Screen width in pixels |
screenHeight | Screen height in pixels |
timezone | Timezone (e.g., America/New_York, Asia/Shanghai) |
languages | Comma-separated language codes (e.g., en,zh-CN) |
debug | Enable debug logging |
Set configuration using:
scrapeless-scraping-browser config set <key> <value>Or use environment variable for API key only:
export SCRAPELESS_API_KEY=your_tokenCheck for and install updates:
# Check version
scrapeless-scraping-browser version
# Update via npm
npm update -g scrapeless-scraping-browser-skills© LeoYeAI, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 4 other files (references) in skills/scrapeless-scraping-browser-skill of LeoYeAI/openclaw-master-skills.
Open the folder on GitHubat commit e5199b5
Scrapeless Scraping Browser next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Scrapeless Scraping Browser this skillLeoYeAI/openclaw-master-skills | 2.2k | — | ~6.3k | Automated safety check: Pass | MIT | |
| Browser Harnessdavidondrej/skills | 4.1k | 2 repos | ~3k | Automated safety check: Pass | MIT | |
| Neo4ier/neo | 756 | — | ~1.8k | Automated safety check: Pass | None | |
| Camofox Browserredf0x1/camofox-browser | 412 | — | ~4.6k | Automated safety check: Pass | MIT | |
| Actionbookactionbook/actionbook | 1.6k | — | ~1.5k | Automated safety check: Pass | Apache-2.0 | |
| Browser Automationalirezarezvani/claude-skills | 28k | — | ~3.4k | Automated safety check: Notes | MIT |
davidondrej/skills
Direct browser control via CDP. An agent skill from davidondrej/skills.
4ier/neo
Browse websites, read web pages, interact with web apps, call website APIs, and automate web tasks.
redf0x1/camofox-browser
Anti-detection browser automation for AI agents. An agent skill from redf0x1/camofox-browser.
actionbook/actionbook
Activate when the user needs to interact with any website — browser automation, web scraping, screenshots, form filling, UI testing, monitoring, or building AI agents.
alirezarezvani/claude-skills
A skill your agent uses when the user asks to automate browser tasks, scrape websites, fill forms, capture screenshots, extract structured data from web pages, or build web automation workflows.
xuzhougeng/wisp-science
A skill your agent uses to drive Wisp Browser Runtime sessions (shared daily Chrome or workspace Chrome) — open pages, read them, click, fill and submit forms, navigate, switch tabs, or scrape…
LeoYeAI/openclaw-master-skills
Manages pipelines on a DevOps quality and efficiency platform through its OpenAPI: list workspaces and templates, create, update, run and cancel pipelines, and read run records.
LeoYeAI/openclaw-master-skills
Patches OpenClaw's Feishu extension so an edited document triggers an isolated agent session that reads the doc and replies inline, turning it into a live chat space.
LeoYeAI/openclaw-master-skills
Multi-context memory management system for OpenClaw agents with group-isolated storage, global shared memory, workspace organization, and group-specific skills isolation.
LeoYeAI/openclaw-master-skills
Runs a brand's AI-search visibility work end to end: diagnosing how AI platforms represent it, repositioning it, producing AI-optimized content and monitoring ongoing mentions.
LeoYeAI/openclaw-master-skills
Installs and authenticates the gws CLI, then automates Gmail, Drive, Sheets, Calendar, Docs, Chat and Tasks with ready-made recipes, persona bundles and security audits.
LeoYeAI/openclaw-master-skills
Runs four advisor roles, a fitness coach, nutritionist, data analyst and TCM practitioner, to build a health profile and track workouts, diet and wellness over time.
Cloud browser automation CLI for AI agents powered by Scrapeless. Scrapeless Scraping Browser is an agent skill from LeoYeAI/openclaw-master-skills. Cloud browser automation CLI for AI agents powered by Scrapeless.
Scrapeless Scraping Browser fits situations like: the user needs to interact with websites using cloud browsers; including navigating pages; clicking buttons; taking screenshots.
Run `npx skills add LeoYeAI/openclaw-master-skills --skill scrapeless-scraping-browser -a claude-code`. Or copy the skill folder (skills/scrapeless-scraping-browser-skill in LeoYeAI/openclaw-master-skills) into .claude/skills/scrapeless-scraping-browser in your project. Claude Code loads it when a task matches its description.
Run `npx skills add LeoYeAI/openclaw-master-skills --skill scrapeless-scraping-browser -a codex`. Or copy the skill folder (skills/scrapeless-scraping-browser-skill in LeoYeAI/openclaw-master-skills) into .agents/skills/scrapeless-scraping-browser in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add LeoYeAI/openclaw-master-skills --skill scrapeless-scraping-browser -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/scrapeless-scraping-browser, .gemini/skills/scrapeless-scraping-browser, .github/skills/scrapeless-scraping-browser and .opencode/skills/scrapeless-scraping-browser in your project.
Going by SKILL.md and its folder, Scrapeless Scraping Browser needs the command-line tools its instructions call (jq and npm) and credentials named SCRAPELESS_API_KEY. Our summary lists: Node.js; A credential in SCRAPELESS_API_KEY. Its frontmatter pre-approves these tools: Bash(npx scrapeless-scraping-browser-skills scrapeless-scraping-browser:*), Bash(scrapeless-scraping-browser:*).
SKILL.md names 7 domains. In commands or code: proxy.com, site-a.com, site-b.com and another-site.com; the agent is likely to contact these when it follows the instructions. As links in the text: docs.scrapeless.com, api.scrapeless.com and github.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Scrapeless Scraping Browser is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 6.3k tokens (SKILL.md is roughly 25k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 263 tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Scrapeless Scraping Browser: Browser Harness (davidondrej/skills, 4.1k stars), Neo (4ier/neo, 756 stars), Camofox Browser (redf0x1/camofox-browser, 412 stars) and Actionbook (actionbook/actionbook, 1.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
LeoYeAI (a GitHub user) maintains it in LeoYeAI/openclaw-master-skills, which has 2,161 GitHub stars. The repository holds 1,235 skills in this directory. The repository was last updated on July 20, 2026.
Source: LeoYeAI/openclaw-master-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.