← All skills
Tencent SkillHub Β· Developer Tools

Browser Automation Ultra

Zero-token browser automation via Playwright scripts with CDP lock management and human-like interaction. Use when: (1) automating any browser-based workflow...

skill openclawclawhub Free
0 Downloads
0 Stars
0 Installs
0 Score
High Signal

Zero-token browser automation via Playwright scripts with CDP lock management and human-like interaction. Use when: (1) automating any browser-based workflow...

⬇ 0 downloads β˜… 0 stars Unverified but indexed

Install for OpenClaw

Quick setup
  1. Download the package from Yavira.
  2. Extract the archive and review SKILL.md first.
  3. Import or place the package into your OpenClaw setup.

Requirements

Target platform
OpenClaw
Install method
Manual import
Extraction
Extract archive
Prerequisites
OpenClaw
Primary doc
SKILL.md

Package facts

Download mode
Yavira redirect
Package format
ZIP package
Source platform
Tencent SkillHub
What's included
SKILL.md, references/anti-detection.md, scripts/browser-lock.sh, scripts/examples/publish-behance.js, scripts/examples/publish-deviantart.js, scripts/examples/publish-pinterest.js

Validation

  • Use the Yavira download entry.
  • Review SKILL.md after the package is downloaded.
  • Confirm the extracted package contains the expected setup assets.

Install with your agent

Agent handoff

Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.

  1. Download the package from Yavira.
  2. Extract it into a folder your agent can access.
  3. Paste one of the prompts below and point your agent at the extracted folder.
New install

I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.

Upgrade existing

I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.

Trust & source

Release facts

Source
Tencent SkillHub
Verification
Indexed source record
Version
1.0.0

Documentation

ClawHub primary doc Primary doc: SKILL.md 16 sections Open source page

Browser Automation Ultra

Explore β†’ Record β†’ Replay β†’ Fix. Convert expensive browser-tool interactions into zero-token Playwright scripts that reuse OpenClaw's Chrome session (cookies/login intact).

Prerequisites

Install Playwright (once per machine): npm install -g playwright # or in workspace: npm init -y && npm install playwright No browser download needed β€” scripts connect to OpenClaw's existing Chrome via CDP.

Architecture

Chrome user-data: ~/.openclaw/browser/openclaw/user-data ↕ shared cookies/login (mutually exclusive CDP) β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ browser tool β”‚ OR β”‚ Playwright script β”‚ β”‚ (explore) β”‚ β”‚ (zero token) β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ↕ managed by browser-lock.sh Only one CDP client can connect at a time. browser-lock.sh handles the mutex.

Setup

Copy scripts/browser-lock.sh to your workspace scripts/ directory Copy scripts/utils/human-like.js to your workspace scripts/browser/utils/ chmod +x scripts/browser-lock.sh Create scripts/browser/ for your automation scripts

1. Explore (browser tool, costs tokens)

Use the OpenClaw browser tool (snapshot/act) to figure out a workflow. Note selectors, page flow, key waits.

2. Record (write a Playwright script)

Convert steps into a script. Save to scripts/browser/<verb>-<target>.js. Use the template pattern: const { chromium } = require('playwright'); const { humanDelay, humanClick, humanType, humanThink, humanBrowse } = require('./utils/human-like'); function discoverCdpUrl() { try { const { execSync } = require('child_process'); const ps = execSync("ps aux | grep 'remote-debugging-port' | grep -v grep", { encoding: 'utf8' }); const match = ps.match(/remote-debugging-port=(\d+)/); return `http://127.0.0.1:${match ? match[1] : '18800'}`; } catch { return 'http://127.0.0.1:18800'; } } async function main() { const browser = await chromium.connectOverCDP(discoverCdpUrl()); const context = browser.contexts()[0]; // reuse existing context (cookies/login) const page = await context.newPage(); try { // automation here β€” use human-like functions await page.goto('https://example.com', { waitUntil: 'networkidle', timeout: 30000 }); await humanBrowse(page); // simulate looking at the page await humanClick(page, 'button.submit'); await humanType(page, 'input[name="title"]', 'Hello World'); } finally { await page.close(); // NEVER browser.close() β€” kills entire Chrome } } main().then(() => process.exit(0)).catch(e => { console.error('❌', e.message); process.exit(1); });

3. Replay (zero tokens)

./scripts/browser-lock.sh run scripts/browser/my-task.js [args] ./scripts/browser-lock.sh run --timeout 120 scripts/browser/my-task.js

4. Fix (on error)

Read script error output Re-explore the failing step with browser tool (snapshot) to check current UI Update script with corrected selectors/logic Retry Never guess fixes blindly. Always re-explore the actual page state.

browser-lock.sh

Manages CDP mutex between OpenClaw browser and Playwright scripts. ./scripts/browser-lock.sh run <script.js> [args] # acquire β†’ run β†’ release (300s default) ./scripts/browser-lock.sh run --timeout 120 <script> # custom timeout ./scripts/browser-lock.sh acquire # manual: stop OpenClaw browser, start Chrome ./scripts/browser-lock.sh release # manual: kill Chrome, release lock ./scripts/browser-lock.sh status # show state Lock file: /tmp/openclaw-browser.lock. Stale locks auto-recover.

Anti-Detection Rules (MANDATORY)

All scripts must use human-like.js. See references/anti-detection.md for the full rule set. Summary of critical rules: ❌ Bannedβœ… RequiredwaitForTimeout(3000) fixed delayshumanDelay(2000, 4000) random rangeinput.fill(text) instant fillhumanType(page, sel, text) char-by-char with typoselement.click() teleport clickhumanClick(page, sel) bezier mouse path + hoverDirect page operation after loadhumanBrowse(page) simulate reading firstnativeSetter.call() DOM injectionhumanType() or humanFillContentEditable()Fixed cron schedulejitterWait(1, 10) random offset Exception: setInputFiles() for file uploads is allowed (no human simulation possible), but add random delays before/after.

human-like.js API

FunctionPurposehumanDelay(min, max)Random wait (ms)humanThink(min, max)Longer pause before form fillshumanClick(page, sel)Bezier mouse move β†’ hover β†’ click with press/release jitterhumanType(page, sel, text, opts)Char-by-char typing, normal distribution speed, 3% typo ratehumanFillContentEditable(page, sel, text)For contenteditable divs (line-by-line Enter + humanType)humanBrowse(page, opts)Simulate page reading (scroll + mouse wander, 2-5s)humanScroll(page, opts)Random scroll with occasional reversejitterWait(minMin, maxMin)Random delay in minutes for cron tasks

Script Naming Convention

<verb>-<target>.js β€” e.g. publish-deviantart.js, read-inbox.js, reply-comment.js

Example Scripts

Production-tested scripts in scripts/examples/. Copy to your workspace scripts/browser/ and adapt. ScriptPlatformFunctionpublish-deviantart.jsDeviantArtUpload image, fill title/desc/tags, submitpublish-xiaohongshu.js小纒书Publish image note with topic tag association via recommend listpublish-pinterest.jsPinterestCreate pin with title/desc, select boardpublish-behance.jsBehanceUpload project with title/desc/tags/categoriesread-proton-latest.jsProton MailRead inbox, output JSON list of emailsread-xhs-comments.js小纒书Read notification comments, output JSON with reply button indexreply-xhs-comment.js小纒书Reply to a specific comment by index Usage pattern: # Copy examples to workspace cp scripts/examples/*.js scripts/browser/ cp scripts/utils/human-like.js scripts/browser/utils/ # Run ./scripts/browser-lock.sh run scripts/browser/publish-deviantart.js image.png "Title" "Description" "tag1,tag2" ./scripts/browser-lock.sh run scripts/browser/read-xhs-comments.js --limit 10 ./scripts/browser-lock.sh run scripts/browser/reply-xhs-comment.js 0 "ε›žε€ζ–‡ε­—" All example scripts already use human-like.js for anti-detection.

Cron Integration

cd /path/to/workspace && ./scripts/browser-lock.sh run scripts/browser/task.js Add jitterWait() at script start to randomize execution time.

Troubleshooting

ProblemFixLock held by PID xxx./scripts/browser-lock.sh releaseCDP connection timeoutEnsure acquire was called / Chrome is runningLogin expiredUse browser tool to re-login, then run scriptSelector not foundRe-explore with browser tool, update scriptScript timeoutIncrease with --timeout flag

Environment Variables

VarDefaultDescriptionCDP_PORTauto-discoverOverride CDP portCHROME_BINauto-detectChrome binary pathHEADLESSautotrue/false to force headless

Category context

Code helpers, APIs, CLIs, browser automation, testing, and developer operations.

Source: Tencent SkillHub

Largest current source with strong distribution and engagement signals.

Package contents

Included in package
4 Scripts2 Docs
  • SKILL.md Primary doc
  • references/anti-detection.md Docs
  • scripts/browser-lock.sh Scripts
  • scripts/examples/publish-behance.js Scripts
  • scripts/examples/publish-deviantart.js Scripts
  • scripts/examples/publish-pinterest.js Scripts