A dashboard for your Playwright tests - across projects and over time - with an embedded trace viewer.
Live demo (read-only, no sign-up) · Website · Cloud
Playwright ships a great HTML report for a single run. kinora sits one level up: push every CI run to a kinora server and get one place to track pass rates, spot trends, and surface flaky tests over time. Failing tests get a View trace button that opens the full Playwright trace (DOM / timeline / network / console) right in the dashboard, no separate tooling.
Push from CI and kinora keeps the history: pass rate, run count and duration per project, a sparkline trend, and one colored strip per run, so a slow drift shows long before it breaks the build.
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 tests newly broken or newly flaky since the last run.
Each test keeps a stable identity however it was uploaded, so you can follow one test run-to-run: when it started flaking, when it was fixed, and how long it has been green.
Diff any two runs: newly failing, fixed, newly flaky, and still failing, grouped for you.
Failing tests get a View trace button that opens the full Playwright trace inline - DOM, timeline, network, console - plus a Copy prompt to hand the failure to an LLM.
Get notified when a run brings new failures or regressions. Each project can post to Slack, an email address, or a custom webhook, with an every-run / on-failure / on-regression policy.
A macOS app that signs into your account and opens straight on the latest run's failures. Re-run a failing test locally with your repo's own Playwright, jump to the source in your editor, copy a ready-to-paste AI prompt, or open the full trace inline. It also opens any local trace.zip with no account at all, a self-contained replacement for playwright show-trace.
Download for macOS (Apple Silicon). Auto-updates from there.
Monorepo, fair source: the deployable surface is FSL-1.1-MIT, the client libraries you embed are MIT.
| Package | Role | License |
|---|---|---|
@kinora/server |
Hono + tRPC API, better-auth, Drizzle/Postgres - ingest + dashboard data | FSL-1.1-MIT |
@kinora/web |
Vue 3 dashboard (runs, history, flakiness, compare, alerts, billing) | FSL-1.1-MIT |
@kinora/desktop |
Electron app: cloud failures dashboard + local trace viewer | FSL-1.1-MIT |
@kinora/trace-viewer |
Vendored Playwright trace engine (Apache-2.0) + our Vue UI | MIT |
@kinora/reporter |
Playwright reporter - auto-uploads on onEnd |
MIT |
@kinora/cli |
Manual upload of a results.json |
MIT |
@kinora/core |
zod contracts + normalize + ingest client (shared) | MIT |
@kinora/ui |
Shared shadcn-vue design system | MIT |
Auto-uploads at the end of every playwright test run. One line in your config:
// playwright.config.ts
export default defineConfig({
reporter: [['@kinora/reporter', { project: { slug: 'web-app' } }]],
// enable tracing so View trace works
use: { trace: 'on-first-retry' },
})Set the token via env (keep it out of the config / in CI secrets):
KINORA_TOKEN=<token> npx playwright testOn GitHub Actions, git and CI metadata are filled in automatically. See @kinora/reporter for all options and the CI example. Self-hosting? Point it at your server with KINORA_URL (selfhost/README.md).
For setups without the reporter, or to upload an existing results.json from a separate CI job:
# playwright.config.ts: reporter: [['json', { outputFile: 'results.json' }]]
npx @kinora/cli upload results.json --project web-app --token <project-token>The CLI can also bulk-import a backlog of historical reports (kinora import <dir>). See @kinora/cli for all flags and the CI example.
Run the whole stack locally.
pnpm install
# 1. server + database
cd packages/server
cp .env.example .env
docker compose up -d # Postgres on :5436
pnpm migrate latest # create tables
pnpm db:seed # seed a demo account + data, prints login + an API token
pnpm dev # server on :3000
# 2. web
cd packages/web
cp .env.example .env
pnpm dev # dashboard on :5173
# 3. trace viewer (from the repo root)
pnpm dev:viewer # trace viewer on :5174Open http://localhost:5173 and sign in with the seeded credentials (demo@kinora.dev / password123). Use the printed API token to push real runs from a project via the reporter or CLI.
Run the whole stack with one docker compose (Postgres + server + dashboard, single origin, local-FS artifacts, no S3). See selfhost/README.md for the quickstart, configuration, sending tests, custom domains, upgrades, and backups.
kinora is fair source, the deployable product (server, web) is FSL-1.1-MIT, the libraries you embed in your own test suite (reporter, cli, core, ui) and the trace viewer are MIT. The trace engine under packages/trace-viewer/src/core and src/sw is vendored from microsoft/playwright (Apache-2.0).