Planning issue for a future `playwright-rs-cli` crate. Not scheduled for any specific release; this is a design / scoping placeholder.
Why a CLI
The Playwright JS CLI handles codegen, the recorder, the trace viewer, and the inspector. Reimplementing those wholesale in Rust is a months-long product, not a feature. The interesting question is what unique value a Rust CLI offers — the candidates are:
- Interactive REPL on top of `playwright-rs::Debugger` + `pick_locator`. A short-feedback-loop tool for exploring a page from a terminal: arm the debugger, click an element, get the resolved locator pasted back as Rust code, step through actions. The closest JS equivalent is the Inspector's interactive panel, but a TUI version that emits Rust snippets has a clear audience.
- Trace-file consumer. Open a Playwright trace zip from disk, navigate the action graph, dump action metadata as JSON or rendered text. Closest analogue: the JS `npx playwright show-trace`, but headless and scriptable.
- `screencast` recorder/viewer. Once `Page::screencast` lands (#TODO once filed), a CLI wrapper that streams frames to disk or to a TUI preview is the kind of thing other bindings don't have.
Crate-layout questions to answer before implementing
- Workspace member or separate repo?
- Independent versioning from `playwright-rs` (definitely yes, but how locked is the dependency? `playwright-rs = "0.13"` or git-pinned?)
- Binary distribution: cargo install only, or also pre-built binaries via release.yml?
- Feature-flag the optional surfaces (e.g. `tui`, `screencast`)?
Out of scope for now
Recreating playwright-cli's recorder mode (it's a JS-side instrumentation that injects scripts into the page). The Rust binding has `pick_locator` for the same use case at a smaller scope.
Next step
When we're ready to start, this issue gets promoted to a milestone with an explicit scope and a target release.
Planning issue for a future `playwright-rs-cli` crate. Not scheduled for any specific release; this is a design / scoping placeholder.
Why a CLI
The Playwright JS CLI handles codegen, the recorder, the trace viewer, and the inspector. Reimplementing those wholesale in Rust is a months-long product, not a feature. The interesting question is what unique value a Rust CLI offers — the candidates are:
Crate-layout questions to answer before implementing
Out of scope for now
Recreating playwright-cli's recorder mode (it's a JS-side instrumentation that injects scripts into the page). The Rust binding has `pick_locator` for the same use case at a smaller scope.
Next step
When we're ready to start, this issue gets promoted to a milestone with an explicit scope and a target release.