The open-source, self-hosted alternative to fragile E2E test suites.
Write tests in plain language. Get screenshot evidence for every run.
Cypress and Playwright make you code against DOM selectors that break when the UI changes. SkyTest Agent works differently: describe what a user would do in plain language, and a browser agent runs those steps, capturing screenshots as evidence.
It is self-hosted, open source, and uses your own API key.
Welcome.mp4
- Plain-language tests - Write test cases the way you'd explain them to a colleague. No CSS selectors or XPaths.
- Visual evidence - Every run captures screenshots and logs so you see what happened, not just pass/fail.
- Multi-session flows - Coordinate across browser roles (e.g., "Browser A" sends a message, "Browser B" receives it) for multi-user scenarios.
- Custom Playwright code - Mix AI-driven steps with your own Playwright scripts when you need precise control.
- Parallel execution - Run tests concurrently for faster feedback.
- Project management - Organize test cases by project with a built-in web UI.
- Bring Your Own Key - Use your own OpenRouter API key. You pay only your LLM costs.
Example test case:
1. Open the app
2. Sign in as a user
3. Add an item to the cart
4. Verify checkout succeeds
npm install
npx playwright install
cp .env.example .env.local
# Edit .env.local with your credentials
npx prisma db push
npm run devOpen http://localhost:3000 and sign in.
Don't want to self-host? We're building a managed version of SkyTest.
See .env.example for all available options. Required:
ENCRYPTION_SECRET- Random 32+ char string for API key encryptionNEXT_PUBLIC_AUTHGEAR_*- Authgear credentials from portal.authgear.com
Users provide their own OpenRouter API keys via the app settings.
- Browsers not found:
npx playwright install - Database errors:
rm -f dev.db && npx prisma db push - View database:
npx prisma studio - Auth redirect issues: Check Authgear redirect URI matches your domain
Bug reports, feature requests, and pull requests are all welcome.
- Report a bug - Open an issue
- Request a feature - Start a discussion
- Contribute code - Fork the repo, create a branch, and open a pull request