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 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:
- Override defaults for a built-in benchmark, such as model or sample limit
- Create or configure custom no-code evaluations
- Configure custom code evaluations with your own Python code
- Resume custom evaluations later with
qt resume
Note: Built-in benchmarks can run without a configuration file using their default settings. For example,
qt run simpleqa-verifiedruns the full SimpleQA Verified benchmark with the demo model.
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 evaluation definition or built-in override lives under its own [benchmarks.<eval_name>] section. The section key is the evaluation name passed to qt run <eval_name>.
For example, if you want to override default parameters for the built-in PubMedQA benchmark, add the following section to your configuration file:
# Configure the sample limit and model for the built-in PubMedQA benchmark.
[benchmarks.pubmedqa]
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
Use a configuration file to create and/or configure the following evaluation types. See the documentation for each type for supported fields and examples.
- Built-in benchmark: a benchmark built into the CLI and the default when
typeis not specified. - Custom no-code evaluation: a custom evaluation defined entirely in the configuration file.
- Custom code evaluation: a custom evaluation implemented in Python using the Python SDK .
Configure a model
Built-in benchmarks and custom no-code evaluations accept an optional model field, which can be set in the configuration file or supplied at runtime through --input.
The following example configures a custom evaluation named my-eval to use an OpenAI model:
# Example configuration for running my-eval with an OpenAI model
[benchmarks.my-eval]
# The value before the first colon identifies the provider.
# The remaining value is the provider-specific model identifier.
model = "openai:gpt-5.6-luna"If model is not specified, Quantiles uses the evaluation’s built-in demo model.
See Model Configuration for supported providers and prefixes, credential environment variables, and troubleshooting.
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"}'Warning: —input overrides config input for keys: model
In --json mode, the warning is included in the JSON output under the warning key.
Configuration validation
The CLI validates benchmark configuration sections before execution:
-
built-insections:- May not contain
commandorinputfields. - May include built-in fields such as
samples,model, andmax_workers.
- May not contain
-
custom_codesections:- Must have a non-empty
commandarray. - May not contain built-in-only fields such as
samplesormodel.
- Must have a non-empty
-
custom_nocodesections:- 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 config file. This setup means the following:
- You do not need to re-submit input when 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_nocodeconfig section is removed after aqt run, resuming that run will fail with a clear error.
See Restart and Resume Runs for the full recovery workflow.