openclaw-skill/SKILL.md
Stop your AI agent from getting blocked. Aluvia routes traffic through real US mobile carrier IPs (AT&T, T-Mobile, Verizon) so websites treat your agent like a human. Bypasses Cloudflare, DataDome, PerimeterX, Akamai Bot Manager, and other anti-bot systems automatically. Use when your agent hits 403 Forbidden, Cloudflare challenges, CAPTCHAs, rate limits (429), IP bans, empty responses, or WAF blocks. Features auto block detection and bypass, one-command IP rotation, US geo-targeting, dynamic proxy routing rules, and managed headless Chromium via Playwright — all through a JSON-first CLI built for AI agents.
npx skillsauth add aluvia-connect/aluvia-skills aluviaInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Your OpenClaw agent gets blocked because anti-bot systems are built to stop cloud-based agent/bot traffic with datacenter IP addresses. You get 403 Forbidden, CAPTCHAs, 429 rate limits, IP bans, empty responses.
Aluvia routes your agent's traffic through real US mobile carrier IPs — the same IPs used by millions of real people on their phones. Websites cannot distinguish your agent from a legitimate user browsing on a mobile device.
Aluvia's proxies + Playwright + Chrome stack: detects website blocks and routes your agent's traffic through a clean mobile IP when necessary. All automatically. All without proxy configs. All without building custom routing rules.
--auto-unblock, blocks are remediated automatically by rerouting through proxy and reloading.API key: The user must set ALUVIA_API_KEY from dashboard.aluvia.io. If unset, stop and tell the user to set it — do not run Aluvia commands until it is set. Never log or expose the key value.
CLI: Install @aluvia/cli globally:
npm install -g @aluvia/cli
Or run without a global install (use npx aluvia for every command):
npx aluvia help --json
npm install playwright
Verify: aluvia help --json and node -e "require('playwright')".
0 = success, 1 = error. Errors return {"error": "message"}.exec tool, close when done.blocked >= 0.7, suspected >= 0.4, clear < 0.4.--auto-unblock handles most blocks automatically by adding hostnames to proxy rules and reloading.Before using any command, verify the environment:
# 1. Check API key is set (never log the full value)
echo "${ALUVIA_API_KEY:0:8}..."
# 2. Verify the CLI binary is available
aluvia help --json
# 3. Verify Playwright is installed (required for browser sessions)
node -e "require('playwright')"
If the API key is missing, stop and tell the user to set ALUVIA_API_KEY from the Aluvia dashboard. Do not proceed until they confirm it is set. If aluvia is not found, run npm install -g @aluvia/cli (see Installation) or use npx aluvia <command>. If Playwright is missing, run npm install playwright.
| Command | Purpose | Common Usage |
| --------------------------- | ------------------------------------------------------- | ----------------------------------------------------------------------------------- |
| session start <url> | Launch a headless browser session | aluvia session start https://example.com --auto-unblock --browser-session my-task |
| session close | Stop a running session | aluvia session close --browser-session my-task |
| session list | List all active sessions | aluvia session list |
| session get | Get session details + block detection + connection info | aluvia session get --browser-session my-task |
| session rotate-ip | Rotate to a new upstream IP | aluvia session rotate-ip --browser-session my-task |
| session set-geo <geo> | Target IPs from a specific US region | aluvia session set-geo us_ca --browser-session my-task |
| session set-rules <rules> | Add hostnames to proxy routing | aluvia session set-rules "example.com,api.example.com" --browser-session my-task |
| account | Show account info and balance | aluvia account |
| account usage | Show bandwidth usage stats | aluvia account usage |
| geos | List available geo-targeting regions | aluvia geos |
| help | Show help (use --json for structured output) | aluvia help --json |
Always use --browser-session to name your session. Always use --auto-unblock unless you need manual block control.
aluvia session start https://example.com --auto-unblock --browser-session my-task
The start command returns:
{
"browserSession": "my-task",
"pid": 12345,
"startUrl": "https://example.com",
"cdpUrl": "http://127.0.0.1:38209",
"connectionId": 3449,
"blockDetection": true,
"autoUnblock": true
}
Save browserSession — you need it for every subsequent command.
If the agent uses the OpenClaw browser tool: create a remote CDP profile with this session's cdpUrl and use that profile for all browser commands. See OpenClaw browser integration.
Check session status including the latest block detection result:
aluvia session get --browser-session my-task
Look at the lastDetection object in the response. If blockStatus is "blocked" and --auto-unblock is on, the SDK already handled it. If blocks persist, escalate:
aluvia session rotate-ip --browser-session my-task
Returns a new sessionId (UUID). The next request through the proxy uses a fresh IP.
Some sites serve different content or apply different blocks by region:
aluvia session set-geo us_ca --browser-session my-task
If your agent navigates to new domains that need proxying, add them dynamically:
aluvia session set-rules "newsite.com,api.newsite.com" --browser-session my-task
Rules are appended to existing rules (not replaced).
Always close your session. Sessions consume resources until explicitly closed.
aluvia session close --browser-session my-task
Follow these rules in every interaction:
session close. If uncertain whether a session exists, run session list first.ALUVIA_API_KEY by name only. Never log, print, or include its value in output.aluvia account and inspect balance_gb before long scraping tasks.--auto-unblock. Let the SDK handle block detection and remediation automatically. Only disable it when you need manual control over routing decisions.--headful for debugging. Headless is faster and uses fewer resources.error field and handle it — do not blindly retry.--browser-session <name> to avoid ambiguity errors when multiple sessions run.session close --all as a last resort.For detailed command specs, workflows, and troubleshooting:
tools
Stop AI agents from getting blocked on the web. Routes traffic through real mobile carrier IPs (e.g. US carriers AT&T, T-Mobile, Verizon) so sites treat automation like a human. Bypasses Cloudflare, DataDome, PerimeterX, Akamai, and similar anti-bot systems. Use when hitting 403 Forbidden, Cloudflare challenges, CAPTCHAs, rate limits (429), IP bans, WAF blocks, empty responses, or when websites detect and block automated traffic. JSON-first CLI with auto block detection, IP rotation, global geo-targeting (185+ countries), dynamic proxy rules, and headless Chromium via Playwright/CDP.
development
Scrapes a webpage and saves it as a clean Markdown file with frontmatter. Use when the user provides a URL and wants to scrape, save, archive, or convert a page to Markdown. Triggers on "scrape this", "save this page", "convert to markdown", "download docs from", or any URL with intent to save.
development
Unblock web requests using Aluvia mobile carrier proxies. Use when hitting 403 Forbidden, Cloudflare challenges, CAPTCHAs, rate limits (429), IP bans, WAF blocks, empty responses, or when websites detect and block automated traffic. Routes traffic through real US mobile carrier IPs (AT&T, T-Mobile, Verizon) so websites treat your agent like a human.
development
Unblock web requests using Aluvia mobile carrier proxies. Use when hitting 403 Forbidden, Cloudflare challenges, CAPTCHAs, rate limits (429), IP bans, WAF blocks, empty responses, or when websites detect and block automated traffic. Routes traffic through real US mobile carrier IPs (AT&T, T-Mobile, Verizon) so websites treat your agent like a human.