VLearnVibium

How to Install Vibium on Linux

Install Vibium on Linux with pip or npm, add Chrome's shared system libraries, pre-fetch Chrome for Testing, and run headless automation on any server.

By Pramod Dutta··4 min read·Verified with Vibium 26.2
▶ Animated overview · made with Remotion

To install Vibium on Linux, install Python 3.9+ and run pip install vibium, then install the handful of shared system libraries Chrome links against (libnss3, libgbm1, libasound2, and friends). Vibium ships as a single Go binary and auto-downloads its own Chrome for Testing, so there's no ChromeDriver to match and no system Chrome to manage — the only host setup is those shared libraries, because the OS still has to provide them even though Vibium brings the browser binary. Vibium publishes native x64 and arm64 Linux builds, and pip install vibium selects the right one automatically. Modern headless Chrome renders without an X display, so on a typical server you launch with headless=True and skip Xvfb entirely. That makes Linux the natural home for CI runners, cron jobs, and containerized scrapers. Below: install Python, add the libraries, install Vibium, pre-fetch Chrome, and run both a windowed and a headless script. See what is Vibium for the architecture.

What do I need before installing Vibium on Linux?

You need Python 3.9 or higher with pip and venv (Python client) or Node.js (JavaScript/TypeScript client). On Debian or Ubuntu:

sudo apt-get update
sudo apt-get install -y python3 python3-pip python3-venv

You do not need to install Chrome — Vibium downloads its own Chrome for Testing. As of 26.2 it requires Chrome for Testing and no longer falls back to system Chrome, which keeps runs reproducible across machines.

What system libraries does Vibium need on Linux?

This is the one Linux-specific step. Vibium brings the browser binary, but Chrome links against shared system libraries that the OS must supply. Install them once:

sudo apt-get install -y \
  libnss3 libatk-bridge2.0-0 libgbm1 libasound2 \
  libxkbcommon0 libxcomposite1 libxdamage1 libxfixes3 \
  libxrandr2 libdrm2 libpango-1.0-0 libcairo2

If a browser launch fails with a missing-library error, the message names the .so it needs — install the matching package and try again. This is the most common first-run hiccup on minimal or container base images.

How do I install Vibium with pip?

Create a virtual environment and install into it:

mkdir my-vibium-project
cd my-vibium-project
 
python3 -m venv .venv
source .venv/bin/activate
 
pip install vibium

pip install vibium resolves the correct Linux platform package automatically — vibium-linux-x64 or vibium-linux-arm64 — so you don't pick a build by hand. The virtual environment keeps Vibium isolated from system Python.

Should I pre-download Chrome for Testing?

Recommended on Linux, especially for CI and Docker, so cold starts don't pay the download cost:

vibium install

Run this in your image build or provisioning step to pre-fetch the matching Chrome. Otherwise Vibium downloads it on the first launch().

How do I run my first script on Linux?

With a display available, create hello.py:

from vibium import browser_sync as browser
 
vibe = browser.launch()
vibe.go("https://example.com")
 
print(vibe.find("h1").text())
 
png = vibe.screenshot()
with open("screenshot.png", "wb") as f:
    f.write(png)
 
vibe.quit()

Run it:

python3 hello.py

Chrome opens, loads the page, prints the heading, saves screenshot.png, and closes. Vibium auto-waits for actionability, so find("h1") blocks until the element is ready. See find element and take a screenshot.

How do I run Vibium headless on a server?

On a headless box with no display, pass headless=True — that's the only change. Modern headless Chrome renders without an X display, so no Xvfb is needed:

from vibium import browser_sync as browser
 
vibe = browser.launch(headless=True)
try:
    vibe.go("https://example.com")
    png = vibe.screenshot(full_page=True)
    with open("/tmp/page.png", "wb") as f:
        f.write(png)
finally:
    vibe.quit()

Quitting in a finally block ensures a crash can't leave Chrome running. For the full server, CI, and Docker walkthrough, see how to run Vibium headless on a server.

Prefer Node? Install the JavaScript client

The TypeScript/JavaScript client installs the same way (the shared-library step is identical, since the same Chrome is used):

npm install vibium

Same single binary, same auto-downloaded Chrome for Testing. Choose Python or Node to fit your stack.

Next steps

Frequently asked questions

How do I install Vibium on Linux?

Install Python 3.9+ and pip, create a virtual environment, then run pip install vibium. Vibium auto-downloads Chrome for Testing, but Chrome still needs a handful of shared system libraries (libnss3, libgbm1, libasound2, and friends) — install those once with your package manager.

What system libraries does Vibium need on Linux?

Vibium brings its own Chrome for Testing, but Chrome links against system shared libraries such as libnss3, libatk-bridge2.0-0, libgbm1, and libasound2. On Debian or Ubuntu, install them with apt-get once; after that, both windowed and headless runs work without further setup.

Can I run Vibium headless on a Linux server without a display?

Yes. Modern headless Chrome renders without an X display, so launching with headless=True is enough on a typical Linux server — no Xvfb required. Install Chrome's shared libraries once, then your laptop script runs unattended on the box exactly the same way.

Vibium is created by Jason Huggins. This is an independent tutorial — see the official Vibium site and GitHub repo for canonical docs.

Related guides