pwvm
v1.1.0
Published
Playwright Version Manager
Maintainers
Readme
pwvm
Playwright Version Manager
A simple Playwright Version Manager that solves a common pain point:
Uncontrolled Playwright upgrades and breaking changes disrupt local setups and CI pipelines.
pwvm lets you install, manage, and switch Playwright versions reliably — one command, predictable behavior, just like nvm for Node.js.
![]()
Why pwvm
Playwright evolves fast. That’s great — until a minor upgrade breaks tests you didn’t plan to touch.
pwvm keeps Playwright versions:
- isolated per version
- explicit and reproducible
- easy to switch locally and in CI
You upgrade when you choose, not when your tooling surprises you.
Install
npm install -g pwvmThen run the one-time setup:
pwvm setupFollow the printed instructions to add pwvm shims to your PATH.
Common usage
pwvm install 1.57.0
pwvm use 1.57.0
playwright --version
playwright test
Pin versions per project with .pwvmrc:
1.57.0If a .pwvmrc file is present in your project root, running pwvm use will automatically detect and switch to that version.
pwvm useDeterministic guarantees pwvm already provides
- Playwright installed by exact version (
[email protected]) - Versions stored in isolated directories (
~/.pwvm/versions/<version>) - Browser binaries scoped per Playwright version
.pwvmrcpins version per repo- No implicit upgrades (no latest unless explicitly requested)
[!NOTE] pwvm performs no background network activity and only installs software when explicitly requested.
CI-friendly
pwvm works in GitHub Actions, Azure Pipelines, Bitbucket, and any CI where you control PATH.
Example usage in GitHub Actions:
- run: npm install -g pwvm
- run: pwvm setup
- run: pwvm install 1.40.0 && pwvm use 1.40.0
- run: playwright testDockerized
pwvm can also be validated and demoed in Docker without changing the npm package footprint.
Why Docker is useful here:
- cache multiple Playwright versions in one isolated environment
- switch versions quickly with
pwvm use - prove that plain
playwrightcommands resolve through pwvm naturally - keep the host machine clean while testing or demoing version changes
The repo includes a non-root Docker demo that installs multiple Playwright versions, switches between them, runs plain playwright test, prunes old versions, and removes pwvm cleanly at the end.
See the full Docker guide: docker/README.md
Support pwvm
pwvm is built and maintained independently to fix a problem many teams quietly struggle with.
If this tool saves you time, CI hours, or debugging frustration:
- ⭐ Star the project
- ❤️ Sponsor via GitHub
- 🔁 Share it with your team and tag #QualityWithMillan
Your support helps keep pwvm maintained and improving.
📘 Full documentation and contributing guide: https://github.com/eaccmk/pwvm
