Click through your app once. Keep the Playwright test.
PlayForge records what you do in Chrome, writes a standard Playwright test from it, runs it in your own browser, and repairs it with AI when it fails.
Free during early access. Works in Chrome, Edge, Brave and other Chromium browsers.
- Opened /phones
- Clicked link “iPhone 18 Pro…” · new tab
- Clicked “Add to Cart” · POST /api/cart 200
- Checked text “Added to cart”
import { test, expect } from '@playwright/test';test('add a phone to the cart', async ({ page }) => { await page.goto('https://shop.example.com/phones'); const product = page.waitForEvent('popup'); await page.getByRole('link', { name: 'iPhone 18 Pro (256 GB) - Silver' }).click(); page = await product; const cart = page.waitForResponse((r) => r.url().includes('/api/cart')); await page.getByRole('button', { name: 'Add to Cart' }).click(); await cart; await expect(page.getByRole('status')).toHaveText('Added to cart');});
An example of what PlayForge produces. Every line is ordinary Playwright that you can read, commit and run with npx playwright test. Watch it record the flow, write the test, then replay it.
How it works
Four steps, all in the browser you already use.
Record
Start a session and use your site as normal. Clicks, typing, new tabs and the site's API responses are captured. Passwords are masked.
Generate
The AI turns the recording into a test plan, and PlayForge writes a standard
.spec.tswith role, label and text locators.Run
Run Test replays it in a new tab of your Chrome, on your network, signed in the way you are.
Repair
If a step fails, the AI reads the error and the recording, fixes the test and runs it again, up to three times. Real bugs are reported, not hidden.
It handles the parts that make recorded tests flaky
Recorders usually stop at clicks and CSS selectors. These are the things PlayForge was built around.
Checks against your API data
Pick a value on the page and PlayForge finds it in the API response, so the test checks what the server sent, in the order the page shows it.
await expect.poll(() => plans.length).toBeGreaterThan(0);
Links that open a new tab
Recording follows the new tab, and the test waits for the pop-up and carries on there.
page = await page.waitForEvent('popup');
Styled radio buttons and checkboxes
Hidden inputs behind custom designs are clicked through their label, the way a person does.
await page.locator('label').filter({ has: plan }).click();
No fixed waits
Steps wait for the element or the response they need. A slow API doesn't fail the test, and a page that's truly stuck fails fast.
await page.waitForResponse((r) => r.url().includes('/api/plans'));
Your browser, not our servers
Tests are recorded and run where your app already works: on your computer, behind your VPN, with your sign-ins.
The PlayForge extension
Install it in Chrome and PlayForge records in a new tab and runs tests there. It only watches the tab you started a recording in.
- Works on localhost, intranet apps and pages you're signed in to
- Passwords and fields that look like secrets are masked
- Secrets your test needs are asked for at run time and never stored
Extensions blocked at your company?
PlayForge Runner is a small program you start on your computer. It opens its own Chromium window with the same PlayForge extension inside, so recording and running work exactly the same way.
- Same recorder, same test engine, same results
- Remembers sign-ins in its own window
- Needs Node.js 18 or newer
Built for teams
Invite your team by e-mail and give each person a role. Everyone works in the same projects and tests.
| Admin | Everything, including the team, roles and AI cost per test |
|---|---|
| Developer | Create projects, record, generate, run and export tests |
| Viewer | Look at projects, sessions and tests, and export them |
Keep the code
Export any test as a standard .spec.ts file and run it in your own CI with Playwright. Nothing in it depends on PlayForge.
Pricing
Running tests is unlimited on every plan, because they run in your own browser. Plans differ in how many tests the AI writes for you each month.
Free
Forever
- 1 user, 1 project
- 5 AI-generated tests a month
- Unlimited test runs
- AI repairs and export
Pro
Billed monthly
- Unlimited projects
- 50 AI-generated tests a month per user
- Unlimited test runs
- AI repairs and export
Team
Up to 5 users
- 300 AI-generated tests a month, shared
- Team invites and roles
- PlayForge Runner for locked-down machines
- Everything in Pro
Business
For larger companies
- Custom limits and users
- Priority support
- Invoice billing
- Single sign-on (planned)
Want us to set it up for you?
We record up to 30 of your key flows with you and hand over a working Playwright suite in your repository, plus a month of Team. $1,500 one-off. Write to eramrajurr@gmail.com.
Questions
Is the test I get really standard Playwright?
Yes. It's a plain @playwright/test file using getByRole, getByLabel and getByText locators and web-first assertions. You can export it and run it anywhere Playwright runs.
What does the extension record?
Only the tab you started a recording in, and only until you stop: clicks, typing, page addresses and the JSON responses of the site's API calls. Passwords and fields that look like secrets are masked before anything leaves your browser.
The privacy policy lists exactly what is stored and where.
What counts as an AI-generated test?
Each time the AI writes a test from one of your recordings. Running tests, exporting them and AI repairs of a failing test don't count.
Which browsers work?
Chrome, Edge, Brave, Arc and other Chromium browsers. Firefox and Safari aren't supported.
What happens when a test fails?
The AI reads the error together with what you recorded, fixes the test and runs it again, up to three times. If it looks like a real bug in your app, for example data that's gone, it reports that instead of changing the test to pass.
Does my code or data train the AI?
PlayForge uses Anthropic's Claude through its commercial API. Under Anthropic's commercial terms, data sent through the API isn't used to train its models.
Can I use it on sites I don't own?
Only where you have permission to test. Recording and running tests is like using the site yourself, but please don't point PlayForge at systems you aren't allowed to test.