Capture real pages with a real browser, compare them before and after a change, and let CI catch what your tests can't see.
ShotSweep is a command-line screenshot and visual regression tool for developers who need repeatable website captures without wiring together a custom Playwright script every time.
A build can pass, every unit test can pass, a page can return HTTP 200 — and still look completely broken. A CSS change can shift a button, break a layout, or hide content entirely, and none of the usual checks catch it. ShotSweep is built to close that gap.
What it does
- Captures a single URL, an array of URLs, a CSV, or a whole sitemap (including sitemap-index files)
- Full-page or section-sliced screenshots, across multiple viewports and both light and dark mode, in the same run
- Generic authentication support — saved sessions, bearer tokens, custom headers, cookie injection — for capturing pages behind a login
--replace-origin lets a production sitemap be reused against localhost or staging without maintaining a separate URL list
- Deterministic pixel diffing between two runs, with configurable thresholds and a non-zero exit code on a real regression — built to gate CI the same way a failing test would
A quick example
npx @nfsfu234/shotsweep capture --sitemap https://example.com/sitemap.xml --viewport desktop,mobile
npx @nfsfu234/shotsweep diff --before ./run-1 --after ./run-2
ShotSweep was tested against NFORSHIFU234 Dev's own documentation site before release — 28 routes, light and dark mode, sectioned captures — and returned 136 manifest entries with zero capture errors. It's MIT licensed and open for contribution.