vibium
v26.2.28
Published
Browser automation for AI agents and humans
Maintainers
Readme
Vibium
Browser automation for AI agents and humans.
Installation
npm install vibiumThis automatically downloads Chrome for Testing on first install.
Quick Start
Async API
import { browser } from 'vibium'
import { writeFile } from 'fs/promises'
const bro = await browser.launch()
const vibe = await bro.page()
await vibe.go('https://example.com')
const link = await vibe.find('a')
console.log(await link.text())
await link.click()
const screenshot = await vibe.screenshot()
await writeFile('screenshot.png', screenshot)
await bro.close()Sync API
const { browser } = require('vibium/sync')
const { writeFileSync } = require('fs')
const bro = browser.launch()
const vibe = bro.page()
vibe.go('https://example.com')
const link = vibe.find('a')
console.log(link.text())
link.click()
const screenshot = vibe.screenshot()
writeFileSync('screenshot.png', screenshot)
bro.close()API Reference
browser.launch(options?)
Launch a new browser session. Returns a Browser.
const bro = await browser.launch({ headless: true })| Option | Type | Default | Description |
|--------|------|---------|-------------|
| headless | boolean | false | Run without visible window |
bro.page()
Get the default page (tab).
const vibe = await bro.page()vibe.go(url)
Navigate to a URL.
await vibe.go('https://example.com')vibe.find(selector, options?)
Find an element by CSS selector.
const button = await vibe.find('button.submit')| Option | Type | Default | Description |
|--------|------|---------|-------------|
| timeout | number | 30000 | Max wait time in ms |
vibe.screenshot()
Capture a screenshot. Returns a Buffer (PNG).
const png = await vibe.screenshot()bro.close()
Close the browser session.
await bro.close()element.click(options?)
Click the element. Waits for element to be visible, stable, and enabled.
await element.click()| Option | Type | Default | Description |
|--------|------|---------|-------------|
| timeout | number | 30000 | Max wait time in ms |
element.type(text, options?)
Type text into the element. Waits for element to be visible, stable, enabled, and editable.
await element.type('[email protected]')| Option | Type | Default | Description |
|--------|------|---------|-------------|
| timeout | number | 30000 | Max wait time in ms |
element.text()
Get the element's text content.
const text = await element.text()element.getAttribute(name)
Get an attribute value.
const testId = await element.getAttribute('data-testid')element.boundingBox()
Get the element's position and size. Returns {x, y, width, height}.
const box = await element.boundingBox()Environment Variables
| Variable | Description |
|----------|-------------|
| VIBIUM_SKIP_BROWSER_DOWNLOAD | Set to 1 to skip Chrome download on install |
Claude Code / MCP
Add Vibium to Claude Code:
claude mcp add vibium -- npx vibium mcpVibium exposes 70+ browser automation tools (navigation, clicking, typing, screenshots, accessibility tree, and more). Your AI assistant discovers them automatically via MCP.
Links
License
Apache-2.0
