🎉 ShotSweep 1.3 is out! Scroll-reveal capture, slow-page handling, and safer credentials. See what's new →
v0.1.0 · Visual regression testing from the command line

Know exactly what
your site looks like.

Capture real pages with a real browser, compare them before and after a change, and let CI catch visual regressions before they reach production.

$npm install -g @nfsfu234/shotsweep
real browservisual diffauth supportCI-readyMIT licensed
Real BrowserChromium-powered capture
Full / SectionsCapture modes
DeterministicPixel comparison
MITOpen source
Try it now

A real capture, running live.

This runs the same capture engine used by the CLI against sites we control. Same browser, same waiting logic, same screenshot pipeline — just without installing anything.

Pick a target

Real capture, run live against form-validation.nforshifu234dev.com — same viewport and load-wait logic ShotSweep uses. Limited to a handful of sites we control, rate-limited, cached for 30 minutes.

Pick a target and hit capture.
Why ShotSweep

A page can pass every test and still look broken.

Your build can pass. Your unit tests can pass. Your API tests can pass. Your application can return HTTP 200. A CSS change can still break the interface. ShotSweep adds a visual regression layer to the test suite you already have.

STEP 1

Build

Run your normal application build and test suite.

STEP 2

Capture

Capture the pages and viewports that matter to your application.

STEP 3

Change

Ship a UI change, dependency update, or new release.

STEP 4

Compare

Run shotsweep diff against the previous visual baseline.

STEP 5

Gate

Let CI pass or fail the build based on visual changes.

See it work

Capture once. Diff on every deploy.

Capture a known visual baseline, deploy your change, then run shotsweep diff to see which pages changed. In CI, a real visual regression produces a non-zero exit code.

Read the diff docs →
nfsfu234-shotsweep
$ shotsweep capture --sitemap https://example.com/sitemap.xml --viewport 1440x900✔ Resolved 12 URLs from sitemap✔ Captured 12 screenshots → ./screenshotsDone in 9.8s (avg 0.8s/page)Manifest: screenshots/manifest.json $ shotsweep diff before/manifest.json after/manifest.json2 changed, 9 unchanged, 1 added, 0 removedReport: diff/diff-report.json
Key Features

Everything a real site needs to be captured properly.

Concurrency-aware, CPU-warned, retry-capable — built for real sites, not just demos.

🆚

Visual regression

Capture a baseline, capture again after a change, and compare the two runs with deterministic pixel diffing.

⚙️

Built for CI

Machine-readable output and non-zero exit codes make visual changes usable as a real CI gate.

🖥️

Real browser capture

ShotSweep uses Playwright and Chromium to capture the actual rendered page, not an HTML approximation.

🗺️

Sitemap aware

Point ShotSweep at a sitemap or sitemap index and turn your existing URL structure into a visual test plan.

🔐

Authenticated pages

Capture protected pages with form login, saved sessions, bearer tokens, headers, or cookies.

🔀

Production → localhost

Reuse a production sitemap against staging, preview deployments, or localhost with --replace-origin.

📐

Full or sectioned

Capture entire pages or split long pages into viewport-height sections for easier review.

🖥️

Multiple viewports

Capture desktop, tablet, mobile, or custom viewport sizes in the same run.

⏸️

Resumable runs

Resume large capture jobs and use limit, offset, retries, and concurrency controls for CI environments.

🪶

Focused CLI

A dependency-conscious command-line tool that produces screenshots, manifests, and reports without requiring a hosted service.

The NFSFU234 Ecosystem

Focused tools. Built to solve real problems.

Every NFSFU234 tool solves one real problem, stays focused, and works well on its own.

ShotSweep

Capture everything. Miss nothing.

Add visual regression to your workflow without adding another hosted platform. Capture, compare, and let CI catch what your other tests cannot see.