2.6k stars · Apache-2.0 · 1.11 (2026-07-12)
One YAML file regenerates every screenshot on the site — and since v1.10 it records WebM demo clips too.
▶Repo detailsthe review · specs · pros & cons · install
What it is
A command-line tool that drives a headless browser to take screenshots of web pages, from a single URL or from a YAML file describing dozens of shots. Version 1.10 added video recording, so the same file can also produce short WebM clips of a scripted interaction.
Why it matters
Every marketing site quietly rots: you ship a UI change and the screenshots on your landing page, your docs and your README are suddenly of software that no longer exists. Nobody hand-fixes twenty screenshots, so they simply stay wrong, and a stale screenshot reads as an abandoned product to a first-time visitor. Describe the shots once in a YAML file and regenerating all of them is one command — which means it can run automatically whenever you deploy. It is also the cheapest way to get bilingual assets: point the same shot list at ?lang=ru and you have a complete Russian screenshot set for free.
- Apache-2.0, pure Python — drops into the venv beside FastAPI with no new runtime
- Runs unattended in CI, so screenshots refresh on every deploy instead of never
- Can log in first and shoot authenticated pages — which is where Grasppy's good screens are
- Needs Playwright plus a headless Chromium download — a few hundred MB before the first shot
- Chromium is memory-hungry; run it on your Mac or in CI, not on the VPS serving users
- Getting a login-protected shot right takes a fiddly first hour of scripting
source venv/bin/activate pip install shot-scraper shot-scraper install # downloads headless Chromium, once shot-scraper multi shots.yml # regenerate every screenshot
