← Back to Skills Marketplace
tylerdotai

Dexter Browser Automation

by Tyler · GitHub ↗ · v2.0.0 · MIT-0
cross-platform ✓ Security Clean
84
Downloads
0
Stars
0
Active Installs
2
Versions
Install in OpenClaw
/install dex-browser
Description
Browser automation via Playwright. Use when pages are JS-rendered, require user interaction (click/fill), or need screenshots. Part of the 3-layer web tool h...
README (SKILL.md)

Browser Automation

When to Use This Skill

Trigger conditions:

  • web_fetch returned empty, garbled, or incomplete content
  • Target page is JavaScript-rendered (React/Vue/Angular SPAs)
  • Need to interact with UI: click buttons, fill forms, navigate flows
  • Need a screenshot of a page's current rendered state
  • Multi-step flows: login → navigate → scrape
  • Extracting structured data from dynamically loaded content

Do NOT use this skill when:

  • Page is static HTML — web_fetch is faster
  • Only need to find a URL — web_search is the right first step
  • You need API data — check if the site has a public API first
  • The page requires authentication you don't have

The 3-Layer Web Tool Hierarchy

Layer 1 — Search:    web_search → find URLs
Layer 2 — Extract:   web_fetch → get page content (static pages only!)
Layer 3 — Interact:  browser.py → JS rendering, interaction, screenshots

Always try Layer 1 and 2 before reaching for browser automation.


Setup Check

python3 skills/browser-automation/scripts/init.py

Should return {"ready": true}. If not, Playwright needs installation.


Scripts

All scripts exit with code 0 on success, 1 on usage error, 2 on browser error.

screenshot.py — Capture a page

python3 skills/browser-automation/scripts/screenshot.py \x3Curl> [path]
# Default path: /tmp/screenshot.png

Returns: {success, saved, title}

scrape.py — Get rendered HTML

python3 skills/browser-automation/scripts/scrape.py \x3Curl>

Returns: {success, title, url, html} (html truncated to 50k chars)

extract.py — Pull structured data

python3 skills/browser-automation/scripts/extract.py \x3Curl> \x3Cselector>

CSS selector targets elements. Extracts up to 50 elements, each with text, href, src, alt.

Returns: {success, count, selector, items[]}

interact.py — Click and fill

# Click
python3 skills/browser-automation/scripts/interact.py click \x3Cselector> [url]

# Fill input
python3 skills/browser-automation/scripts/interact.py fill \x3Cselector> \x3Cvalue> [url]

# Hover
python3 skills/browser-automation/scripts/interact.py hover \x3Cselector> [url]

If url is provided, navigates there first. Returns: {success, action, selector, title, url}


Reference Docs

  • references/selectors.md — CSS selector syntax and common patterns
  • references/patterns.md — Login flows, search pagination, infinite scroll, stealth mode, error recovery

Examples

JS-rendered page (would fail web_fetch)

# web_fetch gives nothing on HN — use extract
python3 scripts/extract.py "https://news.ycombinator.com" ".titleline > a"

Screenshot a page

python3 scripts/screenshot.py "https://site.com/dashboard" "/tmp/dashboard.png"

Form login flow

python3 scripts/interact.py fill "#username" "[email protected]" "https://site.com/login"
python3 scripts/interact.py fill "#password" "secret123"
python3 scripts/interact.py click "button[type=submit]"
python3 scripts/scrape.py "https://site.com/dashboard"

Get structured data from a list

python3 scripts/extract.py "https://jobs.site.com/postings?q=engineer" ".job-listing h2"

Quick Reference

Task Command
Screenshot screenshot.py \x3Curl> [path]
HTML scrape.py \x3Curl>
Data extract.py \x3Curl> \x3Cselector>
Click interact.py click \x3Cselector> [url]
Fill interact.py fill \x3Cselector> \x3Cvalue> [url]
Setup check init.py

Skill Metadata

  • Scripts: init.py, screenshot.py, scrape.py, extract.py, interact.py
  • References: selectors.md, patterns.md
  • Requires: Playwright (pip install playwright && playwright install chromium)
  • Exit codes: 0=success, 1=usage error, 2=browser error
Usage Guidance
This package is coherent for browser automation, but exercise caution before installing or running it: - Run it in a sandbox/container (it launches headless Chromium and uses --no-sandbox and other args). - Audit the code (especially cdp.py's eval path) before using it in production; arbitrary JS evaluation can be used to exfiltrate data or perform actions on pages. - Avoid supplying real credentials to its examples or commands unless you trust the environment and the site; prefer using test accounts. - Install Playwright and browsers in a controlled way as documented, and don't run untrusted pages in the same host session that has sensitive access. - Note provenance: there is no homepage and owner is an opaque ID; if provenance matters, prefer a well-known/verified source or ask the publisher for more details.
Capability Assessment
Purpose & Capability
Name/description promise Playwright-based browser automation and the included scripts (init, screenshot, scrape, extract, interact, cdp) implement that. No unrelated credentials or config paths are requested. The skill does require Playwright and browser binaries (documented in SKILL.md) even though the registry metadata lists no required binaries — a minor metadata mismatch but not inconsistent with purpose.
Instruction Scope
SKILL.md and scripts keep to browser automation tasks (navigation, screenshot, scraping, form interaction). However the code exposes an 'eval' command that runs arbitrary JS in the page context, and the references include 'stealth' techniques (removing navigator.webdriver and special browser args) intended to evade anti-bot checks. Examples also show filling login forms (i.e., handling secrets). These are legitimate for an automation tool but expand the blast radius if misused — arbitrary JS + form-filling can be used to exfiltrate or trigger actions on authenticated sites.
Install Mechanism
There is no automated install spec (instruction-only), which minimizes installer risk. The SKILL.md and init.py require that Playwright be installed (pip install playwright && playwright install chromium). No downloads from untrusted URLs or archived extracts are present in the package.
Credentials
The package does not request environment variables, secrets, or unrelated credentials. The scripts operate using the runtime environment and browser automation only. The examples' use of passwords is illustrative and not a declared secret requirement — users must take care not to pass real credentials to the tool unless intended.
Persistence & Privilege
always:false and user-invocable defaults are in place. The skill does not attempt to modify other skills or global agent configuration and does not request permanent presence or elevated platform privileges.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install dex-browser
  3. After installation, invoke the skill by name or use /dex-browser
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v2.0.0
**Major 2.0.0 update: Switched to a multi-script structure with improved clarity and broader automation commands.** - Broke monolithic script into separate scripts: `screenshot.py`, `scrape.py`, `extract.py`, `interact.py`, and `init.py` - Added reference documentation: `selectors.md` (CSS selector tips) and `patterns.md` (automation patterns/troubleshooting) - Enhanced documentation: clearer layering, usage conditions, expanded examples, quick command table, and error codes - Added initial setup check script (`init.py`) for verifying Playwright installation - Broadened automation: support for click, fill, hover, and expanded structured data extraction (up to 50 items with more properties) - Improved guidance on when and how to use the skill in relation to other web tools
v1.0.0
Initial release of browser-automation skill. - Enables web scraping and UI automation with Playwright, including support for JS-rendered pages and screenshots. - Provides CLI commands for navigation, extracting HTML or structured data, taking screenshots, clicking, filling forms, and running JS. - Designed as the "interact" layer after search and extract skills, ideal for pages requiring interaction or dynamic content. - Includes workflows for common automation tasks (login flows, scraping, screenshots). - Detailed usage tips and anti-patterns to guide responsible and efficient automation.
Metadata
Slug dex-browser
Version 2.0.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 2
Frequently Asked Questions

What is Dexter Browser Automation?

Browser automation via Playwright. Use when pages are JS-rendered, require user interaction (click/fill), or need screenshots. Part of the 3-layer web tool h... It is an AI Agent Skill for Claude Code / OpenClaw, with 84 downloads so far.

How do I install Dexter Browser Automation?

Run "/install dex-browser" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Dexter Browser Automation free?

Yes, Dexter Browser Automation is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Dexter Browser Automation support?

Dexter Browser Automation is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Dexter Browser Automation?

It is built and maintained by Tyler (@tylerdotai); the current version is v2.0.0.

💬 Comments