What I learned:
The 30-day story is MLX pulling ahead on the Mac while llama.cpp stays the "runs everywhere" default - The engine resolved this as a clean two-way split. llama.cpp is the incumbent by a mile - 121K stars, 1,914 open issues, and a stated goal of "LLM inference with minimal setup and state-of-the-art performance on a wide range of hardware." MLX is the Apple-Silicon-native challenger, and the sharpest framing came from an r/MacStudio thread on MLX-Serve (93 upvotes, 26 comments) where a commenter nails the tradeoff: "llama.cpp is simply optimized for Cuda/Nvidia, and not much you can do about it - llama.cpp is about compatibility across architectures, OS's, GPU's." That's the whole comparison in one line: portability vs peak-Apple speed.
MLX's momentum this month is the ecosystem, not just the core - The activity clustering around MLX is people building fast Apple-Silicon tools on top of it. @ivanfioravanti shipped a Mage-Flow PR for mflux (image gen "Powered by Apple MLX") clocking 1024x1024 generation at ~1.6s on an M5 Max and ~2.7s on an M3 Ultra, using ~18-20GB. The recurring theme is "twice as fast on Apple Silicon" - the same pitch behind MTP speculative-decoding projects in the MLX orbit. MLX's rough edge is model coverage: an LM Studio mlx-engine bug shows a new MoE-vision model type failing to load, the kind of gap you rarely hit with llama.cpp's broad format support.
llama.cpp's edge is quantization tooling and the fact that it runs on the hardware you don't own yet - The freshest llama.cpp-adjacent project is TheTom/llama-cpp-turboquant (2.2K stars), pitching "production-grade KV-cache and weight quantization for llama.cpp, with cross-backend kernel support for Apple Silicon, NVIDIA CUDA, AMD ROCm, and Vulkan." That cross-backend reach is exactly why people keep it around even when MLX is faster on their Mac - the same engine covers the CUDA box, the ROCm rig, and prebuilt setups like ai-dock/llama.cpp-cuda.
A wildcard is appearing: third-party runtimes claiming to beat both - A small HN post, "6.4x faster than llama.cpp, 3.9x faster than MLX", is the early signal that the two-horse race may not stay a two-horse race - purpose-built inference runtimes are starting to benchmark against both incumbents at once. It's low-engagement so far (4 points), so treat it as a straw in the wind, not a verdict.
KEY PATTERNS from the research: 1. Portability vs peak-Apple is the real axis - llama.cpp runs on "architectures, OS's, GPU's," MLX squeezes the Mac, per r/MacStudio 2. MLX's momentum is the tool ecosystem (mflux, MLX-Serve, MTP decoding) more than the core framework, per @ivanfioravanti 3. llama.cpp's staying power is quantization + cross-backend reach, per TheTom/llama-cpp-turboquant 4. MLX still trails on model coverage - new model types can fail to load, per the LM Studio mlx-engine bug 5. Watch for third-party runtimes benchmarking against both at once, per basert on HN
Head-to-Head
| Dimension | MLX | llama.cpp |
|---|---|---|
| What it is | Apple-Silicon-native array + serving stack | C/C++ inference engine, runs almost anywhere |
| GitHub footprint | Ecosystem repos (mflux, MLX-Serve, MTP) | 121K stars, 1,914 open issues on ggml-org |
| Philosophy | Peak performance on Apple GPU/ANE | Compatibility across arch, OS, and GPU |
| Hardware | Apple Silicon only | CUDA, ROCm, Vulkan, Metal, CPU |
| Speed on Mac | Fastest local path; ~2x claims common | Runs well, but tuned for CUDA not peak Apple |
| Quantization | Growing MLX quants | TurboQuant+ KV-cache/weight, cross-backend |
| Rough edges | New model types can fail to load | Broad but 1,900+ open issues |
| Best for | Mac-only users chasing tokens/sec | One engine spanning Mac + NVIDIA + more |
Bottom line: choose MLX if you live entirely on Apple Silicon and want the fastest local tokens with a growing tool ecosystem around it. Choose llama.cpp if you need a single engine that also targets NVIDIA/AMD and values format breadth over peak-Mac speed. The emerging stack is both at once - llama.cpp as the portable baseline, MLX-based serving on the Mac for speed - while newcomers like basert start benchmarking against both.