Awesome-openclaw-skills verify-on-browser
Control browser via Chrome DevTools Protocol - full CDP access
install
source · Clone the upstream repo
git clone https://github.com/sundial-org/awesome-openclaw-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/sundial-org/awesome-openclaw-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/verify-on-browser" ~/.claude/skills/sundial-org-awesome-openclaw-skills-verify-on-browser && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/sundial-org/awesome-openclaw-skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/verify-on-browser" ~/.openclaw/skills/sundial-org-awesome-openclaw-skills-verify-on-browser && rm -rf "$T"
manifest:
skills/verify-on-browser/SKILL.mdsource content
Browser Control Skill
Use the
browser MCP server to control a browser with full CDP access. The core cdp_send tool can call ANY Chrome DevTools Protocol method.
Available Tools
cdp_send
- Raw CDP Access
cdp_sendCall any CDP method directly:
cdp_send(method: "Domain.method", params: {...})
screenshot
- Capture Page
screenshotscreenshot(format: "png"|"jpeg", fullPage: true|false)
get_url
- Current URL
get_urlget_url()
close_browser
- Close Browser
close_browserclose_browser()
Common CDP Operations
Navigation
// Navigate to URL cdp_send(method: "Page.navigate", params: { url: "https://example.com" }) // Reload cdp_send(method: "Page.reload") // Go back/forward cdp_send(method: "Page.navigateToHistoryEntry", params: { entryId: 1 })
DOM Manipulation
// Get document root cdp_send(method: "DOM.getDocument") // Query selector (needs nodeId from getDocument) cdp_send(method: "DOM.querySelector", params: { nodeId: 1, selector: "h1" }) // Get outer HTML cdp_send(method: "DOM.getOuterHTML", params: { nodeId: 5 }) // Set attribute cdp_send(method: "DOM.setAttributeValue", params: { nodeId: 5, name: "class", value: "new-class" })
JavaScript Execution
// Evaluate expression cdp_send(method: "Runtime.evaluate", params: { expression: "document.title" }) // Evaluate with return value cdp_send(method: "Runtime.evaluate", params: { expression: "document.querySelectorAll('a').length", returnByValue: true }) // Call function on object cdp_send(method: "Runtime.callFunctionOn", params: { objectId: "...", functionDeclaration: "function() { return this.innerText; }" })
Network
// Enable network tracking (required first) cdp_send(method: "Network.enable") // Set cookies cdp_send(method: "Network.setCookie", params: { name: "session", value: "abc123", domain: ".example.com" }) // Get cookies cdp_send(method: "Network.getCookies") // Clear cache cdp_send(method: "Network.clearBrowserCache") // Set extra headers cdp_send(method: "Network.setExtraHTTPHeaders", params: { headers: { "X-Custom": "value" } }) // Block URLs cdp_send(method: "Network.setBlockedURLs", params: { urls: ["*.ads.com"] })
Input Simulation
// Click (dispatch mouse event) cdp_send(method: "Input.dispatchMouseEvent", params: { type: "mousePressed", x: 100, y: 200, button: "left", clickCount: 1 }) // Type text cdp_send(method: "Input.insertText", params: { text: "Hello world" }) // Key press cdp_send(method: "Input.dispatchKeyEvent", params: { type: "keyDown", key: "Enter" })
Emulation
// Set viewport cdp_send(method: "Emulation.setDeviceMetricsOverride", params: { width: 375, height: 812, deviceScaleFactor: 3, mobile: true }) // Set geolocation cdp_send(method: "Emulation.setGeolocationOverride", params: { latitude: 37.7749, longitude: -122.4194, accuracy: 100 }) // Set timezone cdp_send(method: "Emulation.setTimezoneOverride", params: { timezoneId: "America/New_York" })
Performance & Debugging
// Enable performance metrics cdp_send(method: "Performance.enable") // Get metrics cdp_send(method: "Performance.getMetrics") // Start profiler cdp_send(method: "Profiler.start") // Stop and get profile cdp_send(method: "Profiler.stop") // Enable debugger cdp_send(method: "Debugger.enable") // Set breakpoint cdp_send(method: "Debugger.setBreakpointByUrl", params: { lineNumber: 10, url: "https://example.com/script.js" })
Storage
// Get local storage cdp_send(method: "DOMStorage.getDOMStorageItems", params: { storageId: { securityOrigin: "https://example.com", isLocalStorage: true } }) // Clear storage cdp_send(method: "Storage.clearDataForOrigin", params: { origin: "https://example.com", storageTypes: "all" })
CDP Protocol Reference
For complete list of all domains and methods: https://chromedevtools.github.io/devtools-protocol/
Common domains:
- Page - Navigation, lifecycle, PDF generation
- DOM - Document structure manipulation
- CSS - Stylesheet manipulation
- Runtime - JavaScript execution
- Network - Request/response interception
- Input - Keyboard/mouse simulation
- Emulation - Device/viewport simulation
- Debugger - JavaScript debugging
- Performance - Performance metrics
- Storage - localStorage, IndexedDB, cookies