Skip to main content
vizra/evals-ui renders everything the engine records. Since every run persists, the dashboard needs zero extra instrumentation — install it and your history is already there.
Terminal
Visit /evals. That’s the whole install: the stylesheet ships with the package (no publishing, no build step in your app), and it reads the tables vizra/evals already writes. Requires Livewire 3.7+ or 4.x.

What you get

Suites overview

Every suite with its latest score, pass rate, trend sparkline, and baseline — the health check at a glance.

Run detail

Per-row results sorted worst-first with filters and search; expand any row to every sample’s response, tool calls, tokens, cost — and each assertion’s expected vs actual.

Judge reasoning

Every judge score with its persisted reasoning, one click deep. Usually the fastest route to the prompt fix.

Compare view

Any run against the baseline (or any other run): score/pass-rate deltas, regressed and improved tables with before → after values.
Baselines are managed from the UI too — promote any completed run, or clear one, without touching the CLI.

Access control

Horizon-style: open in the local environment, denied everywhere else until you grant access:
app/Providers/AppServiceProvider.php

Triggering runs from the browser

The suite pages include a Run evaluation button for class-based suites — it dispatches a queued job (unique per suite, so double-clicks can’t start concurrent runs) and shows live progress. A queue worker must be running:
Terminal
For local tinkering, EVALS_UI_QUEUE_CONNECTION=sync runs the job inline in the request — keep that to dry runs or small suites.

Configuration

Terminal
Route path (default evals), middleware, queue connection, score-badge thresholds, poll interval, and stale-run detection (runs stuck “running” past a threshold get flagged with a mark-failed action).