vizra / evals-ui
Livewire dashboard for the Vizra Evals agent-evaluation framework.
Requires
- php: ^8.4
- illuminate/contracts: ^12.0|^13.0
- illuminate/support: ^12.0|^13.0
- livewire/livewire: ^3.7|^4.0
- vizra/evals: ^0.3
Requires (Dev)
- laravel/pint: ^1.26
- orchestra/testbench: ^10.6|^11.0
- pestphp/pest: ^3.0|^4.0
- pestphp/pest-plugin-laravel: ^3.0|^4.0
README
Vizra Evals UI
The self-hosted dashboard for your agent evals.
Documentation · vizra/evals · Vizra Cloud · vizra.ai
A Livewire dashboard for vizra/evals: score trends per suite, run history, drill-down into every sample's assertions and judge reasoning, baseline comparison, and browser-triggered runs.
composer require vizra/evals-ui
Visit /evals. That's it — the stylesheet is served by the package (no publishing, no build step in your app), and all data comes from the tables vizra/evals already writes.
Requires PHP 8.4+, Laravel 12+, Livewire 3.7+ or 4.x, and vizra/evals.
Prefer not to self-host? Vizra Cloud runs the same dashboard as a hosted service, with shared team history and CI checks — free for one project.
Access control
Like Horizon, the dashboard is open in the local environment and denied everywhere else until you grant access:
// e.g. in AppServiceProvider::boot() Gate::define('viewEvalsDashboard', fn ($user) => $user->isAdmin()); // or take full control: \Vizra\EvalsUi\EvalsUi::auth(fn ($request) => ...);
Triggering runs from the browser
The Run button dispatches a queued ExecuteEvalRun job (unique per suite — duplicate clicks can't start concurrent runs). A queue worker must be running:
php artisan queue:work
Make sure your queue's retry_after/timeout exceed your longest eval run (the job's own timeout is 3600s). For local tinkering you can run jobs inline instead:
EVALS_UI_QUEUE_CONNECTION=sync
…but note the run then executes inside the HTTP request — keep it to dry runs or small suites.
Configuration
php artisan vendor:publish --tag=evals-ui-config
Key options: path (default evals), middleware, queue.connection/queue.queue, score-badge thresholds, per_page, poll_interval, and stale_after_minutes (runs stuck in "running" longer than this are flagged stale and can be marked failed from the UI).
If you prefer webserver-served CSS over the package asset route:
php artisan vendor:publish --tag=evals-ui-assets
Development
The dashboard ships precompiled Tailwind v4 CSS (resources/dist/evals-ui.css, committed). After editing views or the design tokens in resources/css/evals-ui.css:
npm install && npm run build
License
MIT. See LICENSE.md.
Watch agent quality trend instead of guessing.
Dashboard docs → ·
Start with vizra/evals → ·
Try Vizra Cloud →