Control a real Chromium browser via browseros-cli. Run commands via Bash. Use --json for structured output, -p to target specific tabs.
curl/wget suffices.snap, text, links, pages, ss.eval unless no simpler command works.browseros-cli close .# 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
Every interaction follows this loop:
[10] textbox "Email", [15] button "Submit".fill 10 "text", click 15).Critical rules:
open = new tab. nav = navigate current tab.snap again.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 "user@example.com"
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
| Category | Key Commands |
|---|---|
| ---------- | ------------- |
| Navigate | open , open --hidden, nav , back, forward, reload, pages, active, close [id] |
| Observe | snap, snap -e, text, text --selector , text --links, text --viewport, links, ss -o , ss --full, eval ", dom, dom-search ", wait --text " |
| Input | click , click --double, fill , clear , key Enter, hover , focus , check , uncheck , select , scroll down [amt], drag , upload , dialog accept/dismiss |
| Export | pdf , download |
| Resources | window 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 .
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
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
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"
| Mistake | Fix |
|---|---|
| --------- | ----- |
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 navigation | IDs are invalidated by DOM changes — snap again |
Using eval to extract text | Use text or text --selector instead — lower tokens, structured output |
| Forgetting to close tabs | Always close when done to avoid resource leaks |
Using nav when you want a new tab | nav replaces the current tab. Use open for a new tab |
Using open when you want to stay in the same tab | open creates a new tab. Use nav to navigate in place |
| Taking screenshots for content extraction | Use text for content — screenshots burn tokens and need vision |
Using dialog --accept (flag syntax) | Correct syntax is dialog accept or dialog dismiss (positional arg) |
| Reference | Description |
|---|---|
| ----------- | ------------- |
| references/cli-commands.md | Full command reference with all flags |
共 1 个版本