Paidwen

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

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

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 init writes a first journey for each public page. npx paidwen record records 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.

Output of npx paidwen verdict for pull request #3 of 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 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 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 Verifications page of the Paidwen dashboard for the paidwen-demo repository, with the numbers of the month and one row per verification.
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.