The Quantiles configuration file
Quantiles uses a single quantiles.toml or .quantiles.toml file in the current working directory to configure built-in benchmarks and define custom configuration evaluations. The file specifies how evaluations are loaded and executed, including datasets, models, prompts, scoring methods, inputs, and runtime settings.
Only one of the two filenames can exist in the same directory. If both exist, the CLI will exit with an error.
When to use a configuration file
Create or configure a quantiles.toml or .quantiles.toml configuration file when you want to do any of the following:
- Customize built-in benchmark or create variants
- Create or configure custom configuration evaluations
- Configure custom code evaluations with your own Python code
- Resume custom evaluations later with
qt resume
Built-in benchmarks can run without a
quantiles.tomlconfiguration file using their default settings. See Built-in Benchmarks for the resolution order and network behavior.
File name and location
The qt CLI looks for either quantiles.toml or .quantiles.toml in the current working directory. If neither exists, it searches ancestor directories and uses the first matching file it finds. To configure Quantiles for your project, we recommend adding one of these files to the project’s working directory.
File structure
Every benchmark and evaluation definition lives under its own [benchmarks.<eval_name>] section. The section key is the evaluation name passed to qt run <eval_name>.
For example, to change the default model and sample count for all future runs of the built-in SimpleQA Verified benchmark, add the following section to your configuration file:
# Configure the sample limit and model for SimpleQA Verified.
[benchmarks.simpleqa-verified]
dataset = "hf://quantiles/simpleqa-verified"
# Limit the number of samples evaluated.
samples = 50
# Use OpenAI's GPT 5.6 Luna model instead of the built-in
# demo model. This requires an OPENAI_API_KEY environment
# variable, and OpenAI will charge you for usage.
model = "openai:gpt-5.6-luna"Configuring built-in and custom evaluations
Built-in benchmarks and custom evaluations have different required and optional configuration fields. Quantiles uses the following defaults for these fields when they are not specified:
type="built-in"model="random"- samples defaults to all samples
Refer to the documentation for each evaluation type to identify its required and optional configuration fields.
A benchmark defined in quantiles.toml takes precedence over the definition in the Quantiles registry when both use the same name. To keep both versions available, assign the customized benchmark a different name. For example, the registry name for SimpleQA Verified is simpleqa-verified, so you could name the customized version my-simpleqa-verified. You may choose any name as long as it does not match the built-in benchmark name.
CLI --input overrides
To apply a one-time configuration override, pass --input to qt run. These values are recorded in the local run history but are not written to the configuration file or applied to subsequent runs. For example, the following command overrides the model for one evaluation run:
qt run my-eval --input '{"model":"openai:gpt-5.6-sol"}'In --json mode, a warning is included in the JSON output if there is an --input flag. For example:
Warning: --input overrides config input for keys: modelConfiguration validation
The CLI validates benchmark and evaluation configuration fields before execution:
-
built-inbenchmarks:- May not contain
commandorinputfields. - Must include
datasetwith anhf://orhuggingface://prefix. - May include fields such as
samples,model, andmax_workers.
- May not contain
-
custom_codeevaluations:- Must have a non-empty
commandarray. - May not contain built-in-only fields such as
samplesormodel.
- Must have a non-empty
-
custom_configurationevaluations:- Must include
dataset,style, andprompt_template_file. prompt_template_filemust point to an existing file.- Must set
style.typeto eitherexact_matchormultiple_choice. - When
style.type = "exact_match", astyle.golden_columnfield must be present. - When
style.type = "multiple_choice", a valid choice source, answer source, and a non-empty list of uniquechoice_labelsmust be present in thestyledictionary. - May not contain
command,input, or other unsupported fields.
- Must include
Validation failures produce clear error messages before any run is created.
How qt resume uses the configuration file
When you run qt resume <run_id>, the CLI reuses the same configuration from that run, including input, from the database. It also re-reads the command from the configuration file. This setup means the following:
- You do not need to re-submit
inputwhen resuming a previous run. - If you update the
commandbetweenqt runandqt resume, the resumed run uses the updated command, but retains theinputvalues used in the original run. - If a
custom_codeorcustom_configurationconfiguration section is removed after aqt run, resuming that run will fail with a clear error. - For built-in benchmarks loaded from the Quantiles registry, resuming requires internet access to retrieve the benchmark configuration.
See Restart and Resume Runs for the full recovery workflow.