PlayForge

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.

Phones iPhone 18 Pro Recording
shop.example.com/product/1
Phones
iPhone 18 Pro (256 GB) - Silver$1,199 Pixel 11 (128 GB) - Obsidian$899 Galaxy S27 (256 GB) - Mint$999
iPhone 18 Pro (256 GB) - Silver

$1,199 · In stock

Add to Cart

Added to cart

  1. Opened /phones
  2. Clicked link “iPhone 18 Pro…” · new tab
  3. Clicked “Add to Cart” · POST /api/cart 200
  4. Checked text “Added to cart”
add-to-cart.spec.tsgenerated
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');});
✓ passed in your Chrome4 steps · 2.8 s · no fixed waits

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.

  1. 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.

  2. Generate

    The AI turns the recording into a test plan, and PlayForge writes a standard .spec.ts with role, label and text locators.

  3. Run

    Run Test replays it in a new tab of your Chrome, on your network, signed in the way you are.

  4. 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.

Run 1await page.getByRole('button', { name: 'Add to bag' }).click();
✗ No button named “Add to bag”: the site renamed it.
AI repairawait page.getByRole('button', { name: 'Add to Cart' }).click();
Run 2✓ passed

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.

AdminEverything, including the team, roles and AI cost per test
DeveloperCreate projects, record, generate, run and export tests
ViewerLook 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.

Early access: everything is free right now, with up to 100 recording sessions per organization. The prices below start after early access. We'll e-mail you at least 30 days before, and nothing is charged unless you choose a plan.

Free

$0

Forever

  • 1 user, 1 project
  • 5 AI-generated tests a month
  • Unlimited test runs
  • AI repairs and export
Start free

Pro

$29 / user / month

Billed monthly

  • Unlimited projects
  • 50 AI-generated tests a month per user
  • Unlimited test runs
  • AI repairs and export
Start free

Team

$149 / month

Up to 5 users

  • 300 AI-generated tests a month, shared
  • Team invites and roles
  • PlayForge Runner for locked-down machines
  • Everything in Pro
Start free

Business

From $299 / month

For larger companies

  • Custom limits and users
  • Priority support
  • Invoice billing
  • Single sign-on (planned)
Write to us

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.

Record your first test in a few minutes.

Start free