ViewPort crawls any website and renders every page across your chosen devices at once — locally, privately, instantly. There is no account and no server component; everything runs on your machine.
Download the desktop app, or run the CLI directly with npx — no install required for one-off crawls.
npx viewport crawl https://your-site.dev
By default this follows internal links up to 3 levels deep and captures up to 200 pages. Both are configurable.
viewport crawl <url> [options] --depth <n> Max link depth to follow (default: 3) --max-pages <n> Max pages to capture (default: 200) --devices <list> Comma-separated device presets (default: all enabled) --watch Re-capture affected frames on every save --ci Exit non-zero if diff crosses --threshold --threshold <n> Percent-changed threshold for --ci (default: 5) --out <dir> Export directory for --format --format <type> json | zip | pdf
Crawl defaults, enabled devices, and export preferences can all be set per-project in a viewport.config.json file, or overridden per-run with CLI flags.
{
"depth": 3,
"maxPages": 200,
"devices": ["iphone-15", "ipad-pro-13", "macbook-air"]
}ViewPort ships with 14 built-in device presets, covering phones through ultrawide desktops:
Four ways to look at a crawl, all switchable with number keys 1–4: