Skip to content

PiwiTests/platform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,065 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Piwi Dashboard

A permanent home for your Playwright test results.
CI reports vanish on every build. Piwi keeps them — and turns them into live dashboards, failure clusters, AI diagnosis, and cross-run analytics. Self-hosted, no SaaS.

Live demo Documentation

npm Docker CI status MIT license GitHub stars

A test run streaming live into Piwi Dashboard

Click through to the live demo — sample data, no install, runs entirely in your browser — or watch the 30-second clip.

Why Piwi?

Native Playwright HTML reports are great for local debugging — but they're ephemeral. Once the next CI run completes, the old report is gone. Piwi keeps every run and makes them connected, searchable, and actionable:

  • 🗄️ Permanent history — every run, trace, and report stored and browsable across time.
  • Live streaming — watch runs in real time as CI executes; no polling, no waiting.
  • 🔗 Failure clustering — failures sharing a root cause are auto-grouped by error fingerprint.
  • 📈 Performance & flaky tracking — P90 duration trends, slowest tests, composite flakiness scores.
  • 🩹 Locator healing — when a locator breaks, ranked replacement locators captured from prior passing runs, with a recommended fix.
  • 🔌 Built for automation — drop-in reporter, REST API, OpenAPI docs, and an MCP server for agent integrations.
  • ☁️ Zero lock-in — self-hosted with Docker; your data in SQLite/PostgreSQL and local/S3 storage.
  • 🔒 Private by design — zero telemetry, no phone-home. The only outbound calls are the ones you configure (your AI provider, SMTP, S3).
  • 🤖 AI-assisted diagnosis (optional) — LLM analysis of a failure cluster, grounded in your actual SCM diff, to speed up triage.

👉 Explore the live demo — no install required.

A quick tour

Failure cluster with AI diagnosis AI diagnosis grounded in your SCM diff
Failure clusters — one root cause, one card AI diagnosis — grounded in your actual git diff
Flaky test detection Test run detail with worker timeline
Flaky tests — scored, classified, impact-ranked Run detail — cases, timeline, traces, retry command
Locator healing suggestions Performance trends
Locator healing — ranked replacements from passing runs Performance — P90 trends and slowest-test tracking

Quick start

1. Start the dashboard

# Linux / macOS
docker run -p 3000:3000 -v $(pwd)/.data:/app/.data phenx/piwitests-server:latest
# Windows (PowerShell)
docker run -p 3000:3000 -v ${PWD}/.data:/app/.data phenx/piwitests-server:latest

Visit http://localhost:3000. A docker-compose.yml is also included.

Production tip: set PIWI_SECRET_KEY (any long random string) so credentials you store in the dashboard — AI API keys, SCM tokens — are encrypted at rest. Generate one with node -e "console.log(require('node:crypto').randomBytes(32).toString('hex'))". See the deployment guide.

2. Add the reporter to your test project

npm install --save-dev @piwitests/reporter
// playwright.config.ts
import { defineConfig } from '@playwright/test'

export default defineConfig({
  reporter: [
    ['list'],
    ['@piwitests/reporter', {
      serverUrl: 'http://localhost:3000',
      projectName: 'my-project',
    }],
  ],
  use: { trace: 'retain-on-failure' },
})

3. Run your testsnpx playwright test. Results appear automatically; the project is created on first submission.

➡️ Full setup, configuration, and CI integration in the Getting started guide.

How is this different from…?

Piwi Playwright HTML report Allure Report ReportPortal Currents
Run history across builds ❌ per-run, ephemeral ➖ manual history files
Self-hosted ✅ single container ➖ static files ✅ multi-service stack ❌ SaaS
Live run streaming
Playwright traces, first-class
Flaky scoring & failure clustering ✅ ML triage
AI failure diagnosis on your git diff ✅ optional
Locator healing suggestions
Price Free, MIT Free Free Free (self-host) Paid

Every tool in that table is good at what it targets — the honest version with trade-offs is in Comparison & FAQ.

Documentation

Topic Link
Getting started piwitests.github.io/getting-started
Comparison & FAQ piwitests.github.io/comparison
Playwright reporter piwitests.github.io/reporter
UI overview piwitests.github.io/ui-overview
AI diagnosis & clustering piwitests.github.io/ai-diagnosis
Flaky tests & analytics piwitests.github.io/flaky-tests
Notifications & alerts piwitests.github.io/notifications
Configuration reference piwitests.github.io/configuration
API reference (interactive) piwitests.github.io/demo/docs
MCP server piwitests.github.io/mcp
Authentication piwitests.github.io/authentication
Storage configuration piwitests.github.io/storage
Deployment piwitests.github.io/deployment

The running dashboard also serves interactive API docs (Scalar) at /docs.

Community & support

Contributing

Contributions are welcome — see CONTRIBUTING.md for dev setup, tests, and commit conventions, and AGENTS.md for architecture and the full development guide.

cd application && npm install && npm run app:dev   # http://localhost:3000

License

MIT


Disclaimer: Piwi Dashboard is not affiliated with, endorsed by, or connected to Microsoft Corporation in any way. "Piwi" is a playful, unrelated name with no connection to any existing product or brand. Playwright is a trademark of Microsoft Corporation.

About

A permanent, self-hosted home for your Playwright test results — clustering, AI diagnosis & analytics

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

5 stars

Watchers

1 watching

Forks

Sponsor this project

 

Packages

 
 
 

Contributors