How this tool works
This platform has two parts — App Discovery and the Test Runner. Together they form a pipeline for generating and running automated Selenium tests against your web apps.
Download the Discovery Skill
Click ↓ Download Discovery Skill in the header. This is a Claude Code skill file (.md) that you add to your local Claude Code project.
Run the Discovery Skill locally
In Claude Code on your machine, run the discovery skill and point it at your app's URL with login credentials. Claude will generate a discover_<appname>.py script — no local Python or Selenium needed.
Upload and run the discovery script
Go to App Discovery, upload the generated discover_<appname>.py file, and click Run. The script runs on this server using the installed Selenium environment and outputs everything it finds about the app.
Download the discovery output
Once the script completes, click ↓ Download Output in the result panel. This gives you a _result.txt file containing a full map of the app — pages, forms, inputs, tables, and navigation.
Generate an app-specific test skill
Feed the downloaded output back into the discovery skill in Claude Code. It will produce a new app-specific skill file (generate-<appname>-test.md) with all the app knowledge baked in. You only do this once per app.
Generate test scripts
Use the app-specific skill in Claude Code to generate test scripts. Tell it what scenario to test and it will produce a ready-to-upload .py file using the correct headless Chrome setup and result file conventions.
Upload and run your tests
Go to the Test Runner, upload your test script, and click Run. Results are displayed immediately with a PASS, FAIL, or ERROR banner.
Result file conventions
Every test script must follow these rules for the runner to work correctly:
- The result file must be named
{script_stem}_result.txtand written next to the script - Use
SCRIPT_STEM = os.path.splitext(os.path.basename(__file__))[0]to derive the name automatically - The file must contain the word
PASSorFAILfor the UI banner and sidebar dot to update - If the script crashes before writing a result file, the runner shows an ERROR banner with the raw output