chrome-use
Use chrome-use when standard web access (fetch/web search) fails due to Cloudflare challenges, CAPTCHAs, JavaScript-rendered content, or bot detection — or when you need to interact with a site (click, fill, scroll, login). Controls a real Chrome browser via the Chrome debugger API to bypass anti-bot.
Install via CLI (Recommended)
clawhub install openclaw/skills/skills/cnlangzi/chrome-useChrome Use OpenClaw Skill
Control your local Chrome browser via chrome.debugger API using a Chrome extension. Provides Playwright-like functionality with full browser control using your existing Chrome profile, with improved stealth against bot detection.
How to Use (Read First)
⚠️ Non-Headless Mode Required
Do NOT use headless Chrome. Cloudflare and anti-bot systems detect and block headless browsers. Always launch Chrome with the built-in launchChrome() method. If running in a headless environment (no display), Chrome must still be launched in non-headless mode — the extension and debugger API require it.
⚠️ Initialization Sequence
The extension requires 15 seconds to initialize after Chrome starts. Calling connect() too early will fail.
// Import from ./index.js (relative path, NOT 'chrome-use')
import { connect, navigate, evaluate, click, fill, screenshot, disconnect } from './index.js';
import { launchChrome } from './index.js';
// Step 1: Launch Chrome with extension
await launchChrome();
// Step 2: Wait 15 seconds for extension service worker to initialize
await new Promise(r => setTimeout(r, 15000));
// Step 3: Connect to Chrome
await connect();
// Step 4: Use
await navigate('https://example.com');
// ... do things ...
// Disconnect when done
disconnect();
When implementing: always use the built-in launchChrome() function — never spawn Chrome yourself or use other launch methods.
Rules
- Always import from
./index.js(relative path), NOT from'chrome-use' - Do NOT run
google-chromeorchromiumcommands directly - Do NOT use CDP protocol or
chrome.debuggerdirectly - Always wait 15 seconds after
launchChrome()before callingconnect() - Chrome can be running already —
launchChrome()will open a new window if Chrome is already running - If port 9224 is in use: run
fuser -k 9224/tcpfirst
Features
- Stealth First: Uses
chrome.debuggerAPI via extension to evade anti-bot detection (Cloudflare, reCAPTCHA, fingerprinting) - Auto WebSocket Server: Automatically starts and manages WebSocket server for extension communication
- Real Browser Rendering: Access JavaScript-rendered content and SPAs that standard search cannot
- Direct Search Engine Access: Query Google, Bing, etc. as a real user - returns unfiltered, real-time results
- Full Browser Control - Navigate, click, fill, hover, scroll, screenshot, execute JavaScript
- Tab Management - List, create, close, and switch tabs
- Cross-Platform - Supports macOS, Windows, and Linux
Installation (One-time)
Chrome extension must be installed manually (one-time):
- Open Chrome →
chrome://extensions/ - Enable "Developer mode" (toggle in top right)
- Click "Load unpacked"
- Select the
extension/folder in the skill directory
After this, the extension loads automatically every time Chrome starts — no need to reload it each session.
Metadata
Not sure this is the right skill?
Describe what you want to build — we'll match you to the best skill from 16,000+ options.
Find the right skillPaste this into your clawhub.json to enable this plugin.
{
"plugins": {
"official-cnlangzi-chrome-use": {
"enabled": true,
"auto_update": true
}
}
}Related Skills
Kimi Use
Skill by cnlangzi
minimax-use
MiniMax AI tools for web search, image analysis, LLM chat, and language translation. Use when you need to search the web, analyze images, generate text with LLMs, or translate between languages.
aliyun-use
Aliyun Bailian(百炼) for LLM chat, and language translation. Use when you need to generate code, generate text with LLMs, or translate between languages.