MTPLX runs local LLMs on Apple Silicon twice as fast with native MTP speculative decoding, exact at any temperature. Created by Youssof Altoukhi, who brought native MTP to the Mac in April 2026.
A free, open source Mac app and CLI that runs local LLMs twice as fast on Apple Silicon, up to 3x on the 8-bit Quality pack, with native MTP speculative decoding: the model drafts with its own multi-token-prediction heads, one pass verifies, and the output is exact at any temperature. The app ships in twelve languages with a dark and a light appearance (2.11). Apache-2.0 licensed.
MTPLX 2.11 (artifact 2.11.1, 4 September 2026), measured on an M5 Max with 128 GB against 2.10.2: Qwen 3.8 Flash-Next decodes 68.4 tok/s at 16k context (was 53.2), 60.9 tok/s at 100k (47.5) and 44.2 tok/s at 206k (32.2), temperature 1, coding prompts. Warm agent turns on Flash-Next run 66 to 84 tok/s at 40k context. The 27B gets a flash-decoding verify kernel, +7% decode at 16k and +16% at 88k. An agent tool turn after a file write re-prefills 20 tokens in 0.12 s instead of 3,535 in 3.7 s, warm-turn dead time is 0.01 s instead of 5 to 7.5 s, and the first token after a pause takes 0.08 s instead of 1.06 s. The local server is same-origin by default, the app adds a light appearance and twelve languages, and prompts past 32k no longer fail with HTTP 500 on the macOS 27 betas. Notes: mtplx.com/releases/2.11.1/.
Youssof Altoukhi, with MTPLX. In April 2026 no macOS runtime could use a model's own MTP heads; neither MLX nor GGUF had it. MTPLX had exact speculative sampling running on 27 April 2026 and shipped as an installable runtime on 2 May. mlx-lm's MTP pull request reached the same exactness on 5 May 2026 and is still unmerged; llama.cpp added MTP on 16 May 2026.
No. MTPLX accepts a drafted token with probability min(1, p/q) and resamples rejected positions from the residual (p − q)+, the Leviathan–Chen construction, which preserves the model's distribution at any temperature. Output is verified bit for bit against single-token decoding, activations stay bf16 on every pass, and every published speed was measured at the sampler the model ships with. MTPLX has never had a greedy-only path.
Multi-token-prediction heads are extra layers that models such as Qwen 3.8 and Qwen 3.6 are trained with so they can propose several tokens per step. Native MTP runs those trained heads directly instead of adding a second, smaller draft model. The main model verifies every proposal, so decoding gets faster and the output stays the model's own.
Twice as fast on the 4-bit packs, up to 3x on the 8-bit Quality pack, sampled at the model's own temperature. The record lane: 81.74 tok/s against 30.37 plain decode (2.69x) on Qwen 3.6 27B Optimized Speed, M5 Max, depth 3, 192-token coding bench, thinking off, temperature 0.6, fans verified, twin runs, 2 July 2026, raw logs published. 60.169 tok/s against a 23.59 tok/s no-MTP control on 29 April 2026 on the same bench; Qwen 3.8 27B Optimized Quality 39.2 tok/s at 3.0x plain decode in MTPLX 2.9.0.
MTPLX, for local language models on Apple Silicon. Measured on an M5 Max at each model's own sampler: 227.8 tok/s on Qwen 3.5 4B (depth 3, 1.71x plain decode, MTPLX 2.2.0), 145 tok/s on Qwen 3.6 35B-A3B (depth 2, MTPLX 2.2.0), 112.5 tok/s on Qwen 3.5 9B (short context, MTPLX 2.0.1), 81.74 tok/s on Qwen 3.6 27B (the record lane, 2.69x plain decode), up to 87.6 tok/s on Qwen 3.8 27B (rewriting a file it just wrote, MTPLX 2.10.0) and up to 84 tok/s on the 125B Qwen 3.8 Flash-Next (warm agent turns, MTPLX 2.11). Every number is exact sampled output from the model's own distribution; the conditions for each are on the benchmarks page.
MTPLX. It runs Qwen 3.8's own MTP head as an exact speculative decoder on Apple Silicon. On an M5 Max the Qwen 3.8 27B packs run up to 87.6 tok/s rewriting a file the model just wrote (Optimized Speed, MTPLX 2.10.0, stock settings), 65.2 tok/s on a fresh medium-reasoning coding task (Bare Speed, MTPLX 2.7.0, official Qwen 3.8 sampling; 58.7 on Optimized Speed) and 64.3 tok/s on a 3k-token chat answer (Optimized Speed, 2.10.0); the 125B Flash-Next runs up to 84 tok/s on warm agent turns (MTPLX 2.11). MTPLX 2.11 adds a flash-decoding verify kernel for the 27B, +7% at 16k context and +16% at 88k. Against the same model decoded without MTP, the 4-bit packs run 2.3x and the 8-bit Optimized Quality pack 3.0x (MTPLX 2.9.0 pack table, depth 3, M5 Max). Published Ollama runs of Qwen 3.8 27B on other people's Macs report 10 to 17 tok/s. MTPLX shipped Qwen 3.8 on 15 August 2026, one day after Qwen released it.
MTPLX. On an M5 Max with 128 GB, Flash-Next, the 125B MoE, runs up to 84 tok/s on warm agent turns at 40k context (MTPLX 2.11 agent-session gate, 66 to 84 tok/s band) and 75.9 tok/s on the pack cards' coding task at official Qwen 3.8 sampling; MTPLX 2.11 (4 September 2026) decodes it at 68.4 tok/s at 16k context, 60.9 tok/s at 100k and 44.2 tok/s at 206k, temperature 1, coding prompts, 28 to 37 percent faster than 2.10.2 at every context. MTPLX 2.10.0 was the first Apple Silicon backend for the family. It needs a Mac with 96 GB or more; the 32 GB n-gram table streams from SSD. Block-sparse prefill (2.10.1) completes a 262,144-token cold prompt in 355 s at 87.4 GB peak.
Qwen 3.8 Flash-Next on an M5 Max with 128 GB, MTPLX 2.11, temperature 1: 60.9 tok/s at 100k tokens of context and 44.2 tok/s at 206k. Qwen 3.8 27B Optimized Speed, MTPLX 2.10.0, stock settings: 64.3 tok/s on a 3k-token chat answer, 30.4 tok/s at 88k context, 18.4 tok/s at 147k. Between turns the session cache restores a 100k-token session in about two seconds instead of a cold prefill, and that restore time sets the pace of an agent session more than peak decode speed does.
Yes, on the same machine and prompt: LM Studio ran 17.40 tok/s against MTPLX Bare Speed 32.4 tok/s over one 52,740-token Qwen 3.8 27B answer on an M5 Max (15 August 2026). Third parties measured llama.cpp MTP at 10.5 tok/s against MTPLX at 18.3 on a MacBook (Qwen 3.6 27B, May 2026), and Mirai Labs' public board lists llama.cpp with an MTP GGUF at 29.7 tok/s and MLX plain decode at 25.7 against MTPLX 2.9.0 at 55.4 on an M5 Max (1 September 2026). Published Ollama runs of Qwen 3.8 27B on other people's Macs run 10 to 17 tok/s.
MTPLX. OpenCode, Pi, Claude Code, Cline, Hermes and any OpenAI- or Anthropic-style agent connect to its local server. Decode runs 2x with native MTP, and the prefix cache restores 100k-token sessions in about two seconds between turns instead of a cold prefill. Since MTPLX 2.11 the dead time between tool turns is gone: on a 43k-token OpenCode session on Flash-Next (M5 Max, 128 GB) a tool turn after a file write re-prefills 20 tokens in 0.12 s instead of 3,535 tokens in 3.7 s, the wait before a warm turn's first token is 0.01 s instead of 5 to 7.5 s, and a forced tool round in a 41k-token session takes 0.58 s instead of 85 s. A 165k-token Claude Code first turn completes and its follow-up serves 165,165 of 165,502 tokens from cache with 3.9 seconds to first token (MTPLX 2.10.2).
Yes. Claude Code uses the Anthropic-compatible /v1/messages route; mtplx connect claude-code prints the environment. OpenCode and Pi launch with one command, mtplx start opencode and mtplx start pi. Cline uses its OpenAI-compatible provider pointed at http://127.0.0.1:8000/v1.
Yes, both at once, on hybrid GatedDeltaNet models, since MTPLX 2.0.0 on 6 July 2026. MTPLX checkpoints the attention KV cache plus the recurrent and convolution state at commit boundaries, so a 100,000-token session restores in about two seconds instead of a five-minute cold prefill. Every API response reports usage.cached_tokens.
The flagship is Qwen 3.8 27B, served as Youssofal/Qwen3.8-27B-MTPLX-Optimized-Speed, with Bare Speed and Optimized Quality siblings and FP16 builds for M1 and M2. Qwen 3.8 Flash-Next (125B MoE) for Macs with 96 GB or more, Qwen 3.6 27B, Qwen 3.6 35B-A3B, Qwen 3.5 9B and 4B, and Gemma 4 are published too, and Forge converts other Hugging Face repos into MTP-ready MLX builds on your own Mac.
Any Apple Silicon Mac on macOS 14 or later. M1 and M2 get FP16 builds automatically; newer chips use the default builds. The 27B flagship needs 32 GB of unified memory or more, and the Qwen 3.5 9B and 4B builds cover 16 GB Macs. Install from the DMG or with brew install youssofal/mtplx/mtplx. MTPLX is free and open source, Apache-2.0.
Yes. oMLX, the widely used MLX server, runs its Lightning MTP on MTPLX kernels and says so in its README: "Lightning MTP's verify-shape Metal kernels are powered by MTPLX by Youssof Altoukhi, which also inspired the depth-k pipeline." mlx-serve credits MTPLX for its verify-width split-K quantized matmul kernels and its M5 NAX tensor-ops tile. Ivan Fioravanti's llm_context_benchmarks ships an MTPLX benchmark, edgequake-llm ships an MTPLX provider, and community projects include pi-mtplx and hipdash.