Uindow vs. Playwright
Playwright is brilliant. Your weekly admin still isn't a test suite.
Playwright is the gold standard for cross-browser testing - keep it for that. But for the everyday web chores you'd rather not click through, Uindow gives you a recorder, a results screen, and a browser that behaves like a person, all on your own machine. No stealth plugins to babysit.

For the chores, not the test matrix
Human-grade input, real recordings, and results you keep - on your own machine, with nothing to maintain.
Uindow
Playwright
Results you can actually use
Playwright's traces and reports are superb - for debugging tests. Uindow's results screen is for keeping the output: the files it downloads, plus screenshots, full video, structured tables, and detailed logs - all searchable, filterable, and exportable as real files on your machine.
Trusted events, every time
Both Uindow and Playwright issue trusted events via CDP - this is the one place you're even. Uindow layers natural, non-linear mouse movement and human typing cadence on top, by default, so interactions look like a real person rather than an instant straight line.
Full video of every run
Recording runs in a separate worker, so it never drops a frame - not during page loads, reloads, or failures. Playwright records video and traces too, aimed at debugging a test run; Uindow's recordings live in a results vault you keep for every chore.
A recorder that writes it for you
Playwright has codegen, which is great. Uindow's recorder is built into the app, turns your clicks into clean, deterministic JavaScript, and needs no project setup or syntax to learn.
Waits for you when it matters
Some steps need a person: a login, a captcha, a one-time code. Uindow pauses mid-run, asks you to step in, and picks up exactly where it left off - so a single wall doesn't sink the whole automation.
State that carries between runs
Each runner gets a persistent global store that remembers values from one run to the next, plus a run-level store that resets cleanly every time - both readable and writable from your modules.
Inputs kept out of your code
A module's inputs - logins, files, anything sensitive - live separately from its source. Hand someone the automation and nothing secret comes with it, and you decide exactly which files each run may touch.
Modules you can read and share
Automations are portable
.js.yaml modules: genuinely human-readable, easy to diff and debug, and yours to keep private or publish for everyone.Private by default
Uindow runs entirely on your machine; your credentials, tokens, and the sites you automate never leave it. Run Playwright on managed cloud browsers and you inherit pooled, datacenter IPs and metered hours - with Uindow, your own machine and IP are the default.
CLI and MCP, built in
Playwright has a great CLI and a DOM-level MCP server. Uindow ships both inside the app, and its MCP hands agents a real, human-grade browser - not just DOM access.
A local, private LLM
Need a model to summarize or classify mid-run? Call a small LLM running right on your machine: private, offline, and zero cost per step.
The best selectors, open-sourced
Playwright's inspector can suggest selectors.
@uindow/css is a standalone, open-source engine that treats selection as a search problem, ranks every candidate, and emits readable compound selectors with fallbacks already computed - usable anywhere, not just in tests. See github.com/uindow/css.Built for humans, not hackers
Uindow isn't for anti-bot obsessives. It's for teachers, office workers, and anyone stuck clicking through a site that refuses to release an API. Ease of use, privacy, and peace of mind come first - the realism is just a happy bonus.
Loved by the people behind these products