mlx-optiq
Run any LLM locally on your Mac. Quantize it, serve it, and code with it.
Website: https://mlx-optiq.com | Docs: https://mlx-optiq.com/docs/ | Models: https://mlx-optiq.com/models | Blog: https://mlx-optiq.com/blog/ | HF org: https://huggingface.co/mlx-community
mlx-optiq is the local-LLM stack for Apple Silicon: an optimizing compiler and runtime for MLX that turns a full-precision model into the best version for a given memory and latency budget on your Mac, using per-layer sensitivity measurement instead of uniform 4-bit everywhere. The same signal drives weights, KV cache, LoRA fine-tuning, and runtime adapter swapping.
One pip install gives you three ways to work with a local model: the CLI (quantize, serve, fine-tune), OptiQ Lab (a local web workbench), and OptiQ Code (a terminal coding agent that drives your served model).
pip install mlx-optiq
Python 3.11+. Quantizing and local inference need Apple Silicon;
optiq codeandoptiq labalso run on Linux and Windows against any OpenAI-compatiblebase_url.
What it does
- Mixed-precision weight quantization that beats uniform 4-bit at the same size.
optiq convertmeasures each layer's sensitivity and allocates bits per layer. Astaticmethod assigns bits by architecture for models too large to measure. Methods. - SSD expert streaming runs large MoE quants that don't fit in RAM. A 2-bit Qwen3.5-122B-A10B runs on a 36 GB Mac at ~12 GB resident, experts streamed off disk. How.
- Mixed-precision KV cache for longer context at lower memory.
optiq serveruns a per-layer KV quant pipeline. - One server, two protocols.
optiq servespeaks both the OpenAI and Anthropic APIs from one process. Point Claude Code or either SDK at the same local URL. - Speculative decoding via bundled MTP heads or paired drafters (
--mtp,--drafter). - Distributed inference across Macs.
optiq cluster serveshards a model's layers across two or more Macs over Thunderbolt and exposes one OpenAI endpoint. A 2-bit Qwen3.5-122B-A10B (42.8 GiB) runs fully resident across a 36 GB + 24 GB pair at ~20 tok/s, against 4.9 tok/s streaming experts off SSD on one Mac. How. - Sensitivity-aware LoRA (SFT + DPO) and runtime hot-swap adapters.
- OptiQ Lab (
pip install mlx-optiqthenoptiq lab): a local web UI for chat, quantize, fine-tune, and dataset work. Product. - OptiQ Code (
optiq code): a terminal coding agent that drives whateveroptiq serveis serving, offline, engineered for local models (never an empty patch, edit-resilient, stall-proof). Product.
Quickstart
Every mlx-optiq quant loads with stock mlx-lm:
from mlx_lm import load, generate
model, tok = load("mlx-community/Qwen3.5-9B-OptiQ-4bit")
print(generate(model, tok, prompt="Hello", max_tokens=50))
Installing mlx-optiq unlocks the rest. A few starting points:
# Serve with the OpenAI + Anthropic API and ~1.4x speculative decode
optiq serve --model mlx-community/Qwen3.5-9B-OptiQ-4bit --mtp
# Run a huge MoE that doesn't fit in RAM (experts stream off SSD)
optiq serve --model mlx-community/Qwen3.5-122B-A10B-OptiQ-2bit --stream-experts
# Quantize a fresh model (exact sensitivity, or fast structural rules for big bases)
optiq convert Qwen/Qwen3.5-9B --target-bpw 5.0 --candidate-bits 4,8
optiq convert <large-moe> --method static --candidate-bits 2,4 --target-bpw 2.5
# Fine-tune with sensitivity-aware LoRA
optiq lora train mlx-community/Qwen3.5-9B-OptiQ-4bit --data ./jsonl_dir --rank 8
# Shard a model across two Macs over Thunderbolt (one OpenAI endpoint)
optiq cluster up # on every Mac
optiq cluster serve --model mlx-community/Qwen3.5-122B-A10B-OptiQ-2bit
# Code with your local model, in your terminal (offline)
optiq code # interactive, in a repo
optiq code -p "Fix the failing test in parser.py" # headless
Full guides for serving, KV-quant, LoRA, MTP and per-family setup are in the docs. The models page lists every quant with its Capability Score, and the blog has the deeper write-ups.
Requirements
- Apple Silicon (M1 or newer), macOS, Python 3.11+.
- The published quants load with stock
mlx-lm. Converting and some MoE / multimodal runtime features trackmlx-lmmain; install it from git when a model card asks for it.
License
MIT for the package. Quantized models follow their base model's license.
Release files for mlx-optiq 0.5.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mlx_optiq-0.5.1.tar.gz | 2.1 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mlx_optiq-0.5.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 4.0 MB
Release files / mlx_optiq-0.5.1.tar.gz
| Download URL | mlx_optiq-0.5.1.tar.gz |
|---|---|
| Size | 2.1 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8f4f25acf96eba7ab258c551bf81d09d0b674f2d5975bc867a3b965b847b459d
|
|
BLAKE2b-256 checksum How to use checksums |
2818cb6b9ab886a5f0ba50fb0cbd12051852b30e27bd57a5eab1a219bfe5c99e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.7
|
Release files / mlx_optiq-0.5.1-py3-none-any.whl
| Download URL | mlx_optiq-0.5.1-py3-none-any.whl |
|---|---|
| Size | 2.0 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5a83980c9701490d737df391fe925459db35eb89739c2e7bff0f1e5f5501e8d9
|
|
BLAKE2b-256 checksum How to use checksums |
9f5a3a80c222f49bb9a6a035c8fda655452872551ca265d5504eda041bd11e45
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.7
|