Your product claims to create value. Here’s the evidence.
KaleFlow reads your repo, explores your live app like a real user, and compiles what it finds into replays that need no AI to re-run. Every step keeps its screenshot, video and trace, so you can see which flows still work and exactly where one broke.
Flow 04/billing/checkout
Upgrade to a paid plan
FailedThe Pay button never enables. The request that prepares the payment returns 500.
- 01Open /billingPassed0.88s
- 02Choose the Team planPassed0.71s
- 03Enter a test cardPassed1.57s
- 04Click PayFailed1.04s
- 05See the receiptNot run—
- screenshots
- video
- trace
- HAR
- console
Fig. 1The KaleFlow canvas, simulated against a demo app. Four value flows, one broken. Drag to pan; hover or select a flow to open its evidence.
End-to-end suites rot. Dashboards say green while signup is broken.
A test tells you an assertion held. It does not show you the screen a new user saw this morning. KaleFlow keeps the record, flow by flow, so the question “does this still work?” has an answer you can open and look at.
How it works
Four steps. Each one leaves a record.
You give KaleFlow two things: a code repository and a live URL. It does the rest in order.
Repo Brief
It reads your code first.
The Repo Brief reads your repository and predicts the flows where your app creates value: signing up, checking out, inviting a teammate. You see the list before anything runs.
Repo Briefpredicted value flows · 4
Flow Found in Confidence Sign up src/app/signup/page.tsx 0.94 Create a project src/app/projects/new/page.tsx 0.91 Invite a teammate src/app/settings/members/invite.tsx 0.88 Upgrade to a paid plan src/app/billing/checkout/page.tsx 0.86 Crawl
Then it uses your app like a person.
An AI crawler opens your live URL and works through each flow as a real user would. It clicks, types and waits. What it finds, it compiles into a replay.
- 14:02:07openhttps://app.example.com/signup
- 14:02:08fillEmail → a@example.com
- 14:02:08fillPassword → ••••••••••
- 14:02:09click“Create account”
- 14:02:11arrive/welcome
- 14:02:11compilereplay “Sign up” · 3 steps
Replay
The replay runs again without AI.
A replay is a deterministic automation. It runs the same steps in the same order every time, and it needs no model to do it. Run it as often as you like.
replay · Sign upAI calls: 0
- Open /signupPassed0.81s
- Fill email and passwordPassed1.12s
- Submit, land on /welcomePassed1.94s
Same steps, same order, every run. 4 replays in this project.
Evidence
Every step keeps its proof.
Each replayed step saves a screenshot, video, a trace, a HAR file and the console output. When a step fails, you open the screenshot of the broken step.
FailedThe screen at the moment the step failed. The Pay button is still disabled.
The whole flow as video, with a marker at each step. Jump straight to the failure.
- 00:00.00navigate/billing200 · 142 ms
- 00:00.88click“Team” planselected
- 00:01.59fillCard number4242 4242 4242 4242
- 00:03.16click“Pay”button is disabled
Each action the replay took, in order. POST /api/billing/intent returned 500 just before the click.
Evidence
Green is a claim. This is the record.
Open any step and see what the browser saw: the screen, the requests behind it, and what the console said. Passing steps keep their proof too.
HAR · step 04 · Click Pay0 — 720 ms
| Method | Request | Status | Time | Waterfall |
|---|---|---|---|---|
| GET | /billing/checkout | 200 | 142 ms | |
| GET | /api/billing/plans | 200 | 88 ms | |
| GET | /api/session | 200 | 54 ms | |
| POST | /api/billing/intent | 500 | 212 ms | |
| GET | /api/billing/intent/status | 404 | 61 ms |
- 00:03.16log[checkout] plan=team interval=month
- 00:03.48warn[checkout] payment intent not ready, retrying (1/1)
- 00:03.71errorPOST /api/billing/intent 500 (Internal Server Error)
- 00:03.72errorTypeError: Cannot read properties of undefined (reading 'client_secret')
- 00:03.72error at confirmPayment (checkout.tsx:88:31)
Multi-actor flows
Some flows need two people.
An invite only works if someone else can accept it. KaleFlow runs both sides: user A sends the invite, user B opens it and joins, and user A sees them arrive. The hand-off is part of the record.
- 01 · user AOpen Members
- 02 · user ASend invite to user B
- Hand-off from user A to user B: invite link
- 03 · user BOpen the invite link
- 04 · user BAccept and join
- Hand-off from user B to user A: new member
- 05 · user ASee user B in Members
Fig. 2Flow 03, Invite a teammate. Five steps, two users, two hand-offs. Simulated run.
Local-first
It runs on your machine first.
Three commands. The crawl and the replays run locally from the CLI, and the canvas opens in your browser. Nothing leaves your machine unless you choose to upload a run.
When you want to share runs with your team, the hosted app is at app.kaleflow.com.
npx kaleflow init --app https://app.example.com --repo .Reads the repo and writes the Repo Brief.
npx kaleflow crawlExplores the live app and compiles replays.
✓Sign up3/3 steps3.87s
✓Create a project3/3 steps3.05s
✓Invite a teammate5/5 steps7.31s2 actors
✕Upgrade to a paid plan4/5 steps4.20sPay button disabled
evidence saved: screenshots, video, trace, HAR, console
npx kaleflow uiOpens the canvas in your browser.
Output shown is illustrative, from the simulated run above.
Find out which flows still work.
Point KaleFlow at a repo and a URL. The first map takes one crawl.