Flowline
Visual QA on a canvas

Draw the journey.
Run it as a regression suite

Model a feature as a flow of screens, run it as a regression suite, and turn failures into bugs — in your browser.

  • Runs in your browser
  • No database to host
  • Saves to Drive, a folder, or this browser
drag a card to rearrange
Sign in Valid Wrong password ↵ Password empty ENTRYWelcomeChoose sign in orcreate an account. Sign inEnter email andpassword to sign in. ENDSigned in ENDLogin failed
The model

Eight pieces, one graph

The same vocabulary on the canvas, in the table, and in the API. Learn it once.

Flow structure

Flow

A feature drawn as connected cards — the path a user takes.

Card

One screen or step — holds a title, inputs, and a screenshot.

Branch

A labelled choice out of a card — the edge to the next one, or a dashed loop when the outcome stays put.

End

A final outcome of the flow — like “Signed in” or “Login failed”.

Execution

Scenario

One set of field values — and the outcome you expect for it.

Platform

A scenario that swaps each card’s screenshot — same flow, desktop and mobile.

Suite & run

A group of scenarios — run against a build, with results recorded.

Result

Bug

A failing scenario — captured with its card and the outcome you expected.

See it work

Author, run, and triage in one place

Flowline Player walking a flow card by card with its screenshot and branch choices.

Walk the flow in the Player

Step through a flow card by card with the real screenshot in view, taking each branch the way a user would. An outcome that stays on its card records in place, without moving you on.

Player tab · per-card screenshots · branch navigation
Suite dashboard showing scenarios with pass, fail, and blocked results per build.

Record pass / fail / blocked per build

Group scenarios into a suite, start a run against a build, and mark each result. The dashboard keeps the pass rate and history so a regression shows up the moment it lands. For exploratory work, the Sessions tab captures a session across every flow and exports it — results, bugs and all — as a PDF.

Suites tab · Test sessions · pass-rate analytics
Table view of a flow listing cards, branches, and scenario values as rows.

Edit the same flow as a table

The Table view is the same data — cards, branches, and scenario values — as a grid you can fill in fast. Switch back and the graph reflects every edit.

Canvas ⇄ Table · one source of truth
Bug detail captured from a failing scenario, with the card and expected outcome.

Failures become bugs

When a scenario fails, file it from the Player. The bug carries the run’s steps and the scenario it ran under, so whoever picks it up already has the repro; you add expected vs actual, severity, and screenshots.

From run → bug · severity · status
Activity log listing changes to a workspace by author, backend, and time, newest first.

Share work, and see who changed what

Put a workspace in a shared Google Drive folder or a GitHub repo and your team opens the same projects. Commit, pull, and push from the projects screen; the Activity log lists every change by author and time. Edit a project elsewhere — another tab, a teammate, an agent — and the editor offers a one-click refresh.

Shared workspaces · Activity log · one-click refresh
Model Context Protocol

Drive it from your AI assistant

Flowline speaks MCP. Point Claude Desktop, Cursor, or Copilot CLI at your team's URL with a personal token and ask in plain language — it authors flows, defines scenarios, attaches card screenshots, leaves notes, runs suites, and files bugs on the same workspace the web app shows. The open editor notices within 15 seconds and offers a one-click refresh.

62tools, from create_project to file_bug
create_flow add_branch create_scenario set_scenario_expected_outcome add_point_image add_note start_suite_run set_suite_result file_bug get_suite_analytics

MCP reaches workspaces the server can read — a Google Drive folder, a folder on the server, or a folder on your own computer via a small local helper (no account needed). A workspace kept only in your browser never sends its bytes anywhere, so an agent can’t see it; the workspace picker marks those No MCP.

Read the MCP guide → Edit a folder on your computer →

// claude_desktop_config.json — point at your public URL { "mcpServers": { "flowline": { "url": "https://your-host/mcp", "headers": { "Authorization": "Bearer fl_pat_…" } } } }
01
“Add a Card declined scenario to Checkout and mark it expected-fail.”
02
create_scenario set_scenario_value set_scenario_expected_outcome
03
✓ Scenario added — editor offers a refresh

Ready to test on a canvas?

Open the demo to look around read-only, or sign in with Google to start your own project — no install, no database.