agentleFS
archubbuckarchubbuck/workspace-architect/SKILL.md

browser-automation

Skill19 starsChanged 10 months agoISCView on GitHub

Local Python-based browser automation toolkit using Playwright. Provides command-line tools for navigating, interacting with, and testing web applications without using MCP protocols. Supports clicking, typing, hovering, screenshots, content extraction, and JavaScript execution.

  • Installs packages

We split this skill into the rules it gives an agent

9 rules. 0 are common, 7 are distinctive, and 2 are very specific to this project.

  • 0

    Common

    Most of the 31 edited versions we read keep these.

  • 7

    Distinctive

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    All tools are implemented as subcommands in assets/skills/browser-automation/scripts/browser_tools.py.

    line 22
  2. Distinctive:

    Use robust selectors: Prefer ID selectors (#id) or specific CSS classes

    line 181
  3. Distinctive:

    Error handling: All commands exit with non-zero status on failure and print errors to stderr

    line 182
  4. Distinctive:

    Headless mode: All operations run in headless Chromium by default

    line 183
  5. Distinctive:

    Local execution: All automation runs locally, no remote MCP servers

    line 219
  6. Distinctive:

    If you encounter issues:

    line 224
  7. Very specific:

    Install Playwright browsers: Run playwright install chromium

    line 226
  8. Distinctive:

    Verify URL accessibility: Ensure the target URL is reachable

    line 228
  9. Distinctive:

    Inspect selectors: Use browser DevTools to verify CSS selectors

    line 229

“Common” is measured: kept by at least 6 in 10 of the 31 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Browser Automation Skill

This skill provides local browser automation capabilities using Python and Playwright. All browser automation is performed locally via CLI commands - no MCP servers required.

Prerequisites

Install Playwright Python library:

pip install playwright
playwright install chromium

Available Tools

All tools are implemented as subcommands in assets/skills/browser-automation/scripts/browser_tools.py. Run any command with --help to see detailed usage.

browser_navigate

Navigate to a URL and wait for the page to load.

Usage:

python assets/skills/browser-automation/scripts/browser_tools.py browser_navigate <url>

Example:

python assets/skills/browser-automation/scripts/browser_tools.py browser_navigate https://example.com

browser_click

Click an element on a page using a CSS selector or text match.

Usage:

python assets/skills/browser-automation/scripts/browser_tools.py browser_click <url> <selector> [--text TEXT]

Parameters:

  • url: URL to navigate to
  • selector: CSS selector for the element
  • --text: (Optional) Text to match instead of using selector

Examples:

# Click by selector
python assets/skills/browser-automation/scripts/browser_tools.py browser_click https://example.com "#submit-button"

# Click by text
python assets/skills/browser-automation/scripts/browser_tools.py browser_click https://example.com "button" --text "Submit"

browser_type

Type text into an input field, with optional form submission.

Usage:

python assets/skills/browser-automation/scripts/browser_tools.py browser_type <url> <selector> <text> [--submit]

Parameters:

  • url: URL to navigate to
  • selector: CSS selector for the input field
  • text: Text to type
  • --submit: (Optional) Press Enter after typing

Examples:

# Type into field
python assets/skills/browser-automation/scripts/browser_tools.py browser_type https://example.com "#email" "user@example.com"

# Type and submit
python assets/skills/browser-automation/scripts/browser_tools.py browser_type https://example.com "#search" "query" --submit

browser_screenshot

Capture a screenshot of the current page.

Usage:

python assets/skills/browser-automation/scripts/browser_tools.py browser_screenshot <url> <path> [--full_page]

Parameters:

  • url: URL to navigate to
  • path: Output file path for the screenshot
  • --full_page: (Optional) Capture the entire scrollable page

Examples:

# Viewport screenshot
python assets/skills/browser-automation/scripts/browser_tools.py browser_screenshot https://example.com /tmp/screenshot.png

# Full page screenshot
python assets/skills/browser-automation/scripts/browser_tools.py browser_screenshot https://example.com /tmp/full.png --full_page

browser_get_content

Extract text or HTML content from the page or a specific element.

Usage:

python assets/skills/browser-automation/scripts/browser_tools.py browser_get_content <url> [--selector SELECTOR] [--html]

Parameters:

  • url: URL to navigate to
  • --selector: (Optional) CSS selector, defaults to 'body'
  • --html: (Optional) Return HTML instead of text

Examples:

# Get all page text
python assets/skills/browser-automation/scripts/browser_tools.py browser_get_content https://example.com

# Get specific element text
python assets/skills/browser-automation/scripts/browser_tools.py browser_get_content https://example.com --selector "#main-content"

# Get HTML
python assets/skills/browser-automation/scripts/browser_tools.py browser_get_content https://example.com --selector "article" --html

browser_hover

Hover over an element to trigger hover states or tooltips.

Usage:

python assets/skills/browser-automation/scripts/browser_tools.py browser_hover <url> <selector>

Parameters:

  • url: URL to navigate to
  • selector: CSS selector for the element

Example:

python assets/skills/browser-automation/scripts/browser_tools.py browser_hover https://example.com ".menu-item"

browser_evaluate

Execute custom JavaScript code in the browser context.

Usage:

python assets/skills/browser-automation/scripts/browser_tools.py browser_evaluate <url> <script>

Parameters:

  • url: URL to navigate to
  • script: JavaScript code to execute

Examples:

# Get page title
python assets/skills/browser-automation/scripts/browser_tools.py browser_evaluate https://example.com "document.title"

# Get element count
python assets/skills/browser-automation/scripts/browser_tools.py browser_evaluate https://example.com "document.querySelectorAll('button').length"

# Manipulate DOM
python assets/skills/browser-automation/scripts/browser_tools.py browser_evaluate https://example.com "document.body.style.backgroundColor = 'red'"

Best Practices

  1. Always use full URLs: Include the protocol (http:// or https://)
  2. Wait for content: The tool automatically waits for 'networkidle' state
  3. Use robust selectors: Prefer ID selectors (#id) or specific CSS classes
  4. Error handling: All commands exit with non-zero status on failure and print errors to stderr
  5. Headless mode: All operations run in headless Chromium by default

Common Patterns

Form Automation

# Fill out a multi-field form
python assets/skills/browser-automation/scripts/browser_tools.py browser_type https://example.com "#name" "John Doe"
python assets/skills/browser-automation/scripts/browser_tools.py browser_type https://example.com "#email" "john@example.com"
python assets/skills/browser-automation/scripts/browser_tools.py browser_click https://example.com "#submit"

Visual Testing

# Note: Each command runs in a separate browser instance (stateless).
# The after screenshot won't show the toggled state from the click command.
# For stateful testing, combine actions in a custom Playwright script.

# Capture initial state
python assets/skills/browser-automation/scripts/browser_tools.py browser_screenshot https://example.com /tmp/before.png

# Compare different pages or states (each is independent)
python assets/skills/browser-automation/scripts/browser_tools.py browser_screenshot https://example.com/page1 /tmp/page1.png
python assets/skills/browser-automation/scripts/browser_tools.py browser_screenshot https://example.com/page2 /tmp/page2.png

Content Extraction

# Extract and process page content
python assets/skills/browser-automation/scripts/browser_tools.py browser_get_content https://example.com --selector "article" > article.txt

Architecture

  • Stateless design: Each command launches a new browser instance
  • No persistent sessions: Browser closes after each operation
  • Local execution: All automation runs locally, no remote MCP servers
  • Simple I/O: Results printed to stdout, errors to stderr

Troubleshooting

If you encounter issues:

  1. Install Playwright browsers: Run playwright install chromium
  2. Check Python version: Requires Python 3.8+
  3. Verify URL accessibility: Ensure the target URL is reachable
  4. Inspect selectors: Use browser DevTools to verify CSS selectors

Related Resources

Download now (ZIP)

  • Other versions46 projects use a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 46

    1. zhaoxuya520/reverse-skill-private★ 40ksame name
    2. zhaoxuya520/reverse-skill★ 38ksame name
    3. civitai/civitai★ 7.3ksame name
    4. pierrecomputer/pierre★ 6.4ksame name
    5. coco-research/coco★ 797same name
    6. SHAdd0WTAka/Zen-Ai-Pentest★ 470same name
    7. web-infra-dev/midscene-skills★ 313same name
    8. irahardianto/awesome-agv★ 157same name
    9. cigery-useio/useio-skills★ 103same name
    10. galiprandi/job-seeker★ 64same name

    36 more not listed

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • Used alongsideProjects with it also use api-test-suite-builder, karpathy-coder and 10 more.

    Other files people use alongside this one.

    Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
    • Arnav-0Skill

      api-test-suite-builder

      Use when the user asks to generate API tests, create integration test suites, test REST endpoints, or build contract tests.

      Also in 5 projects that use this

    • csiddhant796-blipSkill

      karpathy-coder

      Use when writing, reviewing, or committing code to enforce Karpathy's 4 coding principles — surface assumptions before coding, keep it simple, make surgical changes, define verifiable goals. Triggers on "review my diff", "check complexity", "am I overcomplicating this", "karpathy check", "before I commit", or any code quality concern where the LLM might be overcoding.

      Also in 4 projects that use this

    • csiddhant796-blipSkill

      self-eval

      Honestly evaluate AI work quality using a two-axis scoring system. Use after completing a task, code review, or work session to get an unbiased assessment. Detects score inflation, forces devil's advocate reasoning, and persists scores across sessions.

      Also in 4 projects that use this

    • Roshu18Skill

      pentest-tools

      Tool selection policy for BearStrike based on target type, scan risk, and signal strength.

      Also in 5 projects that use this

    • Hussain-ElfalahSkill

      ai-act-readiness

      Also in 3 projects that use this

    • Hussain-ElfalahSkill

      andreessen

      Also in 3 projects that use this

    • +6 more from Hussain-Elfalah

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

Reviews can't be read right now.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.