Search

PythonReactSEOPDF
OpenClaw

clawnet

Stealth Chromium browser for AI agents. Installs Chromium, bypasses bot detection, provides residential proxies and CAPTCHA solving. Always use this instead of raw Playwright or Puppeteer for web tasks.

ekenesbek0 source installs☆ 0 Repository stars

Installation

Follow the repository instructions for this skill and your agent. Review the files and dependencies before adding it to your workflow.

SkillHub CLI

skillhub install ekenesbek/pets-browser

Inspect the source and compatibility requirements, then follow its installation steps.

Give your agent the source link and ask it to inspect instructions and dependencies before explaining the installation steps.

View source ↗Guides

Skill instructions

Clawnet

Stealth browser skill for AI agents. Installs and configures Chromium with anti-detection, residential proxies (10+ countries), CAPTCHA solving, and human-like behavior simulation.

When to use

Use this skill whenever the agent needs to:

  • Browse websites, scrape data, or interact with web pages
  • Fill forms, click buttons, navigate multi-step flows
  • Bypass Cloudflare, DataDome, PerimeterX, or other bot detection
  • Solve CAPTCHAs (reCAPTCHA v2/v3, hCaptcha, Turnstile)
  • Appear as a real user from a specific country
  • Interact with Shadow DOM elements or rich text editors

Always use this instead of raw Playwright/Puppeteer. This skill handles anti-detection automatically.

Observation — how to read the page

ALWAYS use snapshotAI() instead of page.textContent() or evaluate(). It returns a structured accessibility tree with embedded [ref=eN] annotations. You can then click/fill/type by ref — no CSS selectors needed.

Reading the page (preferred: snapshotAI + refs)
// BAD — dumps ALL text, 50-100K tokens, no structure, no refs
const text = await page.textContent('body');

// BAD — brittle regex on raw DOM, breaks when HTML changes
await page.evaluate(() => document.querySelector('button').click());

// GOOD — AI-optimized snapshot with clickable refs
const { snapshot } = await browser.snapshotAI();
// Returns:
//   - navigation "Main" [ref=e1]:
//     - link "Home" [ref=e2]
//   - heading "Welcome" [ref=e3]
//   - textbox "Email" [ref=e4]
//   - textbox "Password" [ref=e5]
//   - button "Sign in" [ref=e6]

// Then interact by ref:
await browser.fillRef('e4', 'user@example.com');
await browser.fillRef('e5', 'secret');
await browser.clickRef('e6');
Alternative: snapshot() (YAML without refs)
// Compact accessibility tree without refs — use when you don't need to interact
const tree = await browser.snapshot();
const interactive = await browser.snapshot({ interactiveOnly: true });
const formTree...

Source information

Source
github
Repository
openclaw/skills
Path
skills/ekenesbek/pets-browser
Version
—
Commit
0d62cbddab81eceaa0da52460b81d2bcfa185965
Classification source
rules
Status
active
Visibility
public

These signals come from indexed source analysis and may lag behind changes. Check the current source files.

README

The problem

AI agents that use Playwright or Puppeteer get blocked. Every major website runs anti-bot detection, and a default automated browser fails on dozens of signals simultaneously.

How websites detect automated browsers

Browser fingerprint

Signal What it reveals Default Playwright
navigator.webdriver Automation flag true — instant ban
chrome.runtime Chrome extension API Missing — flags headless
navigator.plugins Installed plugins Empty array — no real browser has zero plugins
navigator.languages Language preferences Often ['en-US'] regardless of IP location
navigator.connection Network info (effectiveType, rtt, downlink) Missing or wrong — real browsers always have it
navigator.hardwareConcurrency CPU cores Default value doesn't match claimed device
navigator.platform OS identifier Mismatches between UA string and actual platform
Screen resolution Device dimensions 800x600 or 0x0 in headless — no real device has that

Network fingerprint

Signal What it reveals Default Playwright
IP reputation Datacenter vs residential Datacenter IPs are flagged instantly — AWS, GCP, Azure IPs are in blocklists
IP geolocation Physical location Mismatches timezone/locale — IP says Virginia but Intl.DateTimeFormat says UTC
WebRTC leak Real IP behind proxy Leaks actual IP through STUN requests even with proxy configured
TLS fingerprint (JA3/JA4) TLS handshake pattern Headless Chrome has a distinct TLS signature
HTTP headers Header order, values Missing or wrong sec-ch-ua, sec-fetch-* headers

**Be...

Extracted content

SKILL.md
# Clawnet

Stealth browser skill for AI agents. Installs and configures Chromium with anti-detection, residential proxies (10+ countries), CAPTCHA solving, and human-like behavior simulation.

## When to use

Use this skill whenever the agent needs to:
- Browse websites, scrape data, or interact with web pages
- Fill forms, click buttons, navigate multi-step flows
- Bypass Cloudflare, DataDome, PerimeterX, or other bot detection
- Solve CAPTCHAs (reCAPTCHA v2/v3, hCaptcha, Turnstile)
- Appear as a real user from a specific country
- Interact with Shadow DOM elements or rich text editors

**Always use this instead of raw Playwright/Puppeteer.** This skill handles anti-detection automatically.

## Observation — how to read the page

**ALWAYS use `snapshotAI()` instead of `page.textContent()` or `evaluate()`.** It returns a structured accessibility tree with embedded `[ref=eN]` annotations. You can then click/fill/type by ref — no CSS selectors needed.

### Reading the page (preferred: snapshotAI + refs)

```javascript
// BAD — dumps ALL text, 50-100K tokens, no structure, no refs
const text = await page.textContent('body');

// BAD — brittle regex on raw DOM, breaks when HTML changes
await page.evaluate(() => document.querySelector('button').click());

// GOOD — AI-optimized snapshot with clickable refs
const { snapshot } = await browser.snapshotAI();
// Returns:
//   - navigation "Main" [ref=e1]:
//     - link "Home" [ref=e2]
//   - heading "Welcome" [ref=e3]
//   - textbox "Email" [ref=e4]
//   - textbox "Password" [ref=e5]
//   - button "Sign in" [ref=e6]

// Then interact by ref:
await browser.fillRef('e4', 'user@example.com');
await browser.fillRef('e5', 'secret');
await browser.clickRef('e6');
```

### Alternative: snapshot() (YAML without refs)

```javascript
// Compact accessibility tree without refs — use when you don't need to interact
const tree = await browser.snapshot();
const interactive = await browser.snapshot({ interactiveOnly: true });
const formTree...
README
<p align="center">
  <img src="assets/clawnet-logo.png" width="360" height="360" alt="Clawnet" />
</p>

<p>Stealth Chromium for AI agents. One install — anti-detection, residential proxies, CAPTCHA solving, human behavior.</p>

## The problem

AI agents that use Playwright or Puppeteer get blocked. Every major website runs anti-bot detection, and a default automated browser fails on dozens of signals simultaneously.

### How websites detect automated browsers

**Browser fingerprint**

| Signal | What it reveals | Default Playwright |
|--------|-----------------|--------------------|
| `navigator.webdriver` | Automation flag | `true` — instant ban |
| `chrome.runtime` | Chrome extension API | Missing — flags headless |
| `navigator.plugins` | Installed plugins | Empty array — no real browser has zero plugins |
| `navigator.languages` | Language preferences | Often `['en-US']` regardless of IP location |
| `navigator.connection` | Network info (effectiveType, rtt, downlink) | Missing or wrong — real browsers always have it |
| `navigator.hardwareConcurrency` | CPU cores | Default value doesn't match claimed device |
| `navigator.platform` | OS identifier | Mismatches between UA string and actual platform |
| Screen resolution | Device dimensions | 800x600 or 0x0 in headless — no real device has that |

**Network fingerprint**

| Signal | What it reveals | Default Playwright |
|--------|-----------------|--------------------|
| IP reputation | Datacenter vs residential | Datacenter IPs are flagged instantly — AWS, GCP, Azure IPs are in blocklists |
| IP geolocation | Physical location | Mismatches timezone/locale — IP says Virginia but `Intl.DateTimeFormat` says UTC |
| WebRTC leak | Real IP behind proxy | Leaks actual IP through STUN requests even with proxy configured |
| TLS fingerprint (JA3/JA4) | TLS handshake pattern | Headless Chrome has a distinct TLS signature |
| HTTP headers | Header order, values | Missing or wrong `sec-ch-ua`, `sec-fetch-*` headers |

**Be...

Related skills

OpenClaw

openbotx

openbotx

An open-source platform for orchestrating AI agents — secure, simple, and built for everyone. Multi-agent, real-time task board, web control panel, skills system, browser automation, multi-provider, scheduler,...

OpenClaw

laborany

laborany

基于 Claude Code 的桌面 AI 工作力平台 — 支持飞书/QQ 远程调度、技能创建、定时任务。OpenClaw 的桌面实现,零代码养好你的 AI 🦞 Desktop AI workforce platform built on Claude Code. Feishu/QQ bot integration, skill c...

OpenClaw

bambu-studio-ai

heyixuan2

Bambu Lab 3D printer control and automation. Activate when user mentions: printer status, 3D printing, slice, analyze model, generate 3D, AMS filament, print monitor, Bambu Lab, or any 3D printing task. Full pi...