Source: anthropics/skills · Maintainer: Anthropic · License: Apache 2.0 · Checked: 23 October 2026
What is the webapp-testing skill?
The webapp-testing skill teaches a coding agent to check a web app you are building by driving a real browser with Python Playwright: it opens pages, clicks, fills forms, takes screenshots and reads the console. It is for developers who want Claude Code (or another agent) to verify frontend work itself instead of asking you to look.
Its official description in the SKILL.md reads: "Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs."
It lives in Anthropic's anthropics/skills repo, which had about 183,000 GitHub stars when checked. Its skills.sh page showed 186.0K installs on 23 October 2026.
What does the webapp-testing skill do?
The agent loads the skill when a task matches its description: verifying that a feature works, debugging a UI bug, grabbing a screenshot of a page, or checking browser logs for errors. Once loaded, the SKILL.md gives it a short decision tree:
- Static HTML file? Read the file to find selectors, then write a Playwright script that opens it with a
file://URL. - Dynamic app, server not running? Use the bundled
with_server.pyhelper to start it. - Server already running? Follow "reconnaissance, then action": load the page, wait for network activity to settle, take a screenshot or read the DOM, find the right selectors, then act.
The one pitfall the skill calls out by name is inspecting the DOM too early. It tells the agent to always call page.wait_for_load_state('networkidle') on dynamic apps before looking at the page, because the JavaScript may not have rendered yet.
What is in the folder?
The folder is small:
SKILL.md: the instructions and decision tree.scripts/with_server.py: starts one or more servers, waits until each port accepts connections, runs your command, then stops the servers.examples/element_discovery.py: lists the buttons, links and inputs on a page.examples/static_html_automation.py: automates a local HTML file through afile://URL.examples/console_logging.py: captures console messages while the script clicks around.LICENSE.txt: Apache 2.0.
The helper takes a --server command and a --port for each server, an optional --timeout (30 seconds per server by default), and then the command to run after --. The SKILL.md shows both forms:
python scripts/with_server.py --server "npm run dev" --port 5173 -- python your_automation.py
python scripts/with_server.py \
--server "cd backend && python server.py" --port 3000 \
--server "cd frontend && npm run dev" --port 5173 \
-- python your_automation.py
How do you install the webapp-testing skill?
There are three documented routes. Pick one.
Claude Code plugin. The anthropics/skills README registers the repo as a plugin marketplace. In a Claude Code session, run:
/plugin marketplace add anthropics/skills
/plugin install example-skills@anthropic-agent-skills
The example-skills plugin installs Anthropic's example set (12 skills in the repo's marketplace file, including frontend-design, mcp-builder and web-artifacts-builder), not just this one. See Claude Code plugins for how plugins work.
The skills CLI. To install only this skill, use the command shown on its skills.sh page:
npx skills add https://github.com/anthropics/skills --skill webapp-testing
The skills CLI docs say it installs into the current project by default; add -g for all projects and -a claude-code to target Claude Code. For Claude Code the folder lands in .claude/skills/webapp-testing/ (project) or ~/.claude/skills/webapp-testing/ (global). The CLI needs Node.js 22.20 or later, per its README. Codex and Cursor read the same SKILL.md format; see Codex skills and Cursor skills.
Claude.ai. The README says the example skills "are all already available to paid plans in Claude.ai." Anthropic's help article on using skills in Claude explains turning on code execution and toggling skills under Customize, Skills. In practice this skill is most useful in a local agent, where your dev server actually runs.
How do you use it?
You don't need to name the skill. Ask for the job and the agent should pick it up. Some prompts that fit what it does:
- "Start the dev server and check that the signup form shows an error when the email is empty."
- "Take a full-page screenshot of localhost:5173 and tell me what looks broken on the pricing section."
- "Open the dashboard, click through each tab and collect any console errors."
- "List every button and link on the settings page so we can pick stable selectors."
- "Run the backend on port 3000 and the frontend on 5173, then log in as the test user and confirm the welcome banner appears."
Requirements
The SKILL.md lists no requirements file, but its scripts and examples assume:
- Python 3 with Playwright for Python. Playwright's library guide installs it with
pip install playwright, thenplaywright installto download the browsers. - Chromium. The SKILL.md tells the agent to always launch Chromium in headless mode.
- Whatever your app needs to run locally (Node, a database, and so on).
with_server.pyitself uses only the Python standard library.
pip install playwright
playwright install
Tips and limits
- Scripts are black boxes on purpose. The SKILL.md tells the agent to run each helper with
--helpfirst and not read its source unless it truly needs a custom version, to keep its context window clear. If the agent starts reading the script, that is the skill being ignored. - It runs commands you give it.
with_server.pystarts each--serverstring through the shell, so it will run whatever command it is handed. Read the commands before you approve them, as you would any agent shell call. - Fix example paths.
static_html_automation.pyandconsole_logging.pysave their output to/mnt/user-data/outputs/, a folder that won't exist on most machines. Change output paths before reusing the examples. - Local apps first. The description says "local web applications," and the examples all point at
localhost. Playwright can open any URL, but logging into third-party sites is a different job; see agent-browser for general browsing. - Not a test suite. The scripts are one-off checks. For permanent end-to-end tests, Playwright's getting started guide recommends its pytest plugin.
- Demonstration status. Anthropic's README calls these skills "provided for demonstration and educational purposes only." The skills.sh page also lists third-party security audit results for the skill; check them before installing in a sensitive environment.
Save it in your Kipt library
If you collect skills like this one, Kipt keeps them in one place. Open Skills in Kipt and paste the skill's GitHub folder link into the import box; Kipt reads the SKILL.md and its files, and for a repo with many skills it shows a list to pick from. You can also drop the folder or a .zip. Your skills live in your own private GitHub repo and install into Claude Code or Codex with one command:
npx skills add https://github.com/<you>/<repo>.git --all -g
Similar skills
- agent-browser skill: browser automation for general sites, not just local apps.
- web-artifacts-builder skill: build a React artifact, then test it with this skill.
- frontend-design skill: design the UI before you test it.
- tdd skill: a test-first workflow for the code behind the UI.