Early access open

Write tests in plain English.

Testing your app used to require an engineer. Now if you can describe it, you can test it.

No spam, ever

Shipwith confidenceYour wholeteam, in the roomNo selectors,no frameworksTests thatdon't driftMobile,web & desktopRecordor writeOwnyour test suiteZero APIkeysAnyonecan write thisShipwith confidenceYour wholeteam, in the roomNo selectors,no frameworksTests thatdon't driftMobile,web & desktopRecordor writeOwnyour test suiteZero APIkeysAnyonecan write this

Your QA lead has filed a thousand bugs. Your PM wrote the user stories. Your founder knows every edge case. None of them have a path into your test suite. Not because they lack the understanding. Because the tools demand code.

Read why we built this →

Write any flow. Haiku runs it.

Here's how a login flow reads as a .haikufile compared to the test code you'd otherwise write:

sign-up-flow.haiku
1import { test, expect } from '@playwright/test';
3test.describe('Authentication', () => {
4 test('new user can create an account',
5 async ({ page }) => {
7 await page.goto('/');
8 await page.getByRole('link', { name: 'Sign up' })
9 .click();
11 await page.getByLabel('Email address')
12 .fill('user@example.com');
13 await page.getByLabel('Password')
14 .fill('SecurePass123!');
15 await page.getByLabel('Confirm password')
16 .fill('SecurePass123!');
18 await page.getByRole('button', { name: 'Create account' })
19 .click();
21 await expect(page).toHaveURL('/onboarding');
22 await expect(
23 page.getByText('Welcome! Let\'s get you set up.')
24 ).toBeVisible();
25 });
26});
1Tap the sign up button.
2Enter your email address.
3Type a strong password.
4Confirm the password.
5Submit the form.
6Verify the welcome screen appears.
TypeScript · Playwright.haiku
You could generate that test code with AI. But generated tests verify implementation, not intent — they pass because your app behaves a certain way today, not because it does the right thing. A .haiku file carries the intent directly: written by whoever knows what success looks like, readable by everyone who needs to know.
Haiku
About Haiku
Quit Haiku
Create Account

Don't want to write?
Just record it.

Just use your app — tap, click, scroll, type — and Haiku captures every action as a readable, editable test you own outright. No generated code you can't understand. No tests you're afraid to touch.

When you're done, you have a .haikufile — plain English, readable by anyone on your team. That's the only thing you maintain. Haiku handles the rest.

Try it — use the app on the left to tap through a flow.

Recite it. Pass or fail, every step.

Run haiku recite against any .haiku file and get a step-by-step verdict on your app. Feel confident your app is capturing your intended behavior. When something breaks, you know exactly where.

Haiku CLI · iOS
zsh
Mobile
iOS & Android

Test apps running in simulators or on real devices, end to end.

Web
Apps & sites

Any browser-based product — SPAs, SSR apps, and static sites.

Desktop
Native & Electron

macOS and Windows apps, including tools built with Electron.

Get started your way.

Available nowjoin the waitlist for access
  • Haiku CLIRun and manage test flows from the terminal. Integrates with any editor or build script.
In developmentjoin the waitlist for updates
  • Haiku for MacA native macOS app for writing, recording, and running tests — all in one place.
Coming next
  • Editor extensions for VS Code and JetBrains
  • AI agent skills for Claude and Cursor
  • Cloud and self-hosted execution with full CI/CD integrations

The cost of staying where you are.

Selector maintenance tax

Every UI change breaks a test. Every broken test delays shipping. That's the hidden cost of implementation-coupled tests — and most teams don't measure it.

Team exclusion

The people who know your product best — your QA lead, your PM, your founder — can't touch your test suite. Not because they don't understand the product. Because they don't write selectors.

Confidence debt

Teams that under-test ship bugs. Teams that maintain brittle tests ship slow. They're the same problem. You don't need more tests. You need tests you can trust and change.

Simple, honest pricing.

The automation engineer you'd hire to do this costs $120,000+ per year. Haiku starts at $0.

No per-run charges. No parallel-slot surprises. Just tests that run.

Run tests locally, free, forever. The moment you want your flows running automatically on every commit — that's when you upgrade.

Free
$0forever

Write and run flows locally — no limits, no clock.

  • Unlimited local runs across all four platforms
  • Unlimited saved flows
  • Record or write tests
  • Export to TypeScript, Python, or Swift
Developer
Save $120/yr
$19/ mo, billed annually

Ship tests to CI/CD. Every commit, automatically.

  • Everything in Free
  • 500 cloud minutes / month
  • CI/CD integration (GitHub Actions, CircleCI, and more)
  • 90-day run history
Team
Save $600/yr
$99/ mo, billed annually

Your whole team writes tests. Haiku runs all of them.

  • Everything in Developer
  • Unlimited seats
  • 2,000 cloud minutes / month
  • Shared flow library + role-based access
  • 5 parallel cloud runs + 1-year history

Start free. Upgrade when you're ready. Cancel anytime — no contracts.

Enterprise

For teams with compliance requirements, security reviews, and procurement processes. Unlimited everything, with the controls your legal team actually needs.

  • Unlimited seats & parallel cloud runs
  • SSO / SAML + audit logs
  • Self-hosted execution — data never leaves your network
  • Dedicated customer success manager
  • Custom SLA and uptime guarantees

Join the founding cohort.

We're onboarding a small group of teams before public launch. Early members get founding pricing — locked in for life — and a direct line to the team building this.