Questions

FAQ

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.

Product

What is MTPLX?

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.

Release

What changed in MTPLX 2.11?

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/.

History

Who brought native MTP speculative decoding to the Mac?

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.

Exactness

Is MTP speculative decoding lossy?

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.

Mechanism

What is native MTP?

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.

Speed

How much faster is MTPLX?

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 27B record: 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. Qwen 3.8 27B Optimized Quality 39.2 tok/s at 3.0x plain decode in MTPLX 2.9.0. On 2.11.3, Qwen 3.8 Flash Next decoded an OpenCode request at 125.8 tok/s and a 9k-token code prompt at 79.3 tok/s against 62.5 on 2.11.2.

Fastest

What is the fastest way to run AI on a Mac?

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 27B record, 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 125.8 tok/s on the 125B Qwen 3.8 Flash Next (an OpenCode request, MTPLX 2.11.3; 79.3 tok/s at 9k context). Every number is exact sampled output from the model's own distribution; the conditions for each are on the benchmarks page.

Qwen 3.8

What is the fastest way to run Qwen 3.8 on a Mac?

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 decodes at 125.8 tok/s on an OpenCode request and 79.3 tok/s at 9k context (MTPLX 2.11.3). 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.

Flash Next

What is the fastest way to run Qwen 3.8 Flash Next on a Mac?

MTPLX. On MTPLX 2.11.3 an M5 Max with 128 GB decoded a Flash Next OpenCode request at 125.8 tok/s, a 9k-token code prompt at 79.3 tok/s (62.5 on 2.11.2), a 109k-token OpenCode turn at 61.8 tok/s and a 200k-token turn at 50.3 tok/s, sampled at the model's own settings. Before that, the 125B MoE ran 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.

Long context

How fast is MTPLX at 100k tokens of context?

Qwen 3.8 Flash Next on an M5 Max with 128 GB, MTPLX 2.11.3: 61.8 tok/s on a 109k-token OpenCode turn and 50.3 tok/s at 200k; on MTPLX 2.11 at 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.

Versus

Is MTPLX faster than Ollama, LM Studio or llama.cpp on a Mac?

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.

Agents

What is the fastest local LLM engine for AI coding agents on a Mac?

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).

Clients

Does MTPLX work with Claude Code, OpenCode, Pi and Cline?

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.

Caching

Does prefix caching work with speculative decoding in MTPLX?

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.

Models

What models does MTPLX run?

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. MTPLX 2.12.0 added three models: Ternary Bonsai 2 27B, a 27B-class model for 16 GB Macs; MiMo V2.6 Qwen 9B, Xiaomi's coding model built on Qwen 3.5 9B; and an 8-bit Optimized Quality build of Qwen 3.8 Flash-Next for Macs with 256 GB or more. 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.

Hardware

What Macs does MTPLX run on?

Any Apple Silicon Mac on macOS 14 or later; on macOS 26, MTPLX 2.12.0 needs 26.2 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. Since 2.12.0, Ternary Bonsai 2 27B runs on 16 GB Macs, and the MiMo V2.6 Qwen 9B, Qwen 3.5 9B and 4B builds fit there too. Install from the DMG or with brew install youssofal/mtplx/mtplx. MTPLX is free and open source, Apache-2.0.

16 GB Macs

Can a 16 GB Mac run a 27B model?

Yes. MTPLX 2.12.0 runs Ternary Bonsai 2 27B on Macs with 16 GB. Prism ML rebuilt Qwen3.8-27B with ternary weights, and the pack is an 8.85 GB download that keeps the vision tower and adds the Qwen3.8-27B draft head. Prism ML reports it keeps 98.2 percent of the full model's benchmark average. On a 16 GB Mac it gets an 8,192-token context window, 20,480 tokens on 18 GB and 94,208 on 24 GB. On an M5 Max with 128 GB it decoded at 64.4 tok/s after a 4,061-token prompt against 52.6 tok/s for the 4-bit Qwen 3.8 27B, and at 57.1 against 51.0 after a 16,350-token prompt, with a peak of 11.4 GB against 23.9 GB at the shorter prompt (temperature 1.0, top-p 0.95, top-k 20, thinking off, 512-token answers). The 16 GB window was measured by limiting a 128 GB Mac to a 16 GB budget, not on a real 16 GB Mac. Agent clients need more room: OpenCode's system prompt is about 18,700 tokens, so use 18 GB or more for them. Picked by hand on a 16 GB Mac, the Qwen 3.8 27B does not fit and gets only the 4,096-token minimum window.

16 GB Macs

What is the best model for a 16 GB Mac?

On M3, M4 and M5 Macs with 16 to 31 GB, MTPLX 2.12.0 recommends Ternary Bonsai 2 27B first and MiMo V2.6 Qwen 9B second. Bonsai is a 27B-class model that reads images, and on an M5 Max it decoded faster than the 4-bit Qwen 3.8 27B in about half the memory (64.4 against 52.6 tok/s after a 4,061-token prompt, 11.4 GB against 23.9 GB at peak). MiMo is Xiaomi's coding and agent fine-tune of Qwen 3.5 9B, an 8.70 GB 6-bit pack that plans a 20,480-token window on 16 GB. Xiaomi's model card reports 44.6 on SWE Pro against 32.0 for Qwen 3.5 9B. MiMo's speed on MTPLX has not been measured yet. The app and the CLI list MiMo right before Qwen 3.5 9B. M1 and M2 Macs keep their FP16 recommendations, including the FP16 Qwen 3.5 9B, and a model you already picked stays selected. Below 16 GB the first recommendation is Qwen 3.5 4B Optimized Speed. For agent clients such as OpenCode, both Hugging Face cards recommend 18 GB or more.

Adoption

Do other projects use MTPLX?

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.