# Run config The run config names the candidate models for a sweep. It is optional: with no config file, `quantproof run --pack ` sweeps every model already in the local Ollama store. ```yaml # quantproof.yaml backend: ollama # "rapid-mlx" or "anthropic"; default ollama candidates: # evaluated first, pulled on demand if missing - gemma3:1b - qwen3:4b use_local_models: true # local backends: also sweep everything already available (default true) ``` That is the whole format. Unknown keys are an error so a typo cannot silently change what runs. ## The rapid-mlx backend `backend: rapid-mlx` runs the sweep against a local [Rapid-MLX](https://github.com/raullenchai/Rapid-MLX) server (OpenAI-compatible, MLX, Apple Silicon only) at http://localhost:8000. The server holds exactly one resident model per process, chosen when it starts: ``` rapid-mlx serve --served-model-name my-model:tag quantproof run --pack --config rapid.yaml # backend: rapid-mlx ``` With no candidates list the sweep covers whatever the server is serving. Models cannot be pulled or unloaded at runtime, so comparing several MLX models means one server (and one quantproof run) per model; the stored runs compare across reports. Fit is not predicted (the server exposes no weight files); peak memory is measured from the server's own Metal accounting, and the prompt cache is cleared before every generation so latency measures fresh inference. ## The anthropic backend `backend: anthropic` runs the sweep against Claude models over the Anthropic API instead of local Ollama models. It needs an explicit candidates list of model ids and the `ANTHROPIC_API_KEY` environment variable: ```yaml # api-sweep.yaml backend: anthropic candidates: - claude-haiku-4-5 - claude-sonnet-4-5 ``` ``` export ANTHROPIC_API_KEY=sk-ant-... quantproof run --pack --config api-sweep.yaml ``` List valid model ids with `quantproof models --backend anthropic`. `use_local_models` does not apply (there is no local store to merge in), and VRAM/fit columns render not-applicable because inference runs on Anthropic hardware; see docs/methodology.md for exactly what is and is not measured on this backend. Notes: - Explicit candidates run in declared order relative to each other, but the planner reorders the final set largest-first so out-of-memory surprises surface early. - Ollama cloud models (`*:cloud`) are excluded automatically: nothing about them can be measured locally. - Candidates predicted not to fit in free VRAM are skipped from the plan; pass `--force` to attempt them anyway. An attempt that runs out of memory is recorded as a result, not an error. - `quantproof resume` reuses the run's original config exactly. If this file (or the task pack) changes on disk after planning, resume aborts rather than mixing two configurations in one result set.