Run GPT-OSS 20B on a Mac
OpenAI's open-weight reasoner, native to the Harmony dual-channel format — rapid-mlx separates its analysis channel from the final answer automatically, with grammar-constrained tool calling on by default. Strong reasoning for its footprint.
MoE · 20 B total · MXFP4-Q8 · reasoning reasoning · OpenAI-style outputs · 16–32 GB Macs
One command
$ rapid-mlx serve gpt-oss-20b
Weights (11.3 GB) download on first run; you get an OpenAI-compatible
endpoint at http://localhost:8000/v1. No rapid-mlx yet? It's one line —
curl -fsSL https://rapidmlx.com/install.sh | bash — or take the
desktop app.
Measured on real hardware
| Machine | Decode | First token | Peak memory | Cold boot | Weights |
|---|---|---|---|---|---|
| Mac mini M2 Pro · 32 GB | 47.9 tok/s | 0.57 s | 9.4 GB | 9.5 s | 11.3 GB |
| Mac Studio M3 Ultra · 256 GB † | 124 tok/s | — | 12.1 GB | — | — |
Measured on rapid-mlx 0.12.10, 2026-08-11. Decode: median of 3 runs, temperature 0, 256-token saturating generation, engine-reported token counts, unique salt per request (no prefix-cache hits). TTFT: median of 3, short prompt. Boot: process spawn to first completed token. Peak RSS: 0.5 s sampling across the run. M3 Ultra row: from our 17-model benchmark post (same alias and quant).
On the M3 Ultra benchmark it scored 80% on tool calling. Full benchmark →
Will it fit your Mac?
Peak resident memory measured 9.4 GB during a 256-token generation. The KV cache grows with context length, so treat that as a floor, not a ceiling. For the conservative install-default placement see the hardware tiers table; to compare against every model your RAM can hold, use the live picker.
In this 256-token run, peak resident memory came in below the on-disk weight size — with mixture-of-experts weights the runtime doesn't have to touch every expert right away. Don't budget by that number: for sustained use, follow our memory guide and plan for the full weight size plus context headroom. The measured RSS here is a floor, not a plan.
Agents: In our end-to-end agent tests it reasons well but couldn't reliably drive Codex CLI's apply_patch edit format — for Codex, serve Qwen3.6 35B instead.
Variants & alternatives
gpt-oss-20b-mxfp4-q4— The Q4 variant — smaller, slightly lossiergpt-oss-120b— GPT-OSS 120B — the big sibling for 96 GB+ Macs
FAQ
How much memory does GPT-OSS 20B need on a Mac?
Measured peak resident memory was 9.4 GB on rapid-mlx 0.12.10 during a 256-token generation (M2 Pro, 32 GB). The weights are 11.3 GB on disk. Longer contexts grow the KV cache beyond this, so leave headroom.
How fast is GPT-OSS 20B on Apple Silicon?
We measured 47.9 tokens/sec sustained decode and 0.57 s time-to-first-token on a Mac mini M2 Pro (32 GB), median of 3 runs at temperature 0, and 124 tokens/sec on an M3 Ultra in our published 17-model benchmark.
How do I run GPT-OSS 20B locally?
Install rapid-mlx (curl -fsSL https://rapidmlx.com/install.sh | bash, or brew install rapid-mlx), then: rapid-mlx serve gpt-oss-20b — the weights download on first run and you get an OpenAI-compatible endpoint at localhost:8000/v1 that works with Cursor, Claude Code, Aider, and any OpenAI client.