PLAYWRIGHT CLI · CHECKED OCTOBER 15, 2026
A narrow comparison, tested against native files.
The value is an editable cross-capture request sequence. It is not a replacement for the official Trace Viewer or a promise to diagnose every trace.
The source contract
Fixtures were recorded using published @playwright/cli@0.1.22 with bundled engine 1.64.0-alpha-1790635538000. The browser was isolated Chrome for Testing 156 on macOS; the application was a local fixture under our control. The actual records identify library trace format 10. Stable Playwright 1.64.1 source was checked separately, but it was not used to record these CLI fixtures.
Four small reproductions
| Comparison | Controlled change | Observed output |
|---|---|---|
| Base / fail | Same GET endpoint returns 503 | 200 vs 503; later wait records an error |
| Base / retry | Failed request followed by retry | 200 vs 503 → 200; source lines retained |
| Base / method | GET becomes POST | Same endpoint and 200, different method |
| Base / base | No change | No sequence or action-state difference |
The four runs issued 32 native CLI commands: 31 succeeded and one wait intentionally timed out. Every owned session was closed. A further complex capture exercised multiple frames, background requests and a request after the final action. Its six recorded requests must remain accounted for when manual anchors are added or removed.
The published sample provenance lists original and field-reduced file hashes. Samples preserve physical line positions by replacing omitted records with placeholders. They remove DOM, headers, cookies, bodies, expressions, console data and error text. They are reduced comparison fixtures, not complete native archives for replay.
Validation that matters
The parser joins before and after records by identity, rejects duplicates and orphan ends, and marks missing ends incomplete. Tests cover zero clocks, physical blank lines, unknown pages, malformed JSON, request-order changes across endpoints, repeated methods and query matching. A conservation check accounts for requests in either a paired interval or the unassigned bucket after each anchor change.
Browser checks exercise file replacement, invalid-file recovery, cancellation, modal keyboard focus, selective export and narrow screens. Native fixtures are compared in the deployed browser, not only in a Node prototype. These tests verify the described model and controls; they do not prove universal compatibility with every library producer or recording option.
What already exists for free
The official Trace Viewer provides rich action, snapshot, request, console and source inspection. Its hosted viewer processes traces locally. Official trace CLI commands already extract individual actions and requests. playwright-trace-decoder-mcp already implements cross-trace alignment, action errors, timing and URL/count comparisons.
TracePair focuses on reviewed manual anchors plus full ordered method/status occurrences within their windows. It preserves the same-URL response change and retry order in the worked examples. We do not claim to be the first trace comparer, the only local tool, or a full privacy sanitizer. Dedicated sanitization tools and official trace inspection remain useful alongside it.
Limits remain visible
One page per capture, format 10 library files, explicit size limits and no ZIP support define this release. Frame traffic is included by time, not assigned a cause. Equal-time requests have uncertain strict order. Source completeness cannot be established from these files alone. No capture is uploaded, no remote browser runs, and no paid model or API is required.
Current Playwright CLI search interest helped select the topic; exact trace-comparison query volume was not independently measured. Search interest is not evidence that a particular failure is common, nor a claim about rankings or traffic.