A sentence in, a Playwright script out
Describe the journey the way you’d tell a new teammate. An agent opens your site in a real browser, writes real Playwright, and runs it until it passes.
Describe what a user does. Testy turns it into a real Playwright test, runs it from your CI, and fixes it when your frontend team ships on a Friday.
{PASSWORD}0.9sNo test-framework wall of text. Just what breaks, what doesn’t, and who fixed it.
Describe the journey the way you’d tell a new teammate. An agent opens your site in a real browser, writes real Playwright, and runs it until it passes.
Flaky gets made deterministic. Broken selectors get repaired. But if the scenario can’t be done by hand any more, the test stays red and tells you why — we never soften an assertion to get green.
Write {PASSWORD} once. It’s resolved inside the runner — the model only ever sees the name.
One curl in your pipeline. Results stream as they land, then a clean exit code.
Flip it on, say who signs in, and every run starts from an authenticated session.
{LOGIN_USERNAME}Ambiguous prompt? The agent stops and asks you — right in the app.
Every run, every screenshot, every trace. Plus a flakiness score so you see which tests are wobbling before they fall over.
Generated, healed, or hand-edited — diff it, restore it, audit exactly what changed.
Staging, preview, prod — same test, different base URL, per-environment secret overrides.
Tests don’t stay written. That’s the whole problem — so the last step feeds the first.
A sentence or two about what a user does. Optionally: who logs in.
The agent explores your site in a real browser, writes the script, and runs it until it passes.
From the dashboard or with one curl in CI. Results stream in, screenshots and traces attached.
Flaky gets fixed. Broken gets diagnosed. Nothing gets watered down. Back to step 3.
Fewer 2am pages about a login button nobody moved on purpose.
A new teammate ships their first smoke test in minutes, not a sprint.
Cheaper than a QA contractor’s coffee budget. We checked.
Every plan has every feature. You’re only ever paying for more targets, more tests, more runs — and, on Team, more people.
“I used to write Playwright selectors by hand. I now write poems.”
“It fixed a test at 3am and didn’t even wake me up. Rude, honestly.”
“Our flaky tests are now just… tests.”
“Testy asked me a clarifying question. My coworkers never do.”
“10/10, would {PASSWORD} again.”
“Our onboarding doc now just says “ask Testy”.”
* Every one of these people was made up by us, with love. Want to be the first real one? We’re listening.
Grouped so you can skip straight to the part you’re suspicious about.
No. You describe what a user does; Testy writes the Playwright. If you do know it, you can open every script, edit it, and save it as a new version.
A target is one of your apps: a base URL plus its secrets. Environments are variants of it — staging, preview, production — each with its own URL and secret overrides. Every test runs against any of them.
It verifies the script against your real site before handing it back, and asks you a question when a prompt is ambiguous instead of guessing. If it still misses, edit the prompt or the code and regenerate.
Flaky: same code, sometimes passes, sometimes fails. We make it deterministic and re-run the fix three times before we trust it. Broken: fails every time. We only repair the test if the scenario still works by hand — otherwise it stays red and we tell you why.
No. The break-fix agent is forbidden from loosening assertions. If the only way to green is a weaker check, it gives up and flags the app as broken instead.
After every manual or CI run we look at the last ten. If a test qualifies, at most one healing session per test per day is started, and those runs don’t count toward your quota.
Encrypted at rest with AES-256-GCM. The model only sees placeholder names like {PASSWORD}; values are substituted inside the runner and scrubbed from every log and tool output before anything reaches an LLM.
Generated scripts never execute in the app. They run in isolated Chromium runners that hold no database and no keys — only the secrets for the run at hand.
Chromium today. Firefox and WebKit are on the roadmap.
Any manual or CI-triggered execution of one test against one environment. Retries within a run and healing runs are free.
Start on Free. Move to Plus when you outgrow 3 targets, 30 tests, or 300 runs a month. Pick Team when more than one person needs the same workspace.
Cancel any time, refund of the current period on request, no questions asked. Gift codes are redeemed after signing in.
Your first smoke test is a sentence away. The free plan is free forever, not free until Thursday.
runs a month on Free. Healing runs don’t count.
Broken app? The test stays red and tells you.
curl …/api/v1/run?token=…That’s the whole CI integration.
One workspace, one bill, everyone adds tests.