vibe-check
Vibium Browser Automation — CLI Reference
The vibium CLI automates Chrome via the command line. The browser auto-launches on first use (daemon mode keeps it running between commands).
vibium navigate <url> → vibium text → vibium screenshot -o shot.png
Binary Resolution
Before running any commands, resolve the vibium binary path once:
- Try
vibiumdirectly (works if globally installed vianpm install -g vibium) - Fall back to
./clicker/bin/vibium(dev environment, in project root) - Fall back to
./node_modules/.bin/vibium(local npm install)
Run vibium --help (or the resolved path) to confirm. Use the resolved path for all subsequent commands.
Windows note: Use forward slashes in paths (e.g. ./clicker/bin/vibium.exe) and quote paths containing spaces.
Commands
Navigation
vibium navigate <url>— go to a pagevibium url— print current URLvibium title— print page title
Reading Content
vibium text— get all page textvibium text "<selector>"— get text of a specific elementvibium html— get page HTML (use--outerfor outerHTML)vibium find "<selector>"— element info (tag, text, bounding box)vibium find-all "<selector>"— all matching elements (--limit N)vibium eval "<js>"— run JavaScript and print resultvibium screenshot -o file.png— capture screenshot
Interaction
vibium click "<selector>"— click an elementvibium type "<selector>" "<text>"— type into an inputvibium hover "<selector>"— hover over an elementvibium scroll [direction]— scroll page (--amount N,--selector)vibium keys "<combo>"— press keys (Enter, Control+a, Shift+Tab)vibium select "<selector>" "<value>"— pick a dropdown option
Waiting
vibium wait "<selector>"— wait for element (--state visible|hidden|attached,--timeout ms)
Tabs
vibium tabs— list open tabsvibium tab-new [url]— open new tabvibium tab-switch <index|url>— switch tabvibium tab-close [index]— close tab
Daemon
vibium daemon start— start background browservibium daemon status— check if runningvibium daemon stop— stop daemon
Global Flags
| Flag | Description |
|---|---|
--headless |
Hide browser window |
--json |
Output as JSON |
--oneshot |
One-shot mode (no daemon) |
-v, --verbose |
Debug logging |
--wait-open N |
Wait N seconds after navigation |
--wait-close N |
Keep browser open N seconds before closing |
Daemon vs Oneshot
By default, commands connect to a daemon — a background process that keeps the browser alive between commands. This is fast and lets you chain commands against the same page.
Use --oneshot (or VIBIUM_ONESHOT=1) to launch a fresh browser for each command, then tear it down. Useful for CI or one-off scripts.
Common Patterns
Read a page:
vibium navigate https://example.com
vibium text
Fill a form:
vibium navigate https://example.com/login
vibium type "input[name=email]" "user@example.com"
vibium type "input[name=password]" "secret"
vibium click "button[type=submit]"
Extract structured data:
vibium navigate https://example.com
vibium eval "JSON.stringify([...document.querySelectorAll('a')].map(a => a.href))"
Multi-tab workflow:
vibium tab-new https://docs.example.com
vibium text "h1"
vibium tab-switch 0
Tips
- All click/type/hover actions auto-wait for the element to be actionable
- Use
vibium findto inspect an element before interacting - Use
vibium text "<selector>"to read specific sections vibium evalis the escape hatch for complex DOM queries- Screenshots save to the current directory by default (
-oto change)