| name | browser |
| description | Control a Chromium browser via CDP. Use when automating web browsing, scraping pages, testing web apps, monitoring network traffic, or interacting with page elements. |
| compatibility | Requires Chromium/Chrome installed and the browser CLI in PATH. |
| metadata | {"author":"browser-cli","version":"1.0"} |
Browser CLI Skill
Control a Chromium browser via CDP. Install: https://github.com/camhahu/browser
curl -fsSL https://raw.githubusercontent.com/camhahu/browser/main/packages/cli/install.sh | bash
Core Loop
browser open https://example.com
browser click l3
browser text ".product-list"
browser stop
Prefer text over screenshots. Text is faster and more reliable. Use screenshots only when visual layout matters.
Commands
browser open <url>
browser navigate <url>
browser back / forward / refresh
browser stop
browser click <selector>
browser type <text> [selector]
browser hover <selector>
browser drag <source> <target>
browser select <selector> <value>
browser scroll <target>
browser outline
browser text [selector]
browser screenshot [name]
browser tabs
browser use <tab-id>
browser close [tab-id]
browser console
browser network
browser eval <js>
Navigation commands (open, click, navigate, back, forward, refresh) show an outline after completing.
For debugging or user intervention, start a headed browser with browser start --headed.
For software rendering, use browser start --headless --software-rendering. To pass through Chrome flags like Docker's --no-sandbox, use browser start --chrome-arg --no-sandbox.
Run browser --help for full command list.
Outline
Outline shows interactive elements with labels:
[l1] link "Products" [href=/products]
[l2] link "About" [href=/about]
[b3] button "Sign up"
[i4] input [type=email] [placeholder="Email"]
Selectors
browser click l3
browser click "Sign up"
browser click ".btn-primary"
CSS selectors: #id, .class, tag, [attr=value], parent > child
Persistent Profile
Logins, cookies, and browsing data are preserved across sessions in ~/.browser/profile/.
browser config clear-profile
browser config set persistentProfile false