Best Local Models at a Glance
The short answer: GPT-oss 20B leads local coding models at 98.3% on the 38-task benchmark and needs only about 12GB of RAM, which makes it the best all-around pick for 2026. Prefer Qwen? Qwen 3.5 35B scores 85.8% but wants 22GB. On a low-RAM laptop, Gemma 3 12B still hits 80.6% in roughly 3GB. Pick by the RAM you actually have, then use the comparison below for quant options and speed.
- GPT-oss 20B: 98.3% (38-task benchmark), ~12 GB RAM
- Qwen 3.5 35B: 85.8% (38-task benchmark), 22 GB RAM
- Gemma 3 12B: 80.6% (38-task benchmark), ~3 GB RAM
- Qwen 3.5 27B: 75.2% (Aider edit benchmark), ~9 GB RAM
- DeepSeek Coder V2: 72.9% (Aider edit benchmark), ~6 GB RAM
Full methodology and per-task results are in the 38-task LLM benchmark. Weighing local against cloud models? The LLM picker tool ranks both by use case and budget.
Local LLM Comparison for Coding (2026)
Run these models on your own hardware. Scores from our 38-task benchmark and the Aider edit leaderboard.
| Model | Score | Source | Min RAM | Quant Options | Est. Speed (32GB Apple Silicon) | Install |
|---|---|---|---|---|---|---|
| GPT-oss 20B | 98.3% | 38-task benchmark | 11.7 GB | Q2_K, Q3_K_S, Q3_K_M, Q4_0, IQ2_M, IQ2_S, IQ2_XS, IQ2_XXS, IQ3_M, IQ3_XS, IQ3_XXS, IQ4_NL, IQ4_XS, Q3_K_L, Q4_1, Q4_K_M, Q4_K_S, Q5_K_M, Q5_K_S, Q6_K, Q8_0, F16, BF16 | N/A | ollama pull openai/gpt-oss-20b |
| Qwen 3.5 35B | 85.8% | 38-task benchmark | 22 GB | Q4_K_M, Q8_0 | ~17 tok/s | ollama pull qwen-local |
| Gemma 3 12B | 80.6% | 38-task benchmark | 3.1 GB | IQ1_S, IQ1_M, IQ2_XXS, IQ2_S, IQ2_M, Q2_K, IQ3_XXS, IQ3_XS, Q3_K_S, IQ3_M, Q3_K_M, Q3_K_L, IQ4_XS, IQ4_NL, Q4_0, Q4_K_S, Q4_K_M, Q4_1, Q5_K_S, Q5_K_M, Q6_K, Q8_0, BF16 | ~40 tok/s | ollama pull google/gemma-3-12b |
| Qwen 3.5 27B | 75.2% | Aider edit benchmark | 8.8 GB | IQ2_XXS, IQ2_M, IQ3_XXS, Q3_K_S, Q3_K_M, IQ4_XS, IQ4_NL, Q4_0, Q4_K_S, Q4_K_M, Q4_1, Q5_K_S, Q5_K_M, Q6_K, Q8_0 | N/A | ollama pull qwen3.5-27b |
| DeepSeek Coder V2 | 72.9% | Aider edit benchmark | 6.1 GB | IQ2_XS, IQ2_S, IQ2_M, Q2_K, IQ3_XXS, IQ3_XS, IQ3_M, Q3_K_S, Q3_K_M, Q3_K_L, IQ4_XS, Q4_K_S, Q4_K_M, Q5_K_S, Q5_K_M, Q6_K, Q8_0, F32 | N/A | ollama pull aider/deepseek-coder-v2 |
| Qwen 3 32B | 72.9% | Aider edit benchmark | 7.9 GB | IQ1_S, IQ1_M, IQ2_XXS, IQ2_XS, IQ2_S, IQ2_M, Q2_K, IQ3_XXS, IQ3_XS, Q3_K_S, IQ3_M, Q3_K_M, Q3_K_L, IQ4_XS, IQ4_NL, Q4_0, Q4_K_S, Q4_K_M, Q4_1, Q5_K_S, Q5_K_M, Q6_K, Q8_0 | ~17 tok/s | ollama pull qwen3-32b |
| Qwen 3 235B | 72.2% | Aider edit benchmark | 140 GB | Q4_K_M | N/A | ollama pull qwen3-235b |
| Qwen 2.5 Coder 32B | 71.4% | Aider edit benchmark | 9.2 GB | IQ2_XXS, IQ2_XS, IQ2_S, IQ2_M, Q2_K, IQ3_XXS, IQ3_XS, Q3_K_S, IQ3_M, Q3_K_M, Q3_K_L, IQ4_XS, IQ4_NL, Q4_0_4_4, Q4_0_4_8, Q4_0_8_8, Q4_0, Q4_K_S, Q4_K_M, Q5_K_S, Q5_K_M, Q6_K, Q8_0 | ~17 tok/s | ollama pull aider/qwen2.5-coder-32b |
| Qwen 2.5 Coder 14B | 69.2% | Aider edit benchmark | 4.8 GB | IQ2_XS, IQ2_S, IQ2_M, Q2_K, IQ3_XS, Q3_K_S, IQ3_M, Q3_K_M, Q3_K_L, IQ4_XS, Q4_0_4_4, Q4_0_4_8, Q4_0_8_8, IQ4_NL, Q4_0, Q4_K_S, Q4_K_M, Q5_K_S, Q5_K_M, Q6_K, Q8_0, F16 | N/A | ollama pull aider/qwen2.5-coder-14b |
| DeepSeek R1 Distill 70B | 67.7% | Aider edit benchmark | 16.3 GB | IQ1_S, IQ1_M, IQ2_XXS, IQ2_XS, IQ2_S, IQ2_M, Q2_K, IQ3_XXS, Q3_K_S, IQ3_M, Q3_K_M, Q3_K_L, IQ4_XS, IQ4_NL, Q4_0, Q4_K_S, Q4_K_M, Q4_1, Q5_K_S, Q5_K_M | N/A | ollama pull deepseek-r1-distill-70b |
| Qwen 3 30B-A3B | 65.4% | Aider edit benchmark | 9.3 GB | IQ1_S, IQ2_S, IQ2_XS, IQ1_M, IQ2_XXS, IQ2_M, Q2_K, IQ3_XS, IQ3_XXS, Q3_K_S, IQ3_M, Q3_K_L, Q3_K_M, IQ4_XS, IQ4_NL, Q4_0, Q4_K_S, Q4_K_M, Q4_1, Q5_K_S, Q5_K_M, Q6_K, Q8_0 | N/A | ollama pull qwen3-30b-a3b |
| DeepSeek R1 Distill 32B | 65.4% | Aider edit benchmark | 9.2 GB | IQ2_XXS, IQ2_XS, IQ2_S, IQ2_M, Q2_K, IQ3_XS, Q3_K_S, IQ3_M, Q3_K_M, Q3_K_L, IQ4_XS, IQ4_NL, Q4_0, Q4_K_S, Q4_K_M, Q4_1, Q5_K_S, Q5_K_M, Q6_K, Q8_0 | ~17 tok/s | ollama pull deepseek-r1-distill-32b |
| Qwen 3.5 14B | 63.9% | Aider edit benchmark | 10 GB | Q4_K_M | N/A | ollama pull qwen3.5-14b |
| Mistral Small 3.1 24B | 60.2% | Aider edit benchmark | 5.7 GB | IQ1_S, IQ1_M, IQ2_XXS, IQ2_M, Q2_K, IQ3_XXS, Q3_K_S, Q3_K_M, IQ4_XS, IQ4_NL, Q4_0, Q4_K_S, Q4_K_M, Q4_1, Q5_K_S, Q5_K_M, Q6_K, Q8_0, BF16 | N/A | ollama pull mistral-small-3.1-24b |
| Llama 3.3 70B | 59.4% | Aider edit benchmark | 16.2 GB | IQ1_S, IQ1_M, IQ2_XXS, IQ2_XS, IQ2_S, IQ2_M, Q2_K, IQ3_XXS, IQ3_XS, Q3_K_S, IQ3_M, Q3_K_M, Q3_K_L, IQ4_XS, Q4_0_4_4, Q4_0_4_8, Q4_0_8_8, IQ4_NL, Q4_0, Q4_K_S, Q4_K_M, Q4_1, Q5_K_S, Q5_K_M | N/A | ollama pull aider/llama-3.3-70b |
| Llama 3.1 70B | 58.6% | Aider edit benchmark | 17.2 GB | IQ1_M, IQ2_XXS, IQ2_XS, IQ2_S, IQ2_M, Q2_K, IQ3_XS, Q3_K_S, IQ3_M, Q3_K_M, Q3_K_L, IQ4_XS, Q4_K_S, Q4_K_M, Q5_K_S | N/A | ollama pull aider/llama-3.1-70b |
| Qwen 3 14B | 58.6% | Aider edit benchmark | 3.9 GB | IQ1_S, IQ1_M, IQ2_XXS, IQ2_XS, IQ2_S, IQ2_M, Q2_K, IQ3_XXS, IQ3_XS, Q3_K_S, IQ3_M, Q3_K_M, Q3_K_L, IQ4_XS, IQ4_NL, Q4_0, Q4_K_S, Q4_K_M, Q4_1, Q5_K_S, Q5_K_M, Q6_K, Q8_0, BF16 | N/A | ollama pull qwen3-14b |
| Qwen 2.5 Coder 7B | 57.9% | Aider edit benchmark | 2.8 GB | IQ2_M, Q2_K, IQ3_XS, Q3_K_S, IQ3_M, Q3_K_M, Q3_K_L, IQ4_XS, Q4_0_4_4, Q4_0_4_8, Q4_0_8_8, Q4_0, Q4_K_S, Q4_K_M, Q5_K_S, Q5_K_M, Q6_K, Q8_0, F16 | ~60 tok/s | ollama pull aider/qwen2.5-coder-7b |
| Gemma 3 27B | 57.9% | Aider edit benchmark | 6.7 GB | IQ1_S, IQ1_M, IQ2_XXS, IQ2_XS, IQ2_S, IQ2_M, Q2_K, IQ3_XXS, IQ3_XS, Q3_K_S, IQ3_M, Q3_K_M, Q3_K_L, IQ4_XS, IQ4_NL, Q4_0, Q4_K_S, Q4_K_M, Q4_1, Q5_K_S, Q5_K_M, Q6_K, Q8_0 | N/A | ollama pull gemma-3-27b |
| Phi-4 14B | 53.4% | Aider edit benchmark | 5.7 GB | Q2_K, Q3_K_M, Q4_K_M, Q5_K_M, Q6_K, Q8_0, F16 | N/A | ollama pull phi-4-14b |
| Codestral 22B | 51.1% | Aider edit benchmark | 6.8 GB | IQ2_XS, IQ2_S, IQ2_M, Q2_K, IQ3_XXS, IQ3_XS, Q3_K_S, IQ3_M, Q3_K_M, Q3_K_L, IQ4_XS, Q4_K_S, Q4_K_M, Q5_K_S, Q5_K_M, Q6_K, Q8_0, F32 | ~25 tok/s | ollama pull aider/codestral-22b |
| DeepSeek R1 Distill 14B | 49.6% | Aider edit benchmark | 4.8 GB | IQ2_XS, IQ2_S, IQ2_M, Q2_K, IQ3_XS, Q3_K_S, IQ3_M, Q3_K_M, Q3_K_L, IQ4_XS, IQ4_NL, Q4_0, Q4_K_S, Q4_K_M, Q4_1, Q5_K_S, Q5_K_M, Q6_K, Q8_0, F16 | N/A | ollama pull deepseek-r1-distill-14b |
| Qwen 3 8B | 48.1% | Aider edit benchmark | 2.3 GB | IQ1_S, IQ1_M, IQ2_XXS, IQ2_M, Q2_K, IQ3_XXS, IQ3_XS, Q3_K_S, IQ3_M, Q3_K_M, Q3_K_L, IQ4_XS, IQ4_NL, Q4_K_S, Q4_0, Q4_K_M, Q4_1, Q5_K_S, Q5_K_M, Q6_K, Q8_0, BF16 | N/A | ollama pull qwen3-8b |
| Llama 3.1 8B | 37.6% | Aider edit benchmark | 3.0 GB | IQ2_M, Q2_K, IQ3_XS, Q3_K_S, IQ3_M, Q3_K_M, Q3_K_L, IQ4_XS, IQ4_NL, Q4_0_4_4, Q4_0_4_8, Q4_0_8_8, Q4_K_S, Q4_K_M, Q5_K_S, Q5_K_M, Q6_K, Q8_0, F32 | N/A | ollama pull aider/llama-3.1-8b |
| DeepSeek R1 Distill 7B | 36.1% | Aider edit benchmark | 2.8 GB | IQ2_M, Q2_K, IQ3_XS, Q3_K_S, IQ3_M, Q3_K_M, Q3_K_L, IQ4_XS, IQ4_NL, Q4_0, Q4_K_S, Q4_K_M, Q4_1, Q5_K_S, Q5_K_M, Q6_K, Q8_0, F16, F32 | ~60 tok/s | ollama pull deepseek-r1-distill-7b |