Claw through bugs before your users do.
Crawlix is an open-source autonomous QA agent that spawns AI-powered user personas and unleashes them on your product. Each persona navigates independently, makes real decisions, hits dead ends, and finds bugs - without you writing a single test script.
Crawlix spawns multiple AI agents simultaneously. Each one opens your app in a real browser, reads the UI, and navigates toward the goal exactly as that type of user would behave - including their mistakes, impatience, and confusion. When they find something broken, confusing, or unexpected - they report it.
๐พ Crawlix - Claw through bugs before your users do.
target โ http://localhost:3000/
goal โ Check the landing page is everything working fine
agents โ First-Timer, Impatient, Power User, Adversarial, Non-Native Speaker, Slow Network
โ First-Timer 2 critical ยท 3 warnings 18 steps ยท 12.3s
~ Impatient 1 warning 6 steps ยท 4.1s
โ Power User no findings 22 steps ยท 15.7s
โ Adversarial 3 critical 14 steps ยท 9.2s
~ Non-Native 106 warnings ยท 1 info 10 steps ยท 27.5s
~ Slow Network no findings 4 steps ยท 27.7s
โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ ๐พ Crawlix - run complete โ
โ โ
โ 1 critical 106 warnings 1 info โ
โ โ
โ 0 passed 0 stuck 6 incomplete โ
โ โ
โ total time โ 539.8s โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
๐ report saved โ ./crawlix-reports/report-2026-05-24.md
No test scripts. No selectors. No maintenance.
npm install -g crawlixRun once. Crawlix asks for your LLM provider and API key - remembers it forever.
crawlix setupSupported providers:
- Groq
- Gemini
- Cerebras
- Mistral
- OpenRouter
- Ollama
- OpenAI
- Anthropic
- Custom (openai compatible providers)
Config is saved to ~/.crawlix/crawlix.config.json.
You can provide Crawlix with context about your application so the agents can make smarter decisions.
Simply create a CONTEXT.md file inside a .crawlix folder in your project root:
# My App Context
This is a web app. The agents should test the main signup flow.
- Stack: Next.js, Postgres
- Auth: Not required
- Off-limits: Do not delete user dataThe agents will automatically read this file when running in your project.
# run all agents against your app
crawlix run --url https://myapp.com --goal "complete the signup flow"
# run specific agent(s) only - comma separated
crawlix run --url https://myapp.com --goal "login" --agent first-timer,adversarial
# run headed - watch agents navigate in real browser
crawlix run --url https://myapp.com --goal "checkout" --headed
# control max steps per agent
crawlix run --url https://myapp.com --goal "find pricing" --steps 15
# control how many agents run in parallel
crawlix run --url https://myapp.com --goal "test signup" --concurrency 1
# use round robin across multiple providers to avoid rate limiting
crawlix run --url https://myapp.com --goal "test signup" --round-robin
# list all available agents
crawlix agents
# reconfigure your LLM provider
crawlix setup| Agent | Behavior |
|---|---|
first-timer |
Never seen this app. Reads nothing. Clicks whatever looks obvious. |
impatient |
Skips everything. Rage-clicks. Abandons if stuck for more than 2 steps. |
power-user |
Tries every edge case, advanced flow, and keyboard shortcut. |
adversarial |
SQL injection, XSS attempts, wrong inputs, broken sequences. |
non-native |
Misreads labels, confused by idioms. Tests copy clarity ruthlessly. |
slow-network |
Throttled connection. Finds missing loading states and timeouts. |
Drop a JSON file into .crawlix/agents/ in your project root:
{
"name": "doctor",
"description": "Medical professional, time-pressured, technically literate",
"systemPrompt": "You are a busy doctor with 2 minutes between patients. You know what you want, you don't read instructions, and you get frustrated fast if the UI isn't obvious.",
"patience": 4,
"aggression": 3,
"readingBehavior": "skim"
}Crawlix picks it up automatically on the next run. No code, no imports, no build step.
Run a specific custom agent:
crawlix run --url https://myapp.com --goal "book an appointment" --agent doctorAfter every run, Crawlix generates an AI-powered markdown report saved to ./crawlix-reports/.
The report includes:
- Executive summary
- Critical issues with suggested fixes
- Warning patterns across agents
- Agent performance breakdown
- Prioritized recommendations
Crawlix reports three severity levels:
| Severity | Meaning |
|---|---|
critical |
Broken element, crash, security issue, complete blocker |
warning |
Confusing flow, missing feedback, slow response, unclear copy |
info |
Minor friction, accessibility gap, copy improvement |
Traditional QA tools require you to write and maintain selectors, flows, and assertions. They break when your UI changes. They only test paths you already thought of.
Crawlix doesn't know your app. That's the point. It finds the paths you didn't think of - the ones your real users will find on their own.
- Web testing (Playwright)
- AI-generated reports
- Custom agents via JSON
- API testing (no UI)
- Mobile testing (Appium)
- Desktop testing (Electron / WinAppDriver)
- CI/CD integration (GitHub Actions)
- HTML report export
Contributions are welcome - bug fixes, new agents, adapter improvements, or anything that makes it better. Please see CONTRIBUTING.md for details on how to get started.
MIT - see LICENSE
