Skip to main content

PBVM

Cross-platform Multi-browser Version Manager

Browser Management Made Simple

Built on @puppeteer/browsers. Install, switch, and manage multiple browser versions with a single command. Designed for development and testing.

Terminal
$ pbvm create -b chrome -i 134.0.6998.35 -a prod
# Downloading Chrome 134.0.6998.35...
✅ Installed success: mac_arm:chrome@134.0.6998.35
✅ Successfully saved the log to the current directory.
$ pbvm open -t prod
✅ Browser opened successfully.
npm install -g pbvm-cli
Switch with simple aliases — no more memorizing complex buildIds

Manage Multiple Versions of Chrome, Chromium & Firefox

chrome
114.0.5734.0130.0.6723.116
chromium
121231
firefox
stable_129.0.2stable_131.0.3
Cross-platform Compatibility

Run Anywhere, Switch Seamlessly

pbvm runs on Windows, macOS, and Linux, helping developers install, switch, and manage multiple browser versions in any environment.
WindowsOsxLinux
$ pbvm ls -a
mac (current):
ff-t                →  revision: firefox@stable_130.0.1
mac-121231          →  revision: chromium@121231
linux:
linux-chromedriver-v130  →  revision: chrome@130.0.6723.116
win32:
win32-firefox-dev  →  revision: firefox@130.0
win64:
win-chrome-beta  →  revision: chrome@131.0.6757.5
windows稳定版     →  revision: chrome@130.0.6723.116

Designed for frontend engineering — generate independent browserlist.json configs for different projects

Achieve project-level browser version management. Integrate with modern build tools to provide a consistent browser environment for development, testing, and CI/CD.

Designed for Frontend Engineering

Generate independent browserlist.json configs for different projects, achieving project-level browser version management. Integrate with modern build tools to provide a consistent browser environment for development, testing, and CI/CD.
CLI Command Flow
Project Architecture
Resources & Mirrors
Storage & File Lock

Seamlessly Integrates into Your Build Toolchain

Ensure consistency across development, build, and testing environments

vite:

// vite.config.ts
import { defineConfig } from 'vite'
import { openBrowser } from 'pbvm-cli'

export default defineConfig({
plugins: [
{
name: 'pbvm-open',
configureServer(server) {
server.httpServer?.once('listening', () => {
const { port, host } = server.config.server
const isHttps = server.config.server.https !== false
const protocol = isHttps ? 'https' : 'http'
const url = `${protocol}://${host || 'localhost'}:${port}`
openBrowser({ target: 'my-chrome', url })
})
},
},
],
})

webpack:

import { openBrowser } from 'pbvm-cli'

devServer: {
onAfterSetupMiddleware(devServer) {
const { host, port, server } = devServer.options
const isHttps = typeof server === 'string'
? server === 'https'
: server?.type === 'https'
const protocol = isHttps ? 'https' : 'http'
const url = `${protocol}://${host || 'localhost'}:${port}`
openBrowser({ target: 'my-chrome', url })
}
}

packages (optional):

// package.json
{
"scripts": {
"dev:browser": "npm run dev && pbvm open -t my-chrome -u http://localhost:3000"
}
}

Get Started in 3 Minutes

Install pbvm, download your first browser

Installation

# npm
npm install -g pbvm-cli

# pnpm
pnpm add -g pbvm-cli

Common Commands

# 安装 Chrome 并设置别名
pbvm create -b chrome -i 134.0.6998.35 -a prod

# 查看已安装的浏览器
pbvm ls

# 以别名打开浏览器
pbvm open -t prod

# 查看浏览器详细信息(含运行时)
pbvm info -t prod -r

# 查询远程是否有可用版本
pbvm search -b firefox -i stable_136.0.0

Ready to Get Started?

Install pbvm and enjoy a smooth browser version management experience.
██████╗ ██████╗ ██╗   ██╗███╗   ███╗
██╔══██╗██╔══██╗██║   ██║████╗ ████║
██████╔╝██████╔╝██║   ██║██╔████╔██║
██╔═══╝ ██╔══██╗╚██╗ ██╔╝██║╚██╔╝██║
██║     ██████╔╝ ╚████╔╝ ██║ ╚═╝ ██║
╚═╝     ╚═════╝   ╚═══╝  ╚═╝     ╚═╝