playwright

The Playwright CLI plus browser engines and their system dependencies, in a shared cache every shell can read.

Installs the Playwright CLI globally, downloads the browser engines you ask for, and installs the operating-system libraries those browsers need.

devtools:
  - name: playwright

This is the case a flat package entry cannot express: an npm install plus a post-install browser download plus apt dependencies.

Version behaviour

versionResult
omittedthe latest published Playwright
1.48.0that exact npm version

config fields

FieldTypeDefaultDescription
browsersarray of string["chromium"]The engines to install, e.g. chromium, firefox, webkit.

An empty or unrecognisable list falls back to chromium.

devtools:
  - name: playwright
    config:
      browsers: [chromium, firefox, webkit]

Where the browsers live

Engines are installed once, as root, into a shared cache at /opt/ms-playwright, made world-readable, and every login shell gets PLAYWRIGHT_BROWSERS_PATH pointing at it. So the workstation user’s test runs find the same browsers the install produced — something a per-user npx playwright install cannot give you.

On Debian and Ubuntu the browsers’ system libraries are installed too. On Alpine only the engines are installed; the dependency step is skipped.

Example

A test workstation that runs a project’s browser suite:

apiVersion: workstations.ringleader.dev/v1
kind: WorkstationConfig
metadata:
  name: e2e-box
  namespace: local
spec:
  selector:
    matchLabels:
      role: e2e
  identity:
    user: dev
    shell: /bin/bash
  packages:
    - git
  devtools:
    - name: nodejs
      version: "24"
    - name: playwright
      config:
        browsers: [chromium, firefox]
  sources:
    - name: app
      git:
        url: https://github.com/acme/app.git
        ref: main
      path: /home/dev/src/app
  scripts:
    - name: install-deps
      phase: user
      runPolicy: onChange
      content: |
        set -e
        cd ~/src/app && npm ci

Notes

  • Changing browsers re-runs the recipe, but playwright install skips engines that are already present — so adding webkit to an existing workstation downloads only WebKit.
  • The first setup run is slow: browser downloads take minutes. Keep playwright off workstations that do not need it.
  • The CLI needs npm; if nodejs is not declared first, the distribution’s Node.js is installed.