Automated QA forAI-written code.
Automated QA forAI-written code.
Your agents open pull requests faster than anyone can review them.
On every pull request, Paidwen opens your app and uses it like a real user. It creates an account, logs in and fills in your forms. If something breaks, it blocks the pull request and shows you a video of what broke.
Sort the invoice page in the web app #3
`claude/sort-invoice-page`into`main`
Paidwen This pull request breaks a user journey.
- Journeys: 6 passed, 1 broken out of 7.
- Broken: Sort the invoices by amount at step "expect text $5,936.40". After clicking "Largest first", the page /invoices?sort=amount does not show "$5,936.40".
- Red line: no secret and no vulnerable dependency added.
- Watch the video
- Your code
- Your app and a fresh database
- Chromium
- The signed Paidwen engine
- The check on the pull request
- The comment with the verdict
- The page of the video
PaidwenRequired
Merging is blocked
Pull request #3 of paidwen-demo sorts the invoices in the browser, one page at a time. The largest invoice stays on page 2, so the sort journey breaks. Open pull request #3 on GitHub
Paidwen replays your user journeys in a real browser.
A journey is a few lines of YAML. Paidwen clicks, types and reads the page like a user, and compares a broken journey with the base branch.

paidwen.yml
journeys: - id: sort name: Sort the invoices by amount account: true steps: - goto: /login - fill: { field: Email, value: "{{account.email}}" } - fill: { field: Password, value: "{{account.password}}" } - click: Log in - goto: /invoices - click: Largest first - expect: { text: "$5,936.40" }
Your real appPaidwen starts it from your compose file or Dockerfile, with a fresh database and your seed script.
No real payment or emailStripe, email, storage and AI APIs answer from local mocks by default.
Journeys written for you`npx paidwen init` writes a first journey for each public page. `npx paidwen record` records a journey while you click.
Only the pull request is blamedA journey that also breaks on the base branch does not count against the pull request.
Your agent reads the verdict and fixes the pull request.
The verdict names the broken journey, the failed step and what the browser saw. Paidwen replays the journeys on every new commit.
Output of npx paidwen verdict for pull request #3 of paidwen-demo
paidwen-demo
$ npx paidwen verdict This pull request breaks a user journey. Journeys: 6 passed, 1 broken out of 7. Broken: Sort the invoices by amount at step "expect text $5,936.40". After clicking "Largest first", the page /invoices?sort=amount does not show "$5,936.40". Red line: no secret and no vulnerable dependency added.
For your agent: Pull request: #3 Sort the invoice page in the web app Commit: 59cb68c Broken journey: Sort the invoices by amount Step: expect text $5,936.40 Seen: After clicking "Largest first", the page /invoices?sort=amount does not show "$5,936.40". Video: https://api.paidwen.com/v/c6a77f97-11a2-4aa8-b8f5-78e43f4d806b Details: https://app.paidwen.com/RaselisonToky/verifications/c6a77f97-11a2-4aa8-b8f5-78e43f4d806b Fix the cause, push, and Paidwen will replay the journeys.
Claude Code, Codex, Cursor and CopilotPaidwen verifies the pull requests of every agent and of your developers with the same journeys.
Agent pull requests detectedPaidwen recognizes them by their branch prefix, their author and their Co-Authored-By lines.
One command for the agent`npx paidwen verdict` prints the last verdict, ready to paste. `npx paidwen mcp` serves it to your agent.
The dashboard keeps every verification of every repository.
Each row is a pull request with its verdict, its journeys, its duration and the agent that wrote it.

The month in four numbersPull requests verified, broken, stopped before the merge, and the share written by agents.
One page per verificationThe verdict, the video, the commit and the workflow run.
Copy for your agentThe verdict leaves the dashboard in one click, ready to paste.
A monthly reportVerified pull requests per week and per repository, and the review hours saved.
Your code never leaves your GitHub Actions runner.
The servers of Paidwen receive the verdict lines and the link to the video. They never read or store your code.
Your GitHub Actions runner
GitHub destroys the machine after the job.
Verdict lines and video link
Paidwen
No Contents permissionThe GitHub App cannot read the code of your repository.
A signed engineThe runner refuses any engine whose signature does not match the pinned public key.
Forks without secretsA maintainer starts the first verification of a new contributor.
No AI model in the replayThe replay is a deterministic Playwright script.
Public repositories are free.
Install the GitHub App, add the workflow and paidwen.yml, and the next pull request gets its verdict.
