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.
The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →If you have not produced a report yet, run your tests first:
#1 Best Overall
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:
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.
Rank #2
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:
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.
Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minutePC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Automatic 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.
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:
Rank #4
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.
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.
Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Clear out junk files and repair common Windows errorsFree Scan →Practical CI workflow
- Run Playwright in CI with the HTML reporter enabled.
- Publish the configured report directory, or a ZIP whose root contains
index.html, as a CI artifact. - Download the artifact to your workstation.
- Run
npx playwright show-report downloaded-reportfor an extracted artifact, or pass the ZIP directly when its layout meets the HTML reporter requirement. - 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.
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.
| 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.
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Scan for outdated or missing drivers - takes under a minute3Repair Windows errors before they cause bigger problemsIs 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.
Quick Recap
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.

