install-browser is a no-op: always prints 'Browser ... is not installed' for the browser it was told to install

Open
#470 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
65/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
javascript, node.js
Domain
cli, testing

Research direction

Start at the playwright-cli install-browser entry point and compare its browser resolution with npx playwright install chromium and the shared Playwright cache. Reproduce with Chromium and Firefox, then verify that installation downloads the matching build and that a subsequent playwright-cli open --browser=chromium succeeds.

Written by the indexing model from the issue text.

Description

playwright-cli install-browser <browser> does not install anything and always answers as if it were the "not installed" error, on this machine and for every browser kind.

Reproduced 2026-09-19, macOS 25.5.0 arm64:

$ playwright-cli --version
1.59.0-alpha-1771104257000

$ playwright-cli open --browser=chromium https://example.com
Browser "chromium" is not installed. Run `playwright-cli install-browser chromium` to install

$ playwright-cli install-browser chromium
Browser "chromium" is not installed. Run `playwright-cli install-browser chromium` to install

Observed behaviour:

  • install-browser performs no download and exits with the "not installed" message for the browser it was told to install (the message even names chromium when invoked with firefox).
  • npx playwright install chromium succeeds and populates the standard cache (~/Library/Caches/ms-playwright/chromium-1243, chromium_headless_shell-1243), but playwright-cli open --browser=chromium still reports "chromium is not installed" — the alpha CLI appears to expect a different registry/revision or a daemon restart that playwright-cli kill-all does not fix.

Expected: install-browser chromium downloads the matching browser build and a subsequent open succeeds.

Workaround used: drive the same flows through the playwright npm package directly (npm i playwright && node script.mjs), which resolves chromium-1243 from the shared cache.

Dominant language
JavaScript
Stars
13.4k
Forks
741
Avg merge
6h 46m
Merged PRs (30d)
9

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from microsoft/playwright-cli

All issues in microsoft/playwright-cli

Similar issues

More JavaScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.