Quickstart
The shortest possible end-to-end session.
CLI (installed)
Section titled “CLI (installed)”npm install -g vibiumvibium go https://example.comvibium screenshot -o example.pngvibium textOpen a page, save a screenshot, print the page text. That is the entire quickstart.
Why does
vibium textnot need a URL or selector? Vibium keeps a background browser running across commands; later commands act on the page opened by the most recentvibium go. See Core Concepts for the full mental model.
What you should see:
vibium go https://example.com— exits with status 0; the browser navigates to the page. No output on stdout is normal.vibium screenshot -o example.png— writes the PNG to~/Pictures/Vibium/example.pngand prints the saved path to stdout. The CLI manages screenshot storage for you;-ocontrols the filename, not the directory.ls -lh ~/Pictures/Vibium/example.pngshould show a non-empty PNG.vibium text— prints the visible page text to stdout. Forhttps://example.comyou’ll see the heading “Example Domain” followed by the standard placeholder paragraph.
If any of those don’t match, see Troubleshooting.
CLI (zero-install with npx)
Section titled “CLI (zero-install with npx)”If you’d rather not install anything, the same flow works through npx:
npx -y vibium go https://example.comnpx -y vibium screenshot -o example.pngnpx -y vibium textThis is great for CI jobs, throwaway scripts, and demos. To make the rest of this guide copy-pasteable, alias it for the current shell:
alias vibium='npx -y vibium'vibium go https://example.comvibium textJavaScript / TypeScript
Section titled “JavaScript / TypeScript”import { writeFileSync } from 'node:fs'import { browser } from 'vibium'
const browserSession = await browser.start()const vibe = await browserSession.page()
await vibe.go('https://example.com')const png = await vibe.screenshot()writeFileSync('example.png', png)
await browserSession.stop()screenshot() returns the PNG as bytes; you have to write them to disk
yourself (unlike the CLI’s -o flag).
Python
Section titled “Python”from vibium import browser
browser_session = browser.start()vibe = browser_session.page()
vibe.go("https://example.com")text = vibe.text()print(text)
browser_session.stop()var browserSession = Vibium.start();var vibe = browserSession.page();vibe.go("https://example.com");var png = vibe.screenshot();java.nio.file.Files.write(java.nio.file.Path.of("example.png"), png);browserSession.stop();Agent skill for Codex
Section titled “Agent skill for Codex”npm install -g vibiumnpx skills add https://github.com/VibiumDev/vibium --skill vibe-checkAfter this, your agent can drive the browser by emitting vibium ... commands.
See the Tutorial for a longer worked example.