Playwright visual tests need browser binaries (playwright install chromium) which CI doesn't have. Mark them with pytest.mark.visual and add addopts = "-m 'not visual'" so they're skipped by default. Run locally with: uv run pytest -m visual tests/test_visual.py -v Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>