Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Some links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.

From your Playwright project directory, run npx playwright show-report. Playwright serves the existing HTML report (normally in playwright-report) and opens it in a browser. If your report is elsewhere, pass that directory, such as npx playwright show-report my-report.

The command opens a report that was already generated by a test run; it does not run your tests again. The official command reference documents the syntax and options at playwright.dev/docs/test-cli.

The basic command

npx playwright show-report

Run it in the directory containing your Playwright project. The HTML reporter writes its default output to playwright-report; show-report starts a local server for that folder and opens the report. The running-tests guide describes this as the manual way to open an HTML report after a test run: playwright.dev/docs/running-tests.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

If you have not produced a report yet, run your tests first:

npx playwright test

Then start the viewer:

npx playwright show-report

The report must exist before the viewer can display test results.

Prerequisites and report locations

  • Run the command from a project where Playwright is installed or otherwise available through your package manager.
  • Generate an HTML report with a prior test run.
  • Know the folder containing the report if it is not the default playwright-report.

The HTML reporter output folder can be changed in Playwright configuration or with the PLAYWRIGHT_HTML_OUTPUT_DIR environment variable. The reporter documentation covers those settings at playwright.dev/docs/next/test-reporters.

Serve a report in a custom directory

Pass the report directory as the positional argument:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
npx playwright show-report my-report

For a nested path, provide the path exactly as it appears on disk:

npx playwright show-report test-results/html-report

Quote paths containing spaces:

npx playwright show-report "artifacts/HTML report"

The argument is the report location, not the location of your test files. If you see an empty page or a missing-report error, verify that the directory contains the generated HTML report and that you are running the command from the expected working directory.

Choose the host and port

The command-line syntax is npx playwright show-report [report] [options]. The documented defaults are host localhost and port 9323.

Option Default Example Use
--host <host> localhost --host 127.0.0.1 Choose the address on which the report server listens.
--port <port> 9323 --port 8080 Choose a different TCP port.

For example, to use port 8080:

npx playwright show-report --port 8080

To specify both a report folder and a port:

npx playwright show-report my-report --host localhost --port 8080

The command-line reference lists these options and defaults at playwright.dev/docs/test-cli. Keep the server bound to the interface appropriate for your environment, especially when working on a shared or remote machine.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Equivalent commands for Yarn and pnpm

The official best-practices guide shows the same command through other package managers:

yarn playwright show-report
pnpm exec playwright show-report

You can append the same report path, host, and port options:

pnpm exec playwright show-report my-report --port 8080

Use the package manager that owns the Playwright installation in your project so the command resolves the intended version.

Open a downloaded ZIP or extracted CI artifact

Playwright’s HTML reporter documentation allows a report .zip to be passed directly when index.html is at the archive’s top level:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
npx playwright show-report report.zip

If your CI system extracted the artifact, pass the extracted directory instead:

npx playwright show-report downloaded-report

A ZIP with an extra parent directory may not work as expected because the required index.html is not at the archive root. Repack or extract it so the report’s top-level structure is preserved. The reporter guide documents both ZIP and extracted-directory workflows: playwright.dev/docs/next/test-reporters.

What the HTML report lets you inspect

Inside the report, you can filter tests by browser and status, including passed, failed, skipped, and flaky. You can search for tests, inspect errors, and expand recorded steps. The running-tests documentation describes these inspection features at playwright.dev/docs/running-tests.

When a trace is available, CI documentation describes opening the report and selecting the trace icon to inspect it. Trace inspection is an action inside the report; merely starting show-report does not create a new trace. See playwright.dev/docs/next/ci-intro.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Automatic browser opening and reporter settings

Playwright normally opens an HTML report automatically when tests fail. The HTML reporter’s open setting supports always, never, and on-failure; on-failure is the documented default.

You can set the behavior in the Playwright configuration:

import { defineConfig } from '@playwright/test';

export default defineConfig({
  reporter: [['html', { open: 'never', outputFolder: 'playwright-report' }]],
});

For a one-off environment override, use PLAYWRIGHT_HTML_OPEN:

PLAYWRIGHT_HTML_OPEN=never npx playwright test

Use always when you want the browser after every run, never for headless or CI environments, and on-failure when you only want automatic opening after failures. You can still run npx playwright show-report manually at any time.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Troubleshooting common failures

“No report found” or an empty report

The viewer serves files that already exist. Run the tests with the HTML reporter enabled, then check the output directory named in your configuration. If you changed the output folder, pass that exact path to show-report.

The command uses the wrong folder

Check your current directory and use an explicit path:

npx playwright show-report ./artifacts/playwright-report

On case-sensitive systems, match directory capitalization exactly.

Port 9323 is unavailable

Choose another unused port:

npx playwright show-report --port 8080

If another process is already serving the report, open that process’s address instead of starting a second server.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The browser does not open automatically

Automatic opening is controlled by the reporter’s open setting and can be disabled by PLAYWRIGHT_HTML_OPEN=never. Start the viewer manually with npx playwright show-report, then open the displayed local address in your browser.

A ZIP cannot be served

Confirm that the archive contains index.html at its top level. If the CI system added a wrapping directory, extract the archive and pass the directory that directly contains the report files.

Remote access does not work

Specify the host and port required by your environment, for example:

npx playwright show-report --host 0.0.0.0 --port 8080

The host option controls where the server listens; network access to that address and port may also depend on your machine, container, or CI environment.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Practical CI workflow

  1. Run Playwright in CI with the HTML reporter enabled.
  2. Publish the configured report directory, or a ZIP whose root contains index.html, as a CI artifact.
  3. Download the artifact to your workstation.
  4. Run npx playwright show-report downloaded-report for an extracted artifact, or pass the ZIP directly when its layout meets the HTML reporter requirement.
  5. Use the report filters and test details to investigate failures; select a trace icon when a trace was recorded.

This separates test execution from report inspection: the CI job creates the files, while show-report serves them locally for review.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Or skip the browser setup

If what you need is a clean image or PDF of a public web page rather than an interactive Playwright test report, ScreenshotNeo provides a single-request screenshot API and an MCP server for AI agents. Before capture it accepts cookie or consent banners and removes more than 60 known consent platforms, newsletter popups, and chat widgets; each step can be disabled. Only clean shots are billed, while bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits cost nothing. Responses identify the result with X-Page-Verdict and X-Billed headers.

Use the API documentation beside the request examples: ScreenshotNeo API and MCP documentation.

cURL

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://playwright.dev/docs/test-reporters -o shot.webp

Python

import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://playwright.dev/docs/test-reporters"}, timeout=90)
open("shot.webp", "wb").write(r.content)

Node.js

const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://playwright.dev/docs/test-reporters' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);

ScreenshotNeo also supports full-page captures with lazy images loaded, element selectors, dark mode, device presets, custom viewports, retina scale, PDF output, custom CSS and JavaScript, clicks before capture, wait conditions, request and resource blocking, headers, cookies, user agents, authorization, timezone, geolocation, transparent backgrounds, resizing, chosen cache TTLs, signed links, asynchronous jobs with signed webhooks, bulk capture for up to 100 URLs per call, a usage API, and an OpenAPI specification. Its parameter names are compatible with those used by other screenshot APIs, which can simplify migration. The MCP tools are take_screenshot, get_page_info, and capture_pdf.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Plan Included shots Price
Free 1,000 per month No card required
Starter 3,000 $5
Growth 15,000 $15
Pro 60,000 $39
Scale 250,000 $99
Business 1,000,000 $249

All features are available on every plan, and yearly billing provides two months free. The service is separate from Playwright’s local HTML report viewer: use show-report for test-result analysis, and ScreenshotNeo when you need an automated page capture or an AI-agent workflow.

Start with 1,000 free ScreenshotNeo screenshots per month—no card required.

Frequently Asked Questions

Does show-report rerun my tests?

No. It serves the HTML files produced by an earlier run; execute npx playwright test separately when you need fresh results.

Can I inspect a report while the CI job is still running?

Only after the report files have been written and made available locally. In practice, download the completed artifact or copy the report directory before starting the viewer.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Is opening a trace the same as opening the report?

No. The report is the container for test results. A trace is inspected separately by selecting a trace icon when that test recorded one.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.