Skip to main content
Sessions let you group related evaluation runs together, enabling workflows like model comparison, iterative debugging, and tracking progress over time.

Quick Start

Concepts

Session

A session groups related runs together, identified by a name string. Using --session model-upgrade again continues the same session—runs are linked by matching session names.

Run

A run is a single execution of your evaluations. Each run creates a new JSON file containing only the evals that ran in that execution.

Auto-Generated Names

When you don’t specify --session or --run-name, friendly adjective-noun names are generated automatically:
  • swift-falcon
  • bright-flame
  • gentle-whisper
This ensures every run has identifiable names without requiring manual input.

File Naming

Run files are named with the pattern {run_name}_{timestamp}.json:

JSON Schema

Each run file includes session metadata at the top level:

UI Display

The stats bar shows the current session and run:

Use Cases

Compare performance across different models or configurations:
Each run’s JSON file contains the full results for that model, all grouped under the same session.
Track progress while debugging or improving:
Use session names to track runs across deployments:
Compare different approaches:

API Endpoints

When running in serve mode, these endpoints are available for programmatic access:

Example: List Sessions

Example: List Runs in Session

Best Practices

Naming Conventions: Use descriptive session names that indicate the purpose (e.g., model-comparison, bug-fix-123, release-v2.0). Run names should describe what’s different about that specific run.
Session Continuity: Sessions are identified purely by name. Using the same --session value automatically continues the session—no explicit “create” or “resume” needed.
Storage: Session metadata is stored in each run’s JSON file. There’s no separate session file—sessions are virtual groupings based on the session_name field.