Hardware honesty up front
MLX runs on every M-series Mac. That's the technical answer. The honest answer is that "runs" covers a lot of ground — from "you can do the 51 lessons of this quest" to "you can fine-tune a 70B model and serve it from your desk." Same framework, very different practical experiences.
This lesson is the practical compatibility map: what the minimum requirements actually are, what each tier of Mac can realistically do, and how to confirm in two terminal commands what you're sitting in front of.
The minimum bar
- An Apple Silicon Mac — any M-series chip. Intel Macs are out. (MLX has a partial CUDA backend on Linux now, but that's a different story; on Mac, it's M-series only.)
- macOS ≥ 14.0 (Sonoma) — earlier macOS versions don't ship the Metal features MLX depends on. macOS 15 (Sequoia) and 16 (Tahoe) are fine.
- Python ≥ 3.10, running natively as ARM (not under Rosetta x86 emulation). The next track's lesson 1 walks you through verifying this.
If you fail any of these, you don't get an error about MLX — you get a confusing pip install error or, worse, a successful install that segfaults on first import. The check below catches all three failure modes in three commands.
The two-minute compatibility check
Run this in any terminal. The expected outputs below are from my office Mac (an M3 Ultra Studio); your numbers will be different but the shape of the output should match.
What each tier of Mac can do
Here's a rough capability map as of 2026-05. The key variable is unified memory size, because models live in it. Actual fit also depends on quantization and KV-cache size — see lesson 4 for the napkin math.
- 8 GB MacBook Air (base M-series) — small models only (3B–4B params, Q4). Quest material works; Track 2's mlx-lm experiments need a smaller model.
- 16 GB — comfortable for 7B Q4, tight for 7B fp16, no shot at 70B. Most of this quest runs cleanly here.
- 32 GB — 7B fp16 fits with room. 13B Q4 fits. Fine-tuning a 7B with LoRA fits.
- 64 GB — 13B fp16, 70B Q4 (just barely). End-to-end fine-tune walkthrough in Track 4 fits comfortably.
- 96 GB — first tier where 70B Q4 has breathing room.
- 128 GB — 70B fp16 within reach.
- 192 GB — 180B-class Q4 fits. You're now competing with 8-GPU NVIDIA racks for inference.
- 512 GB (M3 Ultra Studio) — 405B Q4 fits with overhead. This tier is what changes the conversation about "where do you run frontier-size models." Lesson 4 has the napkin math.
The Rosetta trap (preview)
If your Python is under Rosetta x86 emulation, MLX pip install may quietly succeed (because there's an x86 wheel for one of the dependencies) and then segfault or report "no matching wheel" on first import. The next track's first lesson is dedicated to this — for now, just know that uname -m printing arm64 is a load-bearing line.