TestPilot is an AI-powered visual testing tool for web apps. Users describe tests in plain English, Playwright runs the actions and captures screenshots, and Gemini evaluates whether the flow worked correctly.
- Visual Understanding: Playwright captures initial UI screenshots to give Gemini full context before test execution begins.
- Continuous Screenshot Pipeline: Each interaction generates a new screenshot, creating a complete visual trace of the test.
- AI-Powered Evaluation: Gemini analyzes the screenshot sequence and determines whether the expected behavior occurred, providing natural-language reasoning.
- Natural-Language Test Cases: Users describe tests in everyday English — no scripts, JSON, or selectors required.
- Real-Time Feedback: Users describe tests in everyday English, no scripts, JSON, or selectors required.
- Frontend: Next.js, TypeScript
- Backend: Python, FastAPI
- Browser Automation: Playwright (Python)
- Real-Time Streaming: Socket.io
- AI/LLM: Google Gemini Vision API
To get a local copy up and running, follow these steps.
- Node.js and npm
- Python 3
- Gemini API key
- Clone the repo:
git clone https://github.com/ian-yeh/hack-western.git
- Install frontend dependencies:
cd frontend npm install - Install backend dependencies:
cd ../backend # Assuming a requirements.txt file exists pip install -r requirements.txt playwright install
- Start the frontend development server:
cd frontend npm run dev - Start the backend server:
cd ../backend uvicorn app.main:app --reload
Once both servers are running:
- Open the TestPilot UI
- Paste your website link
- Describe your test in natural language
- Watch the real-time screenshot stream
- Review Gemini's evaluation and results
- Natural-Language Debugging: Allow users to ask “Why did this break?” and receive an AI-generated explanation with recommended fixes.
- Autonomous Exploration Mode: Enable TestPilot to automatically navigate a website, discover user flows, map pages, and identify key interactions without manual input.
- State-Diff Comparison: Provide visual and structural before-and-after diffs so users can clearly see what changed between test steps.
Contributions are welcome! Please follow these steps:
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/YourFeature) - Commit your Changes (
git commit -m 'Add YourFeature) - Push to the Branch (
git push origin feature/YourFeature)