browser-use

This skill enables browsing websites and interacting with web pages using Playwright.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "browser-use" with this command: npx skills add kudosx/claude-skill-browser-use/kudosx-claude-skill-browser-use-browser-use

Browser Use Skill

Overview

This skill enables browsing websites and interacting with web pages using Playwright.

Quick Start - Use Scripts

Important: All uv run commands must be executed from the scripts folder (not the project root):

cd .claude/skills/browser-use/scripts

=== MANUAL BROWSING (opens browser for user interaction) ===

Open browser for manual use (waits for user to close)

uv run browser.py open https://example.com --wait 60 uv run browser.py open https://example.com --account myaccount --wait 120

=== AUTOMATION (headless, returns content) ===

Navigate to a URL and get content

uv run browser.py auto https://example.com uv run browser.py auto https://example.com --account myaccount

Take a screenshot

uv run browser.py screenshot https://example.com -o screenshot.png

Extract text from a page

uv run browser.py text https://example.com --selector "h1"

Get all links from a page

uv run browser.py links https://example.com

Save page as PDF

uv run browser.py pdf https://example.com -o page.pdf

Download a file by clicking a download link

uv run browser.py download https://example.com/downloads "a.download-btn" -o ~/Downloads

Upload file(s) to a page

uv run browser.py upload https://example.com/upload "input[type=file]" myfile.pdf uv run browser.py upload https://example.com/upload "input[type=file]" file1.txt file2.txt --submit "button[type=submit]"

Upload via file chooser dialog (for dynamic inputs)

uv run browser.py upload-chooser https://example.com/upload "button.upload-trigger" myfile.pdf

Click an element

uv run browser.py click https://example.com "button.submit"

Fill an input field and press Enter

uv run browser.py fill https://google.com "input[name=q]" "search term" --press Enter

Extract attribute from elements

uv run browser.py extract https://example.com "img" --attr src --all

Image Download Commands

Download images from websites with optimized performance:

cd .claude/skills/browser-use/scripts

Download images directly from src attribute

uv run browser.py download-images https://example.com "img.gallery" -n 10 -o ./images

Download from Google Images (19x faster with regex extraction)

uv run browser.py download-from-gallery
"https://www.google.com/search?q=keyword&tbm=isch&tbs=isz:l"
"div[data-id] img"
"img[jsname='kn3ccd']"
-n 100
-o ~/Downloads
-a myaccount

Search Google Images with size filter

uv run browser.py google-image "landscape wallpaper" -n 50 -o ~/Downloads -s Large

Download 4K images (3840px+ minimum)

uv run browser.py google-image "wallpaper" -n 20 -o ~/Downloads -s 4k

Download FullHD images (1920px+ minimum)

uv run browser.py google-image "wallpaper" -n 50 -o ~/Downloads -s fullhd

Google Images Size Filters

CLI size options (filters by minimum dimension):

  • -s 4k

  • 3840px minimum (4K resolution)

  • -s fullhd

  • 1920px minimum (Full HD)

  • -s Large

  • 1000px minimum

  • -s Medium

  • 400px minimum

  • -s Icon

  • No minimum

Google URL params (used internally):

  • tbs=isz:l

  • Large images

  • tbs=isz:m

  • Medium images

  • tbs=isz:i

  • Icon size

YouTube Commands

Search and download YouTube videos with duration and date filtering:

cd .claude/skills/browser-use/scripts

Search YouTube and get video URLs (returns JSON)

uv run browser.py youtube-search "python tutorial" -n 10 uv run browser.py youtube-search "lofi music" -n 5 -o results.json -s screenshot.png

Search with duration filter (4-20 minutes)

uv run browser.py youtube-search "lofi music" -n 5 -min 4 -max 20

Search videos from the last week

uv run browser.py youtube-search "news" -n 10 -t week

Search with custom date range (YYYYMMDD format)

uv run browser.py youtube-search "tutorial" -n 10 -df 20240101 -dt 20241231

Download a single video by URL

uv run browser.py youtube-download "https://www.youtube.com/watch?v=dQw4w9WgXcQ" -o ~/Downloads

Download with quality options

uv run browser.py youtube-download "https://youtube.com/watch?v=..." -q 720p -o ~/Downloads uv run browser.py youtube-download "https://youtube.com/watch?v=..." -q 1080p -o ~/Downloads

Download audio only (mp3)

uv run browser.py youtube-download "https://youtube.com/watch?v=..." -a -o ./music

Search and download in one command

uv run browser.py youtube-download "lofi hip hop" --search -o ~/Downloads uv run browser.py youtube-download "python tutorial" --search -n 3 -o ~/Downloads

Search and download with duration filter (4-20 min videos only)

uv run browser.py youtube-download "lofi music" --search -n 5 -min 4 -max 20 -o ~/Downloads

Search and download videos from a date range

uv run browser.py youtube-download "tutorial" --search -n 5 -df 20240101 -dt 20241231 -o ~/Downloads

YouTube Duration Filters

  • -min N

  • Minimum duration in minutes

  • -max N

  • Maximum duration in minutes

  • Filters use YouTube URL parameters for speed, with Python-side validation as backup

YouTube Date Filters

  • -t, --upload-date

  • Filter by upload date: hour , today , week , month , year

  • -df, --date-from

  • Custom date range start (YYYYMMDD format, e.g., 20240101)

  • -dt, --date-to

  • Custom date range end (YYYYMMDD format, e.g., 20241231)

YouTube Quality Options

  • best

  • Best available quality (default)

  • 1080p

  • 1080p or lower

  • 720p

  • 720p or lower

  • 480p

  • 480p or lower

  • 360p

  • 360p or lower

  • audio

  • Best audio only

YouTube Search Output Format

[ { "url": "https://www.youtube.com/watch?v=...", "title": "Video Title", "channel": "Channel Name", "duration": "10:30", "views": "1.2M views", "date": "2024-12-01" } ]

TikTok Commands

IMPORTANT: TikTok blocks headless browsers. Use --no-headless for search operations.

cd .claude/skills/browser-use/scripts

Login and save session for authenticated operations

uv run browser.py tiktok-login -a mytiktok uv run browser.py tiktok-login -a mytiktok -w 180 # Extended wait for 2FA

Search videos (--no-headless required for TikTok)

uv run browser.py tiktok-search "keyword" -n 10 --no-headless uv run browser.py tiktok-search "#dance" -n 5 --no-headless # By hashtag uv run browser.py tiktok-search "cooking" -n 10 -a mytiktok --no-headless # With account

Download single video

uv run browser.py tiktok-download "https://tiktok.com/@user/video/123" -o ~/Downloads

Search and download

uv run browser.py tiktok-download "funny cats" --search -n 5 -o ~/Downloads --no-headless uv run browser.py tiktok-download "#cooking" --search -n 10 -o ~/Downloads -p 3 --no-headless

TikTok Search Output Format

[ { "url": "https://www.tiktok.com/@user/video/123456789", "title": "Video description...", "author": "username", "views": "1.2M", "likes": "50K", "date": "2d ago" } ]

Authentication

Save and reuse login sessions across browser commands. Uses Chrome with stealth mode to bypass automation detection (works with Google, etc.):

Run from scripts folder

cd .claude/skills/browser-use/scripts

Step 1: Create a login session (opens Chrome for manual login)

Browser will open maximized - login manually then CLOSE THE BROWSER when done

uv run browser.py create-login https://gemini.google.com/app --account myaccount

Options:

--wait, -w Seconds to wait for login (default: 120)

--channel, -c Browser: chrome, msedge, chromium (default: chrome)

Step 2: List saved accounts

uv run browser.py accounts

Step 3: Use saved account with commands

Manual browsing (opens browser for user interaction)

uv run browser.py open https://gemini.google.com/app --account myaccount

Automation (headless, returns content)

uv run browser.py auto https://gemini.google.com/app --account myaccount uv run browser.py screenshot https://gemini.google.com/app -o gemini.png --account myaccount

Storage Location

Authentication is stored in user's home directory ~/.auth/ :

~/.auth/ ├── account-name.json # Storage state (cookies, localStorage) └── profiles/ └── account-name/ # Persistent browser profile

This location is shared across all projects and not committed to git.

Best Practices

  • Use headless=True for automation tasks

  • Use headless=False when debugging or when visual confirmation is needed

  • Always close the browser after use

  • Use specific selectors (id, data-testid) over generic ones when possible

  • Add appropriate waits for dynamic content

  • Handle timeouts gracefully with try/except blocks

Common Selectors

  • By ID: #element-id

  • By class: .class-name

  • By text: text=Button Text

  • By role: role=button[name="Submit"]

  • By CSS: div.container > p.content

  • By XPath: xpath=//div[@class='item']

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

browser-use

Automates browser interactions for web testing, form filling, screenshots, and data extraction. Use when the user needs to navigate websites, interact with web pages, fill forms, take screenshots, or extract information from web pages.

Repository Source
50.4K81.1Kbrowser-use
General

remote-browser

No summary provided by upstream source.

Repository SourceNeeds Review
General

browser use

No summary provided by upstream source.

Repository SourceNeeds Review
General

browser-use

No summary provided by upstream source.

Repository SourceNeeds Review