Skip to main content

QuantPilot: which model, format and runtime to run on your PC

tests PyPI Python 3.10 to 3.13 Linux, macOS, Windows MIT license

QuantPilot tells you which local LLM to run on your PC, in which format and runtime, and why. It sizes every option from the model's own files, checks it against your free memory, ranks the options for the kind of work you do, and measures speed and quality on your machine instead of guessing. Then it makes the file for you.

Checking a model, then benchmarking its speed and quality in the app

  • Recommends the model, format (GGUF, AWQ, GPTQ, bitsandbytes, NVFP4), runtime (llama.cpp, vLLM, transformers) and context cache for chat, coding, RAG, agents, reasoning, long context, low latency or throughput, with the reasons and how sure it is.
  • Sizes exactly: weights and context memory from config.json and the tensor headers (no download of the weights), checked against llama.cpp's own memory numbers on NVIDIA, Apple Silicon and CPU.
  • Measures: speed and time to the first token with llama.cpp's benchmark, and quality as perplexity on WikiText-2, compared with the original model. Every result is kept, and the recommendations learn from it.
  • Quantizes: one command (or one button) from a Hugging Face model or your own fine-tune to a checked, benchmarked file.

Install

QuantPilot runs with uv on Linux, macOS and Windows, Python 3.10 or newer.

uv tool install quantpilot          # the ocq and quantpilot commands
uvx quantpilot                      # or try it without installing

Open the app

Type ocq in a terminal: with no command it opens the full-screen app (arrow keys and Enter, no flags to remember). quantpilot and ocq tui do the same, and ocq --help lists the commands.

You installed it with Open the app
uv tool install quantpilot ocq (or quantpilot)
nothing: just try it uvx quantpilot
pip install quantpilot in a virtual environment ocq, with that environment active
a clone of this repo (uv sync) uv run ocq

Quantization formats

Each quantization format is an extra, installed when you want it (they bring PyTorch, a large download):

uv tool install "quantpilot[gguf]"                              # GGUF: any PC
uv tool install "quantpilot[gguf,awq,bnb]" --torch-backend auto # NVIDIA: PyTorch for your driver
Extra Makes Needs
gguf GGUF for llama.cpp, Ollama, LM Studio (2 to 8 bit) any PC; llama.cpp is downloaded on first use
awq, gptq AWQ and GPTQ for vLLM an NVIDIA GPU, Linux or WSL2
bnb bitsandbytes 4 and 8 bit for transformers an NVIDIA GPU
nvfp4 NVFP4 for vLLM an NVIDIA GPU (Blackwell computes it in FP4)

ocq doctor then says what is ready on your PC and gives the command for anything that is not. The app's This PC page installs the extras with a button. With pip: pip install "quantpilot[gguf]". From a clone of the repo: uv sync --extra gguf.

Quick start

ocq                                   # the full-screen app (uv run ocq in a clone of the repo)
ocq doctor                            # is everything ready on this PC?
ocq recommend --workload coding       # which model and format to run, and why
ocq feasibility Qwen/Qwen3-8B         # every format of one model on this PC
ocq optimize Qwen/Qwen3-8B -b gguf --gguf-type Q4_K_M --execute
ocq bench ocq-output/Qwen--Qwen3-8B/artifact/Qwen--Qwen3-8B-Q4_K_M.gguf --quality

A model is a Hugging Face id, a folder of your own fine-tune (saved with save_pretrained), a .gguf file, or an Ollama model (ollama:qwen3:8b). ocq models lists the ones already on your PC: Ollama, LM Studio, the Hugging Face cache, your folders.

Your own model

Point QuantPilot at the folder your training saved with save_pretrained (Unsloth, Axolotl, the Hugging Face Trainer, TRL): it needs config.json, the *.safetensors weights and the tokenizer files. Merge LoRA adapters into the model first: an adapter alone is not a model.

ocq feasibility ./my-model                                    # every format, on this PC
ocq optimize ./my-model -b gguf --gguf-type Q4_K_M --execute  # or AWQ, GPTQ, bitsandbytes, NVFP4
ocq bench ocq-output/local--my-model/artifact/local--my-model-Q4_K_M.gguf --quality

The file remembers the folder it was made from, so --quality compares it with your original (measured once): Q4_K_M keeps about 77% of the model's quality. Every format works the same way: GGUF, AWQ, GPTQ, bitsandbytes and NVFP4.

Adding a model of your own, quantizing it to Q4_K_M and measuring what it keeps of the original

In the app, My models → + Add your model opens a folder browser that checks what you pick (✓ config.json, weights, tokenizer, or what is missing: a LoRA adapter to merge first, .bin weights to save again). Once added, the model is listed with the others and its menu offers Check, Quantize and Measure its quality.

Add your model: the folder is checked before it is added

The app

Run ocq for the full-screen app. Check a model gives the pick with its reasons and confidence, and every format's memory, speed and quality side by side. Quantize makes it with live progress. Benchmark measures any model on the PC and keeps the history. Discover ranks models for a kind of work, Settings keeps a Hugging Face token for gated models.

Check a model: the pick, its confidence, memory and speed of every format Benchmark: speed, time to the first token and quality, measured against what was expected

How it decides

Until measured Once measured on your PC
Memory Weights and context from the model's files, as each runtime allocates them (llama.cpp, vLLM, transformers), against your free VRAM and RAM ocq verify compares it with llama.cpp's own numbers
Speed The upper bound your memory bandwidth allows Learnt from your runs: every quantize and benchmark adds one
Time to first token Not known: said so Learnt from your runs, by model size
Quality llama.cpp's published loss of each format Perplexity on WikiText-2 against the original model

Options that cannot run here are ruled out with the reason. The rest are ranked by the workload's priorities in order (coding: quality, then context, then speed), never by one blended score. Each pick says why it won, what the next options would give and cost, and how sure it is (Low to Very High) with the evidence.

Formats and where they run

Format Runs with Good for
GGUF (Q2_K to Q8_0) llama.cpp, Ollama, LM Studio any PC: CPU, Apple Silicon, NVIDIA, Windows; mixture-of-experts models with experts in RAM
AWQ, GPTQ vLLM, transformers serving on an NVIDIA GPU (Linux or WSL2)
bitsandbytes transformers a quick 4 or 8 bit load on an NVIDIA GPU
NVFP4 vLLM NVIDIA Blackwell (RTX 50xx, B200, GB10)
MLX (read, not made) mlx-lm, LM Studio Apple Silicon

Checked against llama.cpp's own numbers on Windows 11 with an RTX 4060 Laptop, Linux (WSL2) with NVIDIA and CPU only, and macOS on Apple Silicon, with GPU and CPU only.

Commands

Command
ocq The full-screen app
doctor What is ready on this PC, and the command that fixes what is not
recommend Model, format, runtime and cache type for a kind of work, with reasons and confidence
models The models already on this PC and how each one fits
inspect Every fact about a model, where it came from and how sure it is
feasibility Every format of one model on this PC
plan, optimize What would be made, then --execute to make it, check it and benchmark it
bench Speed and time to the first token; --quality: perplexity and quality kept
verify Load a GGUF in llama.cpp once and compare its memory with QuantPilot's prediction
history This PC's saved benchmarks
profile, backends This PC's hardware, and the quantization tools installed

For scripts and agents

recommend, bench, models, inspect, feasibility, profile, history and doctor take --json, and Python gets the same data:

from ocq import api

pick = api.recommend(workload="coding")["best"]
print(pick["model"]["id"], pick["format"]["label"], pick["quality"]["kept"])

The shape is versioned and only grows within a version: see docs/api.md.

Learn more

MIT license.

Metadata

Release files for quantpilot 1.5.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for quantpilot 1.5.2
File Size Uploaded Provenance Actions
quantpilot-1.5.2.tar.gz 764.4 kB Without provenance Details for quantpilot-1.5.2.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for quantpilot 1.5.2
File Interpreter ABI Platform Actions
quantpilot-1.5.2-py3-none-any.whl Python 3 none any Details for quantpilot-1.5.2-py3-none-any.whl

Total release size: 985.9 kB

Release files / quantpilot-1.5.2.tar.gz

Download URL quantpilot-1.5.2.tar.gz
Size 764.4 kB
Tags Source
SHA-256 checksum
How to use checksums
cdd2879f906ad1e10945e553ca0de83f36ea635c80874bb84408db47ba0ef6f3
BLAKE2b-256 checksum
How to use checksums
1b5a9a95cd0a74a85a921e8a54b7efdaf96269118769c500cddb46be530ff5e6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.7 {"installer":{"name":"uv","version":"0.13.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / quantpilot-1.5.2-py3-none-any.whl

Download URL quantpilot-1.5.2-py3-none-any.whl
Size 221.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0a8e75d6f0a2719d3d3669090dfb8ea01c509a2bf79d16d014a21f1729d94bea
BLAKE2b-256 checksum
How to use checksums
d43f8d42bae34f1015315f86b3491a26debb401441bcc11198833f119ffbea72
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.7 {"installer":{"name":"uv","version":"0.13.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for quantpilot 1.5.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.5.2 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page