microsoft/playwright
Playwright is a framework for Web Testing and Automation. It allows testing Chromium, Firefox and WebKit with a single API.
How playwright is put together
Playwright is a monorepo (npm workspaces under packages/*) implementing a browser automation and end-to-end testing framework that drives Chromium, Firefox, and WebKit through a single API. The core is TypeScript/Node.js: playwright-core contains the driver/protocol machinery, while thin wrapper packages (playwright, playwright-chromium, playwright-firefox, playwright-webkit, playwright-test, playwright-client) re-export it with per-browser install hooks. Browser binaries are managed via browsers.json and per-browser installer packages (playwright-browser-*), with patched Firefox/WebKit sources maintained in browser_patches. UI-facing artifacts (trace-viewer, html-reporter, recorder, dashboard) are React apps built with Vite into playwright-core/lib/vite, sharing code via the isomorphic package. Tests are written with Playwright Test itself across many configs (library, mcp, electron, android, installation, webview), and an MCP server / agent CLI tooling layer (@modelcontextprotocol/sdk) exposes automation to AI agents.
Languages
Frameworks
Infrastructure
Major components
packages/playwright-core
Core library containing the browser driver, protocol implementation, CLI entry (cli.js), and browsers.json registry of pinned browser builds.
Browser wrapper packages (playwright, playwright-chromium/firefox/webkit, playwright-browser-*)
Thin public-API packages whose install.js downloads/validates the pinned browser binary for each engine.
packages/playwright-test
The Playwright Test runner distribution surface, including reporter type definitions (reporter.d.ts).
packages/isomorphic
Shared isomorphic utilities (selectors/CSS parsing, ARIA snapshots, trace model/loader/snapshot storage, URL matching, serialization) used by both Node and browser bundles.
Web UI bundles (trace-viewer, html-reporter, recorder, dashboard)
React+Vite applications for trace inspection, HTML test reports, codegen recorder UI, and session dashboard, built into playwright-core/lib/vite/*.
Agent/MCP tooling layer
MCP server and CLI client code (tests/mcp, packages/playwright-core tools/cli-client) exposing browser automation to AI agents via @modelcontextprotocol/sdk.
browser_patches
Maintenance of patched Firefox/WebKit upstream builds and the winldd Windows dependency-dump helper (PrintDeps C++ project).
Extension & platform targets
Browser extension package (manifest.json, Vite build) plus Electron, Android, and webview test harnesses.
A quieter week focused on the test recorder, adding start/stop recording commands to MCP and fixing recorder re-enabling.
5 weeksWeek of 2026-08-24
Week of 2026-08-24latest
A quieter week focused on the test recorder, adding start/stop recording commands to MCP and fixing recorder re-enabling.
Week of 2026-08-17
A busy week that introduced a chrome://tracing reporter with step parameters, a webm-based film strip in the trace viewer, and many accessibility fixes.
Week of 2026-08-10
Trace viewing gained an accessibility-focused 'Display Aria' mode, the VS Code-style extension learned to handle multiple simultaneous clients, and browser installs got a --no-remove option.
Week of 2026-08-03
Infrastructure took center stage with a new ESRP pipeline for publishing npm packages, plus removal of experimental component testing and new page-free locators.
Week of 2026-07-27
Selector piercing through iframes arrived alongside new dialog events, standalone color/motion test options, and cleanup of outdated browser channels.
Over the past month, Playwright's development has centered on making its debugging and reporting tools richer: a new chrome://tracing reporter, a redesigned trace viewer with an accessibility-focused 'Display Aria' mode and webm film strips, and more detailed step/network information in traces. The MCP (AI-agent) tooling saw steady hardening around sandboxing, codegen language support, and connection handling, while browser builds for Chromium, Firefox, and WebKit were rolled forward weekly. Housekeeping work included removing the experimental component-testing feature, moving npm publishing to a new secure pipeline, and numerous accessibility fixes across the HTML reporter and trace viewer.
Week by week
2026-08-24A quieter week focused on the test recorder, adding start/stop recording commands to MCP and fixing recorder re-enabling.latest4 changes
Feature
MCP recording commands
The AI-agent tool can now start and stop test recording on demand via new commands.
Fix
Recorder can be re-enabled
Fixed a bug so the test recorder can be turned back on within the same browsing session.
Chore
Test runner rolled forward
The bundled stable test runner was updated to the latest alpha build.
Docs
Java routing example fixed
Corrected a Java code example showing how to intercept network requests.
2026-08-17A busy week that introduced a chrome://tracing reporter with step parameters, a webm-based film strip in the trace viewer, and many accessibility fixes.6 changes
Feature
chrome://tracing reporter
A new reporter exports test activity as Chrome trace files, including step parameters, for analysis in Chrome's performance tooling.
Feature
Webm film strip in trace viewer
The trace viewer now shows video recordings of test runs as a browsable strip of frames.
Fix
Keyboard accessibility improvements
Settings controls in the HTML report, image diff switcher, expandable sections, and trace-viewer buttons can now all be operated from the keyboard.
Feature
Codegen HTTP credentials option
Recording tests can now capture sites requiring username/password authentication via a new --http-credentials option.
Feature
Configurable screenshot size
Traces now let you control how large captured screenshots are, trading detail for file size.
Fix
Better network attribution in traces
Trace files now correctly attribute network requests made by service workers and API request contexts.
2026-08-10Trace viewing gained an accessibility-focused 'Display Aria' mode, the VS Code-style extension learned to handle multiple simultaneous clients, and browser installs got a --no-remove option.6 changes
Feature
'Display Aria' mode in trace viewer
The trace viewer can now show the page's accessibility tree instead of the visual snapshot, helping debug what screen readers see.
Feature
Multiple extension clients
The browser extension integration now supports several client connections at once instead of just one.
Feature
--no-remove install option
Browser installs can keep unused browser versions on disk rather than deleting them automatically.
Fix
IndexedDB connections closed
Saving or restoring login state no longer leaves database connections open behind it.
Fix
Extension self-recovery
The debugger integration now recovers gracefully when the browser detaches it unexpectedly.
Chore
Native happy eyeballs networking
Network connections switched to the operating system's built-in fast-failover logic instead of a custom implementation.
2026-08-03Infrastructure took center stage with a new ESRP pipeline for publishing npm packages, plus removal of experimental component testing and new page-free locators.6 changes
Chore
ESRP npm publishing pipeline
Package publishing moved to Microsoft's secure release pipeline, replacing the previous process.
Refactor
Component testing removed
The experimental component-testing feature was dropped entirely from the codebase.
Feature
Page-free 'by' locators
New locator helpers can be written without first creating a page object, simplifying test code.
Feature
MCP codegen in more languages
AI-driven test recording can now generate Python, Java, and C# code in addition to JavaScript.
Fix
MCP security validation
The agent tool now validates incoming WebSocket connections' Host and Origin headers to block unauthorized access.
Feature
Structured JSON snapshots from MCP
The agent tool can emit machine-readable page snapshots in its JSON responses for easier automation.
2026-07-27Selector piercing through iframes arrived alongside new dialog events, standalone color/motion test options, and cleanup of outdated browser channels.6 changes
Feature
Frame-piercing selectors
Selectors can now reach inside iframes directly, with options controlling scope and context.
Feature
Standalone display options
Tests can set reduced motion, forced colors, and contrast preferences as simple built-in options.
Feature
dialogclosed event
Tests can now listen for when a browser dialog (like an alert) closes, not just when it opens.
Feature
Test annotations in trace viewer
Notes attached to tests now appear inside the trace viewer for easier debugging.
Chore
Removed beta browser channels
Support for firefox-beta and chromium-tip-of-tree channels was removed to simplify maintenance.
Fix
--last-failed recovery fix
Re-running only previously failed tests now correctly handles tests skipped during setup.
Dependencies and code review
Dependency advisories
Security Watch
No known advisories across 655 scanned dependencies.
No known advisories in the scanned dependencies.
Code review
No concrete code-level issues confirmed.
Get this report every week for your repos.
GitZoid learns each repo, reports what changed, and flags what needs attention. One flat price for the whole team.
$19 a month, flat · First 10 outputs free · No card required