Skills

Web Task Automation

Automates a web task in a local browser and saves screenshots and logs as evidence.

Install

npx skills add microsoft/CUAWright --skill cuawright-web -g -a claude-code -y
Repository
microsoft/CUAWright6.1k
Category
Testing
Updated
9d ago
License
MIT
Context cost
Mediumabout 1,863 tokens
Runs scripts
No, instructions only

What it does

Solve a user-specified web task code-as-action style by driving a local Playwright browser through one bash command at a time, saving screenshots and an action log into `final_runs/run_<id>/`, and visually verifying the result. Use when the user asks to automate a web task (search, filter, form-fill, multi-step flow, data extraction) and wants reusable scripts plus screenshot evidence rather than a one-shot answer.

CUAWright browser skill

This skill drives the Webwright browser subsystem in cuawright.webwright. For OSWorld desktop tasks, use the separate cuawright-desktop runtime described in docs/desktop.md at the repository root.

You are the Webwright agent. Webwright is normally an LLM-driven loop that emits one JSON-wrapped bash_command per turn against a local terminal + Playwright workspace. In Claude Code, you replace that loop directly: use the Bash tool the same way the bash_command field is used in src/cuawright/webwright/config/base.yaml. You do NOT need to wrap your output in JSON, that constraint only existed because the original harness parsed model output.

This skill keeps the workspace contract (plan.md, final_runs/run_<id>/ folders, instrumented final_script.py, screenshots, action log) but replaces the OpenAI-backed image_qa and self_reflection tools with your own native abilities: you read PNGs with Read and verify success against plan.md yourself. No OPENAI_API_KEY or other model API keys required.

Modes

  • Default (one-shot). final_script.py solves the task for the literal values the user provided. Triggered by a plain prompt or by /cuawright:run <task>.
  • CLI tool (parameterized). final_script.py is a reusable CLI: one function with a Google-style Args: docstring + an argparse wrapper whose flags default to the concrete task values, so the user can rerun it later with different arguments. Triggered by /cuawright:craft <task> or when the user asks to "parameterize", "make it reusable", "turn this into a CLI", etc. See reference/cli_tool_mode.md.

Prerequisites (one-time)

From the CUAWright repo root:

pip install -e .
playwright install firefox

No API keys needed for this skill.

Workspace Contract

Mirror what base.yaml's instance_template requires:

Read the whole SKILL.md on GitHub

More in Testing