
Lucas Mitchell
Automation Engineer

When your AI assistant browses the web for you, CAPTCHAs are the number one obstacle. Protected pages block the agent, forms can't be submitted, and tasks stall out waiting for human intervention.
OpenClaw is a personal AI assistant that can browse the web, fill forms, click buttons, and extract data — all through natural language. But like any browser automation, it gets stuck on CAPTCHAs.
CapSolver changes this completely. By loading the CapSolver Chrome extension into OpenClaw's browser, CAPTCHAs are solved automatically and invisibly in the background. No code. No API calls from your side. No changes to how you talk to your AI assistant.
The best part? You don't even need to mention CAPTCHAs to the AI. You just tell it to wait a moment before submitting — and by the time it clicks Submit, the CAPTCHA is already solved.
OpenClaw is a personal AI assistant you run on your own devices. It answers you on the channels you already use — WhatsApp, Telegram, Slack, Discord, Signal, iMessage, Google Chat, Microsoft Teams, and more.

OpenClaw runs a dedicated Chromium browser profile that only the AI agent controls. It's completely isolated from your personal browser. The agent can:
Think of it as giving your AI assistant its own browser window.
CapSolver is a leading CAPTCHA solving service that provides AI-powered solutions for bypassing various CAPTCHA challenges. With support for multiple CAPTCHA types and fast response times, CapSolver integrates seamlessly into automated workflows.
Most CAPTCHA-solving integrations require you to write code — create API calls, poll for results, inject tokens into hidden form fields. That's how it works with tools like Crawlee, Puppeteer, or Playwright.
OpenClaw + CapSolver is fundamentally different:
| Traditional (Code-Based) | OpenClaw (Natural Language) |
|---|---|
Write a CapSolverService class |
Add an extension path to config |
Call createTask() / getTaskResult() |
Just talk to your AI |
Inject tokens via page.$eval() |
The extension handles everything |
| Handle errors, retries, timeouts in code | Tell the AI to "wait 60 seconds, then submit" |
| Different code for each CAPTCHA type | Works for all types automatically |
The key insight: The CapSolver Chrome extension runs inside the agent's browser session. When the agent navigates to a page with a CAPTCHA, the extension detects it, solves it in the background, and injects the token — all before the agent even tries to submit the form.
You just need to give it time. Instead of telling the AI "solve the CAPTCHA", you simply say:
"Go to that page, wait 60 seconds, then click Submit."
That's it. The AI doesn't need to know about CapSolver at all.
Before setting up the integration, make sure you have:
Google Chrome 137+ (released mid-2025) silently removed support for
--load-extensionin branded builds. This means Chrome extensions cannot be loaded in automated sessions using standard Google Chrome. There is no error — the flag is simply ignored.
This affects Google Chrome and Microsoft Edge. You must use one of these alternatives:
| Browser | Extension Loading | Recommended? |
|---|---|---|
| Google Chrome 137+ | Not supported | No |
| Microsoft Edge | Not supported | No |
| Chrome for Testing | Supported | Yes |
| Chromium (standalone) | Supported | Yes |
| Playwright's bundled Chromium | Supported | Yes |
How to install Chrome for Testing:
# Option 1: Via Playwright (recommended)
npx playwright install chromium
# The binary will be at a path like:
# ~/.cache/ms-playwright/chromium-XXXX/chrome-linux64/chrome (Linux)
# ~/Library/Caches/ms-playwright/chromium-XXXX/chrome-mac/Chromium.app/Contents/MacOS/Chromium (macOS)
# Option 2: Via Chrome for Testing direct download
# Visit: https://googlechromelabs.github.io/chrome-for-testing/
# Download the version matching your OS
After installation, note the full path to the binary — you'll need it for the config.
Download the CapSolver Chrome extension and extract it to ~/.openclaw/capsolver-extension/:
CapSolver.Browser.Extension-chrome-vX.X.X.zipmkdir -p ~/.openclaw/capsolver-extension
unzip CapSolver.Browser.Extension-chrome-v*.zip -d ~/.openclaw/capsolver-extension/
ls ~/.openclaw/capsolver-extension/manifest.json
You should see manifest.json — this confirms the extension is in the right place.
Open the extension's config file at ~/.openclaw/capsolver-extension/assets/config.js and replace the apiKey value with your own:
export const defaultConfig = {
apiKey: 'CAP-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', // ← your key here
useCapsolver: true,
// ... rest of config
};
You can get your API key from your CapSolver dashboard.
Edit your OpenClaw config file at ~/.openclaw/openclaw.json to enable the browser and load the extension:
{
"browser": {
"enabled": true,
"executablePath": "/path/to/chrome-for-testing/chrome",
"extensions": [
"~/.openclaw/capsolver-extension"
],
"noSandbox": true,
"defaultProfile": "openclaw"
}
}
Replace /path/to/chrome-for-testing/chrome with the actual path to your Chrome for Testing or Chromium binary. For example:
~/.cache/ms-playwright/chromium-1200/chrome-linux64/chrome~/Library/Caches/ms-playwright/chromium-1200/chrome-mac/Chromium.app/Contents/MacOS/ChromiumNote:
noSandbox: trueis required on most server environments, Docker containers, and CI systems where the Chrome sandbox cannot be initialized. On desktop systems with proper sandboxing, you can omit this.
# If using PM2:
pm2 restart opencrawl --update-env
# If running directly:
openclaw gateway restart
Check the gateway logs to confirm everything loaded correctly:
pm2 logs opencrawl --lines 20 --nostream
You should see these key lines:
[browser/chrome] Loading 1 extension(s)
[browser/chrome] Spawning Chrome: /path/to/chrome-for-testing (args: 15)
Advanced check — verify the extension is active via Chrome DevTools Protocol:
curl -s http://127.0.0.1:8091/json/list
Look for a service_worker entry with chrome-extension:// in the URL:
{
"title": "Service Worker chrome-extension://cnopfoopenkdblckmekkipihdnambjhf/background.js",
"type": "service_worker",
"url": "chrome-extension://cnopfoopenkdblckmekkipihdnambjhf/background.js"
}
If you see this, CapSolver is loaded and running.

This is the most important section. Once setup is complete, using CapSolver with OpenClaw is dead simple.
Don't mention CAPTCHAs or CapSolver to the AI. Just give it time before submitting forms.
The AI agent doesn't need to know about CAPTCHAs. The extension handles everything in the background. All you need to do is include a wait time in your instructions so the extension has time to solve the challenge before the form is submitted.
Send this to your OpenClaw agent (via Discord, WhatsApp, Telegram, or any channel):
Go to https://example.com, wait 60 seconds,
then click Submit and tell me what text appears on the page.
What happens behind the scenes:
Go to https://example.com/login, fill in the email field with
"me@example.com" and the password with "mypassword123",
then wait 30 seconds and click the Sign In button.
Tell me what page loads after signing in.
Open https://example.com/contact, fill in the contact form:
- Name: "John Doe"
- Email: "john@example.com"
- Message: "Hello, I have a question about your services."
Wait 45 seconds, then click Send Message. What confirmation appears?
| CAPTCHA Type | Typical Solve Time | Recommended Wait |
|---|---|---|
| reCAPTCHA v2 (checkbox) | 5-15 seconds | 30-60 seconds |
| reCAPTCHA v2 (invisible) | 5-15 seconds | 30 seconds |
| reCAPTCHA v3 | 3-10 seconds | 20-30 seconds |
| Cloudflare Turnstile | 3-10 seconds | 20-30 seconds |
Tip: When in doubt, use 60 seconds. It's better to wait a bit longer than to submit too early. The extra wait doesn't affect the result.
Here are proven phrasings you can use:
Avoid these — they can confuse the AI or trigger refusals:
For the technically curious, here's what happens when the CapSolver extension is loaded:
Your message OpenClaw Gateway
───────────────────────────────────────────────────
"go to page, ──► AI Agent receives message
wait 60s, submit" │
▼
Browser Tool: navigate to URL
│
▼
Chromium loads the page
┌─────────────────────────────┐
│ Page with reCAPTCHA widget │
│ │
│ CapSolver Extension: │
│ 1. Content script detects │
│ reCAPTCHA on the page │
│ 2. Service worker calls │
│ CapSolver API │
│ 3. Token received │
│ 4. Token injected into │
│ hidden form field │
└─────────────────────────────┘
│
▼
AI Agent waits 60 seconds...
│
▼
Browser Tool: click Submit
│
▼
Form submits WITH valid token
│
▼
"Verification Success!"
When OpenClaw's browser starts, it reads the extensions list from your config and passes each path to Chrome via the --load-extension flag. This is the same mechanism Chrome uses for developer extensions — no special plugin system required.
--load-extension=~/.openclaw/capsolver-extensionHere's a full ~/.openclaw/openclaw.json configuration with the CapSolver extension:
{
"browser": {
"enabled": true,
"executablePath": "/path/to/chrome-for-testing/chrome",
"extensions": [
"~/.openclaw/capsolver-extension"
],
"noSandbox": true,
"defaultProfile": "openclaw"
}
}
| Option | Description |
|---|---|
browser.executablePath |
Path to Chrome for Testing or Chromium binary (required) |
browser.extensions |
Array of extension directory paths to load into Chrome |
browser.noSandbox |
Set to true on servers/Docker (Chrome sandbox requires special kernel capabilities) |
browser.defaultProfile |
Browser profile name (default: "chrome") |
The CapSolver API key is configured directly in the extension's assets/config.js file (see Step 2 above).
Symptom: Gateway logs show Loading 1 extension(s) but no chrome-extension:// targets appear in CDP.
Cause: You're using branded Google Chrome 137+ which silently ignores --load-extension.
Fix: Switch to Chrome for Testing or Chromium. Update browser.executablePath in your config to point to the correct binary.
Verify your Chrome version:
/path/to/your/chrome --version
# Chrome for Testing: "Chromium 143.0.7499.4"
# Branded Chrome: "Google Chrome 143.0.7499.109"
Possible causes:
Symptom: The first browser action after a gateway restart times out, but subsequent actions work.
Cause: Chromium cold start + Playwright CDP connection retries can exceed the 20-second tool timeout on the first attempt.
Fix: This is a known issue. Simply retry the command — the second attempt will succeed since the browser is now warm.
Symptom: After switching from branded Chrome to Chrome for Testing, the browser crashes with disk cache errors.
Cause: The user data directory was created by a different Chrome version and is incompatible.
Fix: Delete the old browser profile and restart:
rm -rf ~/.openclaw/browser/openclaw/user-data
# Then restart the gateway
More wait time is always safer. The CAPTCHA is usually solved in 5-20 seconds, but network latency, complex challenges, or retries can add time. 30-60 seconds is the sweet spot.
Instead of:
"Navigate to URL, wait for captcha solver, then submit"
Use:
"Go to URL, wait about a minute, then submit the form"
Natural phrasing works better with the AI and avoids triggering safety refusals.
Each CAPTCHA solve costs credits. Check your balance at capsolver.com/dashboard regularly to avoid interruptions.
noSandbox on ServersWhen running OpenClaw on a remote server, Docker container, or CI environment, always set noSandbox: true in your browser config. The Chrome sandbox requires special kernel capabilities that aren't available in most server environments.
DISPLAY for Headless ServersChrome extensions require a display, even on headless servers. Use Xvfb to create a virtual display:
# Install Xvfb
sudo apt-get install xvfb
# Start a virtual display
Xvfb :99 -screen 0 1280x720x24 &
# Set DISPLAY for OpenClaw
export DISPLAY=:99
The OpenClaw + CapSolver integration represents a fundamentally new approach to CAPTCHA solving. Instead of writing code to detect CAPTCHAs, call APIs, and inject tokens, you simply:
The CapSolver Chrome extension handles everything else — detecting CAPTCHAs, solving them via the CapSolver API, and injecting tokens into the page. Your AI assistant never needs to know about CAPTCHAs at all.
This is what CAPTCHA solving looks like when you have an AI assistant: invisible, automatic, and zero-code.
Ready to get started? Sign up for CapSolver and use bonus code OPENCLAW for an extra 6% bonus on your first recharge!
No. In fact, you should avoid mentioning CAPTCHAs or CapSolver in your messages. The extension works invisibly in the background. Just include a wait time in your instructions (e.g., "wait 60 seconds, then submit") to give the extension time to solve any CAPTCHAs on the page.
Google Chrome 137+ (released mid-2025) removed support for the --load-extension command-line flag in branded builds. This means Chrome extensions cannot be loaded in automated sessions. You need Chrome for Testing or standalone Chromium, which still support this flag.
CapSolver supports reCAPTCHA v2 (checkbox and invisible), reCAPTCHA v3, Cloudflare Turnstile, AWS WAF CAPTCHA and more. The Chrome extension automatically detects the CAPTCHA type and solves it accordingly.
CapSolver offers competitive pricing based on CAPTCHA type and volume. Visit capsolver.com for current pricing.
OpenClaw is open-source and free to run on your own hardware. You'll need API keys for the AI model provider of your choice and, for CAPTCHA solving, a CapSolver account with credits.
For most CAPTCHAs, 30-60 seconds is sufficient. The actual solve time is usually 5-20 seconds, but adding extra buffer ensures reliability. When in doubt, use 60 seconds.
Yes. You'll need Xvfb (X Virtual Framebuffer) for the display since Chrome extensions require a display context. Set DISPLAY=:99 and run Xvfb :99 in the background. Also set noSandbox: true in your browser config.
Discover the best AI for solving image puzzles. Learn how CapSolver's Vision Engine and ImageToText APIs automate complex visual challenges with high accuracy.

Learn how search API tools, knowledge supply chains, SERP API workflows, and AI data pipelines shape modern web data infrastructure for AI.
