Overview & quick start

VeloBenchmark is a single-binary LLM benchmarking and live-stats console. Point it at any OpenAI-compatible endpoint and it gives you the whole loop: chat with a model and watch accurate decode-speed and latency instruments in real time → build test suites → run them single-stream or under concurrent load → read the report, compare sessions, export PNG/PDF. It can also sit as a live telemetry dashboard in front of a serving engine's OpenTelemetry stream.

The deliverable is one binary: the entire web UI is embedded and served by the Rust backend. At runtime it only creates the data files it needs — nothing else is required on the host.

Chat with live instruments

The chat console after a completed turn: streaming transcript on the left, the live stats deck on the right — decode timeline, distributions, acceptance-rate estimate.

What it does

Install

One line (Linux & macOS, x86_64 + arm64):

curl -fsSL https://raw.githubusercontent.com/sf-stav/VeloBench/main/install.sh | sh

The installer downloads a prebuilt binary from GitHub Releases when one exists for your platform, and otherwise builds from source into ~/.velobenchmark (Rust, Node and protoc installed into your home directory — no root required). It starts the server, health-checks it, and prints the URL to open.

From source instead:

npm --prefix frontend install
bash scripts/build-frontend.sh
cargo build --release
./target/release/velobench --host 0.0.0.0 --port 13843

Full details, service setup and the release pipeline: Building & installing.

Quick start

  1. Start the server and open http://localhost:13843.
  2. Settings → add a provider — an OpenAI-compatible base URL plus key (llama.cpp llama-server, vLLM, LM Studio, OpenRouter, cloud endpoints, …). Add a model: the list is fetched live from the provider's /v1/models every time the dialog opens, then pick it in the top bar.

Providers in Settings

  1. Chat — send a prompt and watch the live stats: rolling tok/s, TTFT, the per-regime decode timeline and the histograms. Stop mid-generation and the partial turn still records its stats.

Live stats deck

  1. Tests → Run a built-in suite. Try Regime switch · JavaScript ⇄ story to see decode speed swing between code and prose, or Vision · all test images on a vision model. Build your own with the five step types:

Step types

  1. Sessions → open the run and read the report; export it as PNG or PDF.

At a glance

  1. Runner — the same test with N workers behind a step barrier, one shared report with the workers + Σ decode timeline.

Worker snapshots

  1. Compare — line two sessions up and see exactly what changed, metric by metric.

Head-to-head

Where to next

User manual Every screen, every report, building tests, the runner
Building & installing Prerequisites, build, run, systemd, releases
Telemetry setup The OTLP receiver and the engine's --otel-* flags
Metrics & methodology What each number means and how it is computed
Known limitations The honest edges