Paidwen tests your critical featureson every pull request.
Your agents open more pull requests than anyone can test by hand.
You list your critical features once, like sign-up, login and checkout. On every pull request, Paidwen uses your app like a real user and blocks the merge when one of them breaks. A video shows what broke.
Sort the invoice page in the web app #3
claude/sort-invoice-pageintomain
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
PaidwenRequired
Merging is blocked
You choose the features that must never break.
Each critical feature is a journey of a few steps in paidwen.yml. Paidwen clicks, types and reads the page like a user, and compares a broken journey with the base branch.
The 9 critical features of paidwen-demo
- Sign up and confirm the email8 steps
- Log in with the demo account5 steps
- Create an invoice and mark it as sent12 steps
- Sort the invoices by amount7 steps
- Subscribe to Pro with a test card12 steps
- Export the invoices as CSV6 steps
- Create a client9 steps
- Open the newest invoice7 steps
- Mark the newest draft invoice as sent7 steps
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 app
- Paidwen starts it from your compose file or Dockerfile, with a fresh database and your seed script.
- No real payment or email
- Stripe, email, storage and AI APIs answer from local mocks by default.
- Journeys written for you
npx paidwen initwrites a first journey for each public page.npx paidwen recordrecords a journey while you click.- Only the pull request is blamed
- A 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.
$ 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 Copilot
- Paidwen verifies the pull requests of every agent and of your developers with the same journeys.
- Agent pull requests detected
- Paidwen recognizes them by their branch prefix, their author and their Co-Authored-By lines.
- One command for the agent
npx paidwen verdictprints the last verdict, ready to paste.npx paidwen mcpserves 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 numbers
- Pull requests verified, broken, stopped before the merge, and the share written by agents.
- One page per verification
- The verdict, the video, the commit and the workflow run.
- Copy for your agent
- The verdict leaves the dashboard in one click, ready to paste.
- A monthly report
- Verified 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
- Your code
- Your app and a fresh database
- Chromium
- The signed Paidwen engine
GitHub destroys the machine after the job.
Verdict lines and video link
Paidwen
- The check on the pull request
- The comment with the verdict
- The page of the video
- No Contents permission
- The GitHub App cannot read the code of your repository.
- A signed engine
- The runner refuses any engine whose signature does not match the pinned public key.
- Forks without secrets
- A maintainer starts the first verification of a new contributor.
- No AI model in the replay
- The replay is a deterministic Playwright script.
Public repositories are free, and private ones start with a 14-day free trial.
Install the GitHub App, add the workflow and paidwen.yml, and the next pull request gets its verdict.