Awesome-openclaw-skills ui-test
Plain English E2E UI testing. Describe tests in natural language, agent executes via browser tool, then exports real Playwright test scripts for CI/CD. Use when asked to create UI tests, test a website, or generate Playwright scripts.
git clone https://github.com/sundial-org/awesome-openclaw-skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/sundial-org/awesome-openclaw-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/ui-test" ~/.claude/skills/sundial-org-awesome-openclaw-skills-ui-test && rm -rf "$T"
T=$(mktemp -d) && git clone --depth=1 https://github.com/sundial-org/awesome-openclaw-skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/ui-test" ~/.openclaw/skills/sundial-org-awesome-openclaw-skills-ui-test && rm -rf "$T"
skills/ui-test/SKILL.mdUI Test — Plain English E2E Testing (🧪)
Describe your UI tests in plain English. The agent figures out how to find buttons, navigate the app flow, and execute each step — no selectors or code needed. It screenshots every major step, stitches them into a walkthrough video, and DMs you the result with a pass/fail report.
Made in 🤠 Texas ❤️ PlebLab

Workflow
- Create — User names a test and describes steps in plain English
- Run — Agent opens the clawd browser, executes each step, screenshots each action
- Export — Agent generates a Playwright
from the verified steps.spec.ts - CI/CD — User drops the script into their test suite, runs with
npx playwright test
Agent Execution Flow
When running a test:
- Load test definition:
node scripts/ui-test.js get "<name>" - Start clawd browser:
browser action=start profile=clawd - Navigate to the test URL
- For each plain English step:
a. Interpret what the user means (click, type, assert, wait, etc.)
b. Use
to see the page c. Usebrowser action=snapshot
with the appropriate request (click/type/press/etc.) d. Take a screenshot after each step e. Record what selector/ref was used and whether it passedbrowser action=act - Save run results:
node scripts/ui-test.js save-run "<name>" passed=true/false - Report results to user with pass/fail per step
When exporting to Playwright:
- Load the test definition and most recent successful run
- Map each plain English step to Playwright API calls based on what worked during execution
- Generate a
file with proper imports, test structure, and assertions.spec.ts - Save to the user's project or a specified output path
Step Interpretation Guide
The agent should interpret plain English steps like:
| User says | Browser action | Playwright equivalent |
|---|---|---|
| "click the Sign In button" | | |
| "type hello@test.com in the email field" | | |
| "verify the dashboard shows Welcome" | + check text | |
| "wait for the page to load" | | |
| "click the hamburger menu" | (find menu icon) | |
| "scroll down" | | |
| "check the Remember Me checkbox" | | |
| "select 'USD' from the currency dropdown" | | |
| "take a screenshot" | | |
| "verify URL contains /dashboard" | check current URL | |
Commands
Run via:
node ~/workspace/skills/ui-test/scripts/ui-test.js <command>
| Command | Description |
|---|---|
| Create a new test |
| Add a plain English step |
| Replace all steps |
| Set the test URL |
| Show test definition |
| List all tests |
| Delete a test |
| Save execution results |
| Show run history |
| Export as Playwright script |
Export Format
Generated Playwright files include:
- Proper TypeScript imports
block with test nametest.describe
with navigation to base URLtest.beforeEach- Each step as a sequential action with comments showing the original English
- Assertions where the user said "verify", "check", "should", "expect"
- Screenshots on failure
Screenshots & Video
During test execution, the agent should:
- Before each step: take a screenshot → save as
step-NN-before.jpg - After each step: take a screenshot → save as
step-NN-after.jpg - On failure: take a screenshot → save as
step-NN-FAIL.jpg
Screenshots are saved to:
~/.ui-tests/runs/<slug>-<timestamp>/
After the run completes, generate a walkthrough video:
ffmpeg -framerate 1 -pattern_type glob -i '~/.ui-tests/runs/<folder>/step-*.jpg' \ -vf "scale=1280:-2" -c:v libx264 -pix_fmt yuv420p -y output.mp4
Then send the video to the chat.
Storage
- Test definitions:
~/.ui-tests/<slug>.json - Run history:
~/.ui-tests/runs/<slug>-<timestamp>/run.json - Screenshots:
~/.ui-tests/runs/<slug>-<timestamp>/step-*.jpg - Video:
~/.ui-tests/runs/<slug>-<timestamp>/walkthrough.mp4 - Exported scripts: user-specified path or
./tests/<slug>.spec.ts