kinora
Open source · self-hosted · pre-release

Your Playwright tests, across projects and over time.

Playwright ships a great report for a single run. kinora sits one level up: push every CI run and get one place to track pass rates, spot trends, surface flaky tests, and open the full trace inline.

pnpm add -D @kinora/reporter
kinora.dev/overview
kinora dashboard showing test runs overview with pass rates and per-run strips across projects

[ Features ]

One level up from the HTML report.

01 · Trends over time

Every run, one strip at a time.

Push from CI and kinora keeps the history. Pass rate, run count, and duration per project, with a sparkline trend and one colored strip per run, so a slow drift is obvious long before it breaks the build.

kinora.dev/project/web-app
Per-project page with pass rate, trend sparkline and per-run history strips
02 · Flakiness

Catch flaky tests before they catch you.

Every test gets a flaky rate and a fail rate computed across its run history. Flip on Unstable only to see what is quietly costing you retries, and spot the ones newly broken or newly flaky since the last run.

kinora.dev/project/web-app/tests
Tests page listing per-test flaky rate and fail rate across runs with an unstable-only filter
03 · Per-test history

Follow a single test across runs.

Each test keeps a stable identity regardless of how it was uploaded, so you can track one test run-to-run: when it started flaking, when it was fixed, and how long it has been green.

kinora.dev/test/reset-password
Per-test history with a status timeline, pass and flaky rates, and a list of failures and flakes
04 · Run-to-run diff

See exactly what changed between two runs.

Pick any two runs and kinora groups every difference for you: newly failing, fixed, newly flaky, and still failing. No more diffing two HTML reports by eye to find the one test that regressed since green.

kinora.dev/project/checkout-api/compare
Run comparison page grouping tests into newly failing, fixed, newly flaky and still failing, with pass-rate delta

[ Trace viewer ]

When a test fails, the trace is right there.

Failing tests get a View trace button that opens the full Playwright trace inline, DOM, timeline, network and console, no download, no separate tooling. The replay engine is vendored straight from Playwright, so it is the viewer you already know. Want a second opinion? Copy prompt turns the failure into an LLM-ready prompt, error and context included, to paste into your assistant.

DOM snapshots Network Console Timeline Copy prompt
kinora.dev/trace
Embedded Playwright trace viewer showing the action timeline, a DOM snapshot, and the failing assertion in the source

[ And the rest ]

Built like the tool you reach for daily.

Branch & tag filters

Slice the overview by branch or tag to compare main against a feature branch, or smoke against nightly.

Reporter or CLI

Auto-upload at the end of every run, or push an existing results.json from a separate CI job. Same data either way.

Stable test identity

A test keeps the same key across runs and ingest paths, so its history never silently breaks.

Run-to-run compare

Diff two runs and see what is newly failing, what got fixed, and what just turned flaky.

Annotations surfaced

skip, fixme and slow annotations show up where they matter instead of hiding in the raw report.

Self-hosted, open-core

Your results stay on your own box. AGPL server and dashboard, MIT client libraries you embed.

[ Setup ]

Two ways in. Both take a minute.

The reporter is the quick path. Prefer to upload an existing results.json from a separate job? The CLI does the same, and both share @kinora/core so a test keeps a stable identity across runs and ingest methods.

Read the docs →
  1. 01

    Add the reporter

    One line in your Playwright config. It auto-uploads at the end of every run.

    playwright.config.ts
    export default defineConfig({
      reporter: [['@kinora/reporter', { project: { slug: 'web-app' } }]],
      // enable tracing so View trace works
      use: { trace: 'on-first-retry' },
    })
  2. 02

    Point it at your server

    Pass the target and a project token by env, kept out of the config and in CI secrets.

    CI
    KINORA_URL=https://your-kinora-server \
    KINORA_TOKEN=<project-token> \
      npx playwright test
  3. 03

    Watch the dashboard

    Pass rates, trends, flaky tests and full traces land in kinora, one strip per run.

[ Pricing ]

Priced by your tests, not your team.

Self-host free, forever. Or let us run it: every cloud plan has unlimited seats, so the whole team watches without counting logins. You pay for test results, not people.

Self-hosted

Run it yourself, free forever.

The full dashboard and embedded trace viewer, AGPL-3.0, on your own infrastructure. Unlimited everything, no account needed.

Self-host it

Free

Try kinora cloud on a side project.

$0 /mo

Start free
  • 2,500 test results / mo
  • 1 project
  • 7-day retention
  • Unlimited seats
  • Community support
Most popular

Team

For teams shipping on CI every day.

$49 /mo

10k results included, then $5 / 1k

Join the waitlist
  • Everything in Free, plus
  • 10,000 test results / mo
  • Unlimited projects
  • 90-day retention
  • Regression alerts (Slack, email, webhook)
  • Run-to-run compare
  • Chat & email support

Pro

For heavy CI and longer history.

$149 /mo

50k results included, then $4 / 1k

Join the waitlist
  • Everything in Team, plus
  • 50,000 test results / mo
  • 1-year retention
  • Priority support

Enterprise

For scale and compliance needs.

Custom

Contact us
  • Everything in Pro, plus
  • Unlimited volume
  • SSO / SAML + SCIM
  • Custom retention
  • SLA & dedicated support

A test result is one test in one run. Cloud is in early access, join the waitlist to get in at launch.

Awaiting first signal

Push your first run.

Add the reporter, point it at a kinora server, and watch the history build itself.