update-screenshots▌
microsoft/vscode · updated Apr 8, 2026
When asked to update, accept, or refresh screenshot baselines from CI — or when the Screenshot Tests GitHub Action has failed with screenshot differences — follow this procedure to download the CI-generated screenshots and commit them as the new baselines.
Update Component Screenshots from CI
When asked to update, accept, or refresh screenshot baselines from CI — or when the Screenshot Tests GitHub Action has failed with screenshot differences — follow this procedure to download the CI-generated screenshots and commit them as the new baselines.
Why CI Screenshots?
Screenshots captured locally may differ from CI due to platform differences (fonts, rendering, DPI). The CI (Linux, ubuntu-latest) is the source of truth. This skill downloads the CI-produced screenshots and commits them as baselines.
Prerequisites
- The
ghCLI must be authenticated (gh auth status). - The
Screenshot TestsGitHub Action must have run and produced ascreenshot-diffartifact.
Procedure
1. Find the latest screenshot artifact
If the user provides a specific run ID or PR number, use that. Otherwise, find the latest run:
# For a specific PR:
gh run list --workflow screenshot-test.yml --branch <branch> --limit 5 --json databaseId,status,conclusion,headBranch
# For the current branch:
gh run list --workflow screenshot-test.yml --branch $(git branch --show-current) --limit 5 --json databaseId,status,conclusion
Pick the most recent run that has a screenshot-diff artifact (runs where screenshots matched won't have one).
2. Download the artifact
gh run download <run-id> --name screenshot-diff --dir .tmp/screenshot-diff
The artifact is uploaded from two paths (test/componentFixtures/.screenshots/current/ and test/componentFixtures/.screenshots/report/), but GitHub Actions strips the common prefix. So the downloaded structure is:
current/— the CI-captured screenshots (e.g.current/baseUI/Buttons/Dark.png)report/report.json— structured diff reportreport/report.md— human-readable diff report
3. Review the changes
Show the user what changed by reading the markdown report:
cat .tmp/screenshot-diff/report/report.md
4. Copy CI screenshots to baseline
# Remove old baselines and replace with CI screenshots
rm -rf test/componentFixtures/.screenshots/baseline/
cp -r .tmp/screenshot-diff/current/ test/componentFixtures/.screenshots/baseline/
5. Clean up
rm -rf .tmp/screenshot-diff
6. Stage and commit
git add test/componentFixtures/.screenshots/baseline/
git commit -m "update screenshot baselines from CI"
7. Push LFS objects before pushing
Screenshot baselines are stored in Git LFS. The git lfs pre-push hook is not active in this repo (husky overwrites it), so LFS objects are NOT automatically uploaded on git push. You must push them manually before pushing the branch, otherwise the push will fail with GH008: Your push referenced unknown Git LFS objects.
git lfs push --all origin <branch-name>
git push
8. Verify
Confirm the baselines are updated by listing the files:
git diff --stat HEAD~1
Notes
- If no
screenshot-diffartifact exists, the screenshots already match the baselines — no update needed. - The
--filteroption on the CLI can be used to selectively accept only some fixtures if needed. - After committing updated baselines, the next CI run should pass the screenshot comparison.
Discussion
Product Hunt–style comments (not star reviews)- No comments yet — start the thread.
Ratings
4.5★★★★★43 reviews- ★★★★★Mia Agarwal· Dec 28, 2024
update-screenshots is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
- ★★★★★Diego Tandon· Dec 28, 2024
update-screenshots fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.
- ★★★★★Aisha Farah· Dec 24, 2024
update-screenshots reduced setup friction for our internal harness; good balance of opinion and flexibility.
- ★★★★★Chinedu Ndlovu· Dec 24, 2024
I recommend update-screenshots for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
- ★★★★★Aarav Desai· Nov 27, 2024
Keeps context tight: update-screenshots is the kind of skill you can hand to a new teammate without a long onboarding doc.
- ★★★★★Mia Patel· Nov 19, 2024
We added update-screenshots from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.
- ★★★★★Zara Agarwal· Nov 15, 2024
Useful defaults in update-screenshots — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
- ★★★★★Meera Zhang· Oct 18, 2024
We added update-screenshots from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.
- ★★★★★Mia Brown· Oct 10, 2024
Keeps context tight: update-screenshots is the kind of skill you can hand to a new teammate without a long onboarding doc.
- ★★★★★Mia Park· Oct 6, 2024
Registry listing for update-screenshots matched our evaluation — installs cleanly and behaves as described in the markdown.
showing 1-10 of 43