visual-qa-testing — Cursor skill: visual QA for your UI
Opens your app in Cursor's built-in browser, grabs a screenshot, reads console errors and audits network requests. Handy right after UI edits.
npx skills add spencerpauly/awesome-cursor-skills --skill visual-qa-testing -a claude-codeWhat visual-qa-testing does
This skill runs a visual QA pass on a web app without leaving Cursor. It leans on the built-in cursor-ide-browser MCP, which can open URLs, take screenshots, read console messages, inspect network requests and interact with page elements.
The flow: make sure the dev server is up, and if it is not, start it in the background with npm run dev and wait for the localhost line. Then browser_navigate opens the route, browser_take_screenshot captures the full page, browser_console_messages surfaces errors like TypeError, ReferenceError or React hydration mismatches, and browser_network_requests shows 4xx/5xx codes, CORS failures and duplicate calls. When the change touches buttons, forms or modals, browser_click, browser_fill and browser_hover drive the interaction and you screenshot again.
Before clicking anything, the skill advises calling browser_snapshot to get correct element refs. browser_resize covers responsive checks, and browser_navigate with position: "side" puts the browser next to your code. One catch: the whole thing depends on Cursor's built-in browser, so in other editors you would repeat these steps by hand.
What it helps with
- check how a page renders after a layout change
- catch JavaScript errors in the console before shipping
- spot failed API calls and 4xx/5xx responses
- test a button, form or modal by clicking it in the browser
- view the page at a different viewport size
Example prompts for the agent
- run a visual QA pass on the home page and show me the screenshot
- check the console and network requests on /settings after my edits
- click the save button and screenshot the result
How to install visual-qa-testing
1Skills CLI (Vercel)
npx skills add spencerpauly/awesome-cursor-skills --skill visual-qa-testing -a claude-code2Manually: put the files in place
~/.claude/skills/visual-qa-testing/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/visual-qa-testing/
1Skills CLI (Vercel)
npx skills add spencerpauly/awesome-cursor-skills --skill visual-qa-testing -a codex2Manually: put the files in place
.agents/skills/visual-qa-testing/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add spencerpauly/awesome-cursor-skills --skill visual-qa-testing -a cursor2Manually: put the files in place
.cursor/skills/visual-qa-testing/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install spencerpauly/awesome-cursor-skills visual-qa-testing2Manually: put the files in place
.github/skills/visual-qa-testing/SKILL.md1Skills CLI (Vercel)
npx skills add spencerpauly/awesome-cursor-skills --skill visual-qa-testing -a gemini-cli2Platform CLI
gemini skills install https://github.com/spencerpauly/awesome-cursor-skills --path resources/visual-qa-testingManually: put the files in place
.devin/skills/visual-qa-testing/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add spencerpauly/awesome-cursor-skills --skill visual-qa-testing -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about visual-qa-testing
How do I install visual-qa-testing in Cursor?
Run npx skills add spencerpauly/awesome-cursor-skills --skill visual-qa-testing -a cursor. The skill lands at .cursor/skills/visual-qa-testing/SKILL.md.
What does visual-qa-testing do?
It opens a page in Cursor's built-in browser, takes a screenshot, reads console errors and checks network requests. That tells you what your UI change actually did.
Does it need a running dev server?
Yes. The skill first checks whether a dev server is running and, if not, starts one in the background with npm run dev. Wait for the localhost line in the output.
Source text
SKILL.md · CC0-1.0
---
name: visual-qa-testing
description: Visually QA a web application by launching it in Cursor's built-in browser, taking screenshots, checking console errors, and auditing network requests. Use after making UI changes to verify they look correct.
---
# Visual QA
Use this skill after making UI changes to visually verify the result, catch console errors, and audit network requests — all without leaving Cursor.
## How It Works
Cursor has a built-in browser (`cursor-ide-browser` MCP) that can navigate to URLs, take screenshots, read console messages, inspect network requests, and interact with page elements. This skill uses those tools to do a quick visual QA pass.
## Steps
1. **Ensure the dev server is running** — check if there's already a terminal running the dev server. If not, start one in the background:
```bash
npm run dev
```
Wait for the server to be ready (watch for the "ready" or localhost URL in the output).
2. **Navigate to the page** — use `browser_navigate` to open the relevant page:
```
Tool: browser_navigate
Arguments: { "url": "http://localhost:3000", "take_screenshot_afterwards": true }
```
If the change is on a specific route, navigate directly to it (e.g., `/settings`, `/dashboard`).
3. **Take a screenshot** — capture the current state:
```
Tool: browser_take_screenshot
Arguments: { "fullPage": true }
```
Review the screenshot for visual issues: layout breaks, missing content, wrong colors, misaligned elements.
4. **Check console for errors** — look for JavaScript errors or warnings:
```
Tool: browser_console_messages
```
Report any errors, especially `TypeError`, `ReferenceError`, failed imports, or React hydration mismatches.
5. **Audit network requests** — check for failed API calls or unexpected requests:
```
Tool: browser_network_requests
```
Look for: 4xx/5xx status codes, CORS errors, excessively large responses, unnecessary duplicate requests.
6. **Interact if needed** — if the change involves interactive elements (buttons, forms, modals), use `browser_click`, `browser_fill`, or `browser_hover` to test the interaction, then take another screenshot to verify.
7. **Report findings** — summarize:
- Screenshot shows the UI looks correct (or what's wrong)
- Console is clean (or list errors found)
- Network requests are healthy (or list failures)
## Notes
- Always use `browser_snapshot` before clicking elements to get the correct element refs.
- For responsive testing, use `browser_resize` to check different viewport sizes.
- Use `browser_navigate` with `position: "side"` to open the browser beside your code.
© spencerpauly · CC0-1.0 · spencerpauly/awesome-cursor-skills