Skip to main content

CLI Reference

Live --help on each binary is authoritative. The repository regenerates a modality/prompts dump with scripts/render_cli_help.sh into docs/CLI.md (llm/vlm/asr/imagegen/prompts only). If this page and --help ever disagree, trust --help. Strategic, mock-server, unified dispatcher, and selftest are not covered by that dump.


Entry points

Binary / subcommandRole
metrum-ai-benchUnified dispatcher (llm, vlm, asr, imagegen, prompts, selftest)
metrum-ai-bench-llmLLM modality client
metrum-ai-bench-vlmVLM modality client
metrum-ai-bench-asrASR modality client
metrum-ai-bench-imagegenImage generation client
metrum-ai-bench-promptsPrompt-library mix extractor
metrum-ai-bench-strategicSweeps, sessions, exports (separate binary, not a unified subcommand)
metrum-ai-bench-mock-serverDeterministic local mock for strategic fixtures
metrum-ai-bench --help
metrum-ai-bench-llm --help
metrum-ai-bench-strategic --help

Print version only (where supported):

metrum-ai-bench-llm --version-only

LLM required options (typical)

metrum-ai-bench-llm
--scenario <SCENARIO>
--num-requests <N>
--concurrency <N>
--prompts <PATH|URL>
--mode <chat|completion>
--model <MODEL>
--data-log <PATH>
--max-tokens <N>

Plus --url or --endpoints-file (mutually exclusive with the single-URL / API-key pair patterns described in --help).


Shared load flags (common)

FlagPurpose
--urlSingle endpoint URL
--endpoints-fileMulti-endpoint YAML (curl-style); mutually exclusive with --url / --api-key
--api-keyBearer / API key for the single-URL path
--num-requestsRequests to send (≥ 1)
--concurrencyConcurrent requests (≥ 1)
--warmup-requestsWarmup count (excluded from measured distributions)
--seedDeterminism for scheduling / cycling
--request-rateOpen-loop rate
--arrivalpoisson or constant
--max-concurrencyOutstanding-work cap
--sloRepeatable thresholds, e.g. ttft=250ms, e2e=2s
--streamingStream responses (needed for TTFT)
--tokenizerPath to tokenizer.json (requires Cargo feature tokenizer; not in GitHub Release builds)
--log-levelerror/warn/info/debug/trace on llm/vlm (default warn) and asr (default info); not on imagegen
--data-logJSONL output path
--runsSequential independent runs + bootstrap aggregate (unified entry)
--sut / --require-sut / --redact-hostnamePublication and privacy controls
--ntp-checkOpt-in NTP offset recording (does not hard-fail)
--insecure / --ca-certTLS overrides (use only when you intend them)

Prompt extractor (high-signal flags)

FlagPurpose
--revisionDataset commit SHA
--configsample / full
--count / --count-slackPreferred size and slack
--isl-target / --osl-targetLength targets
--isl-unit / --osl-unittokens or words
--isl-stat / --osl-statmean or median
--isl-tolerance / --osl-toleranceAbsolute tolerances
--output / --reportMix JSONL and report JSON

Strategic (high-signal flags)

FlagPurpose
--sweep / --sweep-byStage list and axis (concurrency / rate)
--requests-per-stageRequests per sweep stage
--metrics-urlOptional server metrics scrape
--html / --csv / --mlperf-dirExports
--mlperf-scenarioserver or offline-style scenario name per --help
--kindChat default, or embeddings / rerank
--json-schema / --toolsValidity checkers
--slo e2e=…Goodput threshold on strategic (ttft= / tpot= accepted but ignored)
--otlp-endpointOTLP export (release builds include feature otlp)

Getting the full dump

Live --help on each binary is always authoritative.

scripts/render_cli_help.sh regenerates docs/CLI.md for modality and prompts binaries only (metrum-ai-bench-llm, -vlm, -asr, -imagegen, -prompts). It does not dump metrum-ai-bench (unified), selftest, metrum-ai-bench-strategic, or metrum-ai-bench-mock-server - use those binaries' --help (and Strategic benchmarking) for their full surfaces.

# from a checkout (after cargo build --bins)
./scripts/render_cli_help.sh

Or inspect docs/CLI.md in the repository for the last generated modality / prompts text dump.