update-screenshots

microsoft/vscode · updated Apr 8, 2026

$npx skills add https://github.com/microsoft/vscode --skill update-screenshots
0 commentsdiscussion
summary

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.

skill.md

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 gh CLI must be authenticated (gh auth status).
  • The Screenshot Tests GitHub Action must have run and produced a screenshot-diff artifact.

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 report
  • report/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-diff artifact exists, the screenshots already match the baselines — no update needed.
  • The --filter option 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.
general reviews

Ratings

4.543 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

1 / 5