browserlist.json
browserlist.json is pbvm's project-level browser manifest file, located in the project root.
Purpose
Records which browsers a project uses and their configuration, so team members can share a consistent browser environment.
File structure
[
{
"platform": "mac_arm",
"alias": "my-chrome",
"browser": "chrome",
"buildId": "134.0.6998.35"
},
{
"platform": "mac_arm",
"alias": "dev-firefox",
"browser": "firefox",
"buildId": "stable_136.0.0"
}
]
Fields
| Field | Type | Description |
|---|---|---|
platform | string | Browser platform (mac_arm, linux_64, win_64, etc.) |
alias | string | User-defined alias to simplify browser references in commands |
browser | string | Browser name: chrome, chromium, firefox |
buildId | string | Browser version |
Read/write operations
| Command | Read | Write |
|---|---|---|
pbvm create | - | ✅ Add record |
pbvm ls | ✅ | - |
pbvm open | ✅ | - |
pbvm alias | ✅ | ✅ Update alias |
pbvm remove | - | ✅ Remove record |
pbvm restore | - | ✅ Update record |
File locking
Write operations on browserlist.json are protected by file locks to prevent data loss from concurrent writes by multiple processes. The lock timeout is 1 minute.
Recommendations
- Check
browserlist.jsoninto version control (git) so the team uses a consistent browser environment - Have CI read this file to install the required browser versions