mcpField
B
browseros

browseros

github.com/browseros-aiProductivity17135 installsUpdated 30w ago
Repository

About browseros

The browseros skill explains how to control a real Chromium browser with browseros-cli, covering page inspection, interaction, extraction, and exports. It is for agents that automate browser tasks or test web apps.

Key features

  1. 01Open, navigate, and manage tabs
  2. 02Inspect page text, links, and elements
  3. 03Interact using element IDs
  4. 04Export PDFs and download files
  5. 05Workflows for multi-tab research and testing

Use cases

  1. 01Fill out and submit web forms
  2. 02Extract text or tables from pages
  3. 03Review multiple websites in parallel
  4. 04Check a local web app interface

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/browseros-ai/skills --skill browseros

After installing, type/browserosin Claude Code to confirm it loaded.

Bundled filesreferences/cli-commands.md

Details

From the project README

Browser Automation with BrowserOS

Control a real Chromium browser via browseros-cli. Run commands via Bash. Use --json for structured output, -p <pageId> to target specific tabs.

When NOT to Use

  • Headless scraping in CI/CD with no display — use Playwright or Puppeteer instead.
  • Static page fetching where curl/wget suffices.

Safety Defaults

  • Default to read-only first: snap, text, links, pages, ss.
  • Avoid eval unless no simpler command works.
  • Save screenshots/PDFs only to user-specified or workspace paths.
  • Close tabs when done: browseros-cli close <pageId>.

Setup

# Check if CLI is available
browseros-cli --version

# If not installed:
npm install -g browseros-cli

# If BrowserOS app is not installed:
browseros-cli install

# If BrowserOS is not running:
browseros-cli launch

# Configure connection:
browseros-cli init --auto

# Verify:
browseros-cli health

Core Workflow: snap → act → re-snap

Every interaction follows this loop:

  1. Open a page → get a page ID.
  2. Snap → get element IDs like [10] textbox "Email", [15] button "Submit".
  3. Act on elements by ID (fill 10 "text", click 15).
  4. Re-snap after ANY click, navigation, or form submit — IDs change after DOM updates.

Critical rules:

  • open <url> = new tab. nav <url> = navigate current tab.
  • NEVER reuse element IDs after navigation — always snap again.
  • Use text for content extraction, snap for interaction, ss for visual verification.
browseros-cli open https://example.com/login    # → Page ID: 5
browseros-cli snap -p 5                          # → [10] textbox "Email", [11] textbox "Password", [15] button "Sign In"
browseros-cli fill 10 "[email protected]"
browseros-cli fill 11 "password123"
browseros-cli click 15
browseros-cli snap -p 5                          # Re-snap! IDs have changed after submit
browseros-cli text -p 5                          # Read result page
browseros-cli close 5                            # Clean up

Commands Quick Reference

CategoryKey Commands
Navigateopen <url>, open --hidden, nav <url>, back, forward, reload, pages, active, close [id]
Observesnap, snap -e, text, text --selector <css>, text --links, text --viewport, links, ss -o <path>, ss --full, eval "<js>", dom, dom-search "<q>", wait --text "<txt>"
Inputclick <id>, click --double, fill <id> "text", clear <id>, key Enter, hover <id>, focus <id>, check <id>, uncheck <id>, select <id> "val", scroll down [amt], drag <id> --to <id>, upload <id> <file>, dialog accept/dismiss
Exportpdf <path>, download <id> <dir>
Resourceswindow list/create/close/activate, bookmark list/search/create/remove/update/move, history recent/search/delete, group list/create/update/ungroup/close

Full flags and options: see references/cli-commands.md or run browseros-cli <command> --help.

Common Patterns

Data extraction
browseros-cli open https://example.com/data
browseros-cli text                         # full page as markdown
browseros-cli text --selector "table"      # scoped to element
browseros-cli text --links                 # include hyperlinks
Multi-tab research
browseros-cli open https://site-a.com      # → Page ID: 1
browseros-cli open https://site-b.com      # → Page ID: 2
browseros-cli text -p 1                    # extract from first
browseros-cli text -p 2                    # extract from second
browseros-cli close 1 && browseros-cli close 2
Web app testing
browseros-cli open http://localhost:3000
browseros-cli snap                         # get interactive elements
browseros-cli ss -o test-state.png         # visual snapshot
browseros-cli eval "document.querySelectorAll('.error').length"

Common Mistakes

MistakeFix
Using CSS selectors (fill --selector "input[type=email]")Always snap first, then use element IDs (fill 10 "text")
Reusing element IDs after a click or navigationIDs are invalidated by DOM changes — snap again
Using eval to extract textUse text or text --selector instead — lower tokens, structured output
Forgetting to close tabsAlways close <pageId> when done to avoid resource leaks
Using nav when you want a new tabnav replaces the current tab. Use open for a new tab
Using open when you want to stay in the same tabopen creates a new tab. Use nav to navigate in place
Taking screenshots for content extractionUse text for content — screenshots burn tokens and need vision
Using dialog --accept (flag syntax)Correct syntax is dialog accept or dialog dismiss (positional arg)

Deep-Dive Documentation

ReferenceDescription
references/cli-commands.mdFull command reference with all flags

Links

Comments

Markdown supported