QA Engineer Skills 2026QA-2026Vibium CLI Command Reference: All 22 Commands In Depth

Vibium CLI Command Reference: All 22 Commands In Depth

Installation

npm install -g vibium
npx skills add https://github.com/VibiumDev/vibium --skill vibe-check

Chrome downloads automatically on first use. No manual browser setup required.


Navigation Commands

vibe-check navigate <url>

Go to a page. Waits for the page to reach a "loaded" state.

vibe-check navigate https://example.com
vibe-check navigate https://app.example.com/dashboard

# With wait after navigation (useful for SPAs that load asynchronously)
vibe-check navigate https://app.example.com --wait-open 3

Edge cases:

  • Relative URLs are not supported — always use full URLs
  • If navigation fails (DNS, timeout), the command exits with a non-zero code
  • For SPAs, the page may "load" before JavaScript renders content — use --wait-open or vibe-check wait afterward

vibe-check url

Print the current page URL. Useful for verification after redirects.

vibe-check url
# → https://example.com/

vibe-check title

Print the page title (<title> element content).

vibe-check title
# → Example Domain

Content Reading Commands

vibe-check text

Get all visible text from the page. Strips HTML, returns plain text.

vibe-check text
# → "Example Domain\nThis domain is for use in illustrative examples..."

# Get text of a specific element
vibe-check text "h1"
# → "Example Domain"

vibe-check text ".error-message"
# → "Invalid credentials"

When to use: Verifying page content, reading error messages, extracting data for assertions. This is the primary tool for the agent to "see" what's on the page.

vibe-check html

Get page HTML. Defaults to innerHTML, use --outer for outerHTML.

vibe-check html
# → full page HTML

vibe-check html --outer
# → includes the root element tags

When to use: When you need the actual DOM structure, not just text. Useful for debugging layout issues or finding selectors.

vibe-check find "<selector>"

Get detailed info about a single element: tag name, text content, bounding box coordinates.

vibe-check find "button.submit"
# → { tag: "button", text: "Submit", x: 200, y: 450, width: 120, height: 40 }

When to use: Before interacting with an element — verify it exists and check its properties. The bounding box is useful for understanding layout.

vibe-check find-all "<selector>"

Find all matching elements. Use --limit N to cap results.

vibe-check find-all "a"
# → List of all links on the page

vibe-check find-all ".product-card" --limit 5
# → First 5 product cards

When to use: Exploring page structure, counting elements, building lists of items to iterate over.

vibe-check eval "<javascript>"

Run arbitrary JavaScript in the page context. Print the return value.

# Get all link URLs as JSON
vibe-check eval "JSON.stringify([...document.querySelectorAll('a')].map(a => a.href))"

# Check localStorage
vibe-check eval "localStorage.getItem('auth_token')"

# Get computed style
vibe-check eval "getComputedStyle(document.querySelector('.alert')).backgroundColor"

# Count table rows
vibe-check eval "document.querySelectorAll('table tbody tr').length"

When to use: The "escape hatch" for anything the other commands can't do. Complex DOM queries, JavaScript state inspection, computed values. Very powerful but requires CSS/JS knowledge.

vibe-check screenshot -o file.png

Capture a viewport screenshot as PNG.

vibe-check screenshot -o before-login.png
vibe-check screenshot -o after-login.png

When to use: Visual verification, debugging (see the page state when something fails), building test evidence. Screenshots save to current directory by default.


Interaction Commands

vibe-check click "<selector>"

Click an element. Auto-waits for the element to be actionable (visible, stable, receives events, enabled).

vibe-check click "button[type=submit]"
vibe-check click "#login-btn"
vibe-check click "a[href='/dashboard']"

How it works internally:

  1. Polls for element existence (up to 30s)
  2. Runs all five actionability checks
  3. Gets element bounding box
  4. Calculates center coordinates
  5. Sends BiDi input.performActions with pointer move + click

vibe-check type "<selector>" "<text>"

Type text into an input element. Auto-waits for actionability + editability.

vibe-check type "input[name=email]" "user@example.com"
vibe-check type "#password" "secret123"
vibe-check type "textarea.comment" "This is my comment"

Important: This types character by character, triggering keydown, keypress, input, and keyup events — just like a real user. It does NOT just set the value property.

vibe-check hover "<selector>"

Hover over an element. Triggers mouseenter/mouseover events.

vibe-check hover ".dropdown-trigger"
# → dropdown menu appears
vibe-check click ".dropdown-item:first-child"

When to use: Dropdown menus, tooltips, hover states that reveal content.

vibe-check scroll [direction]

Scroll the page or a specific element.

vibe-check scroll down
vibe-check scroll up
vibe-check scroll down --amount 500        # pixels
vibe-check scroll down --selector ".panel"  # scroll within element

vibe-check keys "<combo>"

Press keyboard keys. Supports modifiers and key names.

vibe-check keys "Enter"
vibe-check keys "Control+a"          # Select all
vibe-check keys "Shift+Tab"          # Reverse tab
vibe-check keys "Control+Shift+k"    # Custom shortcut
vibe-check keys "Escape"             # Close dialog

Key names: Enter, Tab, Escape, Backspace, Delete, ArrowUp, ArrowDown, ArrowLeft, ArrowRight, Home, End, PageUp, PageDown, Control, Shift, Alt, Meta

vibe-check select "<selector>" "<value>"

Pick a dropdown (<select>) option by value.

vibe-check select "#country" "US"
vibe-check select "select[name=role]" "admin"

Waiting Commands

vibe-check wait "<selector>"

Wait for an element to reach a specific state.

# Wait for element to be visible (default)
vibe-check wait ".modal"

# Wait for element to disappear
vibe-check wait ".loading-spinner" --state hidden

# Wait for element to exist in DOM (even if not visible)
vibe-check wait "#data-loaded" --state attached

# Custom timeout
vibe-check wait ".slow-content" --timeout 60000  # 60 seconds

States:

State Meaning
visible (default) Element exists and is visible
hidden Element doesn't exist or is not visible
attached Element exists in DOM (may or may not be visible)

Tab Commands

vibe-check tabs

List all open tabs with their index and URL.

vibe-check tabs
# → 0: https://example.com (active)
# → 1: https://docs.example.com

vibe-check tab-new [url]

Open a new tab, optionally navigating to a URL.

vibe-check tab-new
vibe-check tab-new https://docs.example.com

vibe-check tab-switch <index|url>

Switch to a tab by its index or URL.

vibe-check tab-switch 0
vibe-check tab-switch https://docs.example.com

vibe-check tab-close [index]

Close a tab. Defaults to current tab.

vibe-check tab-close
vibe-check tab-close 1

Daemon Commands

vibe-check daemon start

Start the background daemon. The daemon keeps Chrome running between commands for faster execution.

vibe-check daemon status

Check if the daemon is running.

vibe-check daemon stop

Stop the daemon and close the browser.


Global Flags

Flag Description Example
--headless Hide browser window vibe-check navigate https://example.com --headless
--json Output as JSON vibe-check find "h1" --json
--oneshot One-shot mode (no daemon) vibe-check navigate https://example.com --oneshot
-v, --verbose Debug logging vibe-check click "button" -v
--wait-open N Wait N seconds after navigation vibe-check navigate https://spa.example.com --wait-open 3
--wait-close N Keep browser open N seconds before closing Useful for debugging

Common Test Automation Patterns

Login Flow

vibe-check navigate https://app.example.com/login
vibe-check type "input[name=email]" "test@example.com"
vibe-check type "input[name=password]" "TestPass123"
vibe-check click "button[type=submit]"
vibe-check wait "h1"  # Wait for dashboard to load
vibe-check text "h1"  # Verify: "Welcome, Test User"

Form Validation

vibe-check navigate https://app.example.com/register
vibe-check click "button[type=submit]"              # Submit empty form
vibe-check text ".error"                              # Read error messages
vibe-check screenshot -o validation-errors.png

Data Extraction

vibe-check navigate https://app.example.com/users
vibe-check eval "JSON.stringify([...document.querySelectorAll('tr')].map(r => r.textContent))"

Multi-Page Flow

vibe-check navigate https://shop.example.com
vibe-check click ".product:first-child a"
vibe-check click "#add-to-cart"
vibe-check navigate https://shop.example.com/cart
vibe-check text ".cart-total"
vibe-check click "#checkout"