Skip to content
, ,

llama.cpp 1.0 Is Out: What Changed, How to Install or Upgrade, and What Breaks

12–18 minutes
Woman at a home PC desk with a glowing GPU holding a phone with a LLAMA.CPP card, hook llama.cpp 1.0 is finally here

After three and a half years of numbered nightly builds, llama.cpp has reached version 1.0.0. The ggml tensor library underneath it hit 1.0.0 on the same day, 13 November 2026.

This is not a flashy new model. It is a promise: the engine behind a huge share of local AI apps now follows proper version rules, so developers can tell when an update will break their code.

This guide explains what 1.0 actually means, what changed in the release, how to install or upgrade on Windows, Mac and Linux, the new flags worth trying, what breaks, and what it means if you use Ollama, LM Studio or the new Llama desktop app.

TL;DR

  • What: llama.cpp v1.0.0 and ggml v1.0.0, announced by ggml-org on the Hugging Face blog on 13 November 2026.
  • Big change: semantic versioning. A major version bump now signals a breaking change to the public C API (and, per the team, the ABI).
  • Removed: 35 deprecated functions, including llama_set_warmup, plus the defrag-threshold option.
  • New: FP8 KV cache (f8_e4m3), a GPU cache for CPU-offloaded MoE experts, server security fixes and a redesigned web UI.
  • Install: one-line scripts from llama.app, plus Homebrew, Winget, conda-forge, MacPorts, Nix, Docker and prebuilt zips.
  • Cost: free and open source (MIT). The new Llama desktop app for Mac and Windows is free too.
  • For most users: nothing breaks today. Developers who call the old C API need to fix removed functions before upgrading.

What llama.cpp 1.0 Actually Means

llama.cpp is the C/C++ engine that runs GGUF models on ordinary hardware. It started as a weekend port of Meta’s LLaMA in March 2023 and grew into the base layer for a long list of local AI tools.

It is made of two libraries. libllama handles model loading and inference, and libggml is the tensor library that talks to your CPU, GPU or NPU. Both are now at 1.0.0.

Quick answer: llama.cpp 1.0 is a stability milestone, not a rewrite. Your GGUF files and usual commands keep working. The change is that the public C API is now covered by semantic versioning, so breaking changes will only arrive with a new major version.

Why it matters now

Until now, releases were simply numbered builds like b12207. A new build could rename or remove a function with no warning in the version number, and apps built on top had to keep up.

The maintainers wrote that “many downstream applications already depend on our work”. Version 1.0 turns that into a formal duty: if they break you, the major number changes.

The release-process discussion goes back to 7 August 2026, according to Unite.AI, so this was planned for months rather than rushed out.

The New Version Rules

Both llama.cpp and ggml now follow semantic versioning. Here is how each kind of change maps to a version number.

Bump Example When it happens
MAJOR 1.x.x to 2.0.0 A breaking change to the public C API in include/. The team says ABI breaks will also bump the major.
MINOR 1.0.0 to 1.1.0 New features, backend updates, new model support or API additions that do not break anything.
PATCH 1.0.0 to 1.0.1 Bug fixes with no API change.

Stable releases get tags that start with v (like v1.0.0). Nightly builds keep the b prefix (like b12207), so you can still grab the newest code if you want it.

One more rule matters for Linux users. An official llama.cpp tag is only cut when its bundled ggml matches a released ggml version. That keeps system packages from Debian and Homebrew in step with each other.

Small gap in the wording: the blog intro promises that both API and ABI breaks bump the major version, but the rules table only names the C API. Expect the team to clarify this as the first 1.x releases land.

What Changed in v1.0.0

The release also bundles a large batch of features and clean-up. The list below comes from the release notes as summarised by Unite.AI and DEV Community, plus the current server docs.

Area Change Who it helps
Public API 35 deprecated functions removed, including llama_set_warmup; defrag-threshold option removed Developers (cleaner API, but code must be updated)
Speculative decoding NextN API moved from llama-ext.h into the public llama.h Apps using MTP/NextN drafting; now covered by the stability promise
KV cache OCP FP8 cache type f8_e4m3, with optional static per-tensor scales Long-context users who want a smaller cache than f16
MoE offload GPU cache for experts kept on the CPU, with a configurable CPU share People running big MoE models on one 16-24 GB GPU plus lots of RAM
Model files External PLE or engram data can load from separate GGUF shards Newer architectures that ship extra data files
New models Kimi-K3.1-Pro, Ripple and xing4_0 (text), drama-3 (TTS), MageVL-Cowork and Kimi-K3.1 (vision) Anyone who wanted those GGUFs
llama-server security Fixes for SSRF, CORS and DNS rebinding; HF_TOKEN only sent to huggingface.co Anyone exposing the server on a network
llama-server features MCP tool calls cancelled on client disconnect; OpenAI-style speech endpoint reported Agent and voice app builders
Web UI Redesign with named chat groups, live-preview Markdown editor, better mobile layout People who chat in the browser UI
ggml backends CUDA and Metal MoE fusion, Intel Vulkan prefill FlashAttention, SYCL MoE scheduler, Adreno OpenCL FlashAttention, new WebGPU kernels Faster runs on many kinds of hardware

The project says it now supports more than 150 architecture variants and all mainstream speculative decoding methods. Backends cover NVIDIA CUDA, AMD HIP, Apple Metal, Vulkan, Intel SYCL and OpenVINO, Qualcomm Hexagon and Adreno, Ascend CANN, Moore Threads MUSA, IBM zDNN, WebGPU and more.

Each backend can also be built as a separate dynamic library and loaded at runtime. That is how one download can pick CUDA on one PC and Vulkan on another.

How to Install or Upgrade

You have more ways to install llama.cpp than ever. Pick the first one that matches your setup.

Method Platforms Command or where
Install script macOS, Linux curl -LsSf https://llama.app/install.sh | sh
Install script Windows (PowerShell) irm https://llama.app/install.ps1 | iex
Homebrew macOS, Linux brew install llama.cpp
Winget Windows winget install llama.cpp
conda-forge Windows, macOS, Linux conda, mamba or pixi; CUDA and Vulkan builds on Windows/Linux, Metal on Mac
MacPorts / Nix macOS / macOS, Linux llama.cpp port / llama-cpp in nixpkgs
Docker Linux ghcr.io/ggml-org/llama.cpp:server or :server-cuda
Prebuilt zip Windows, macOS, Linux, Android, iOS GitHub Releases page (CPU, CUDA 12.4/13.5, Vulkan, ROCm, SYCL builds)
Before you pipe a script into your shell: only use the llama.app address above, which the official README links to. Open the script in your browser first if you want to see what it does.

Upgrade an existing install

  1. Check your current build. Run llama-cli --version. Old installs show a build number like b12207.
  2. Update with the same tool you installed with. For example brew upgrade llama.cpp or winget upgrade llama.cpp, or download the new zip.
  3. For Windows zips, match your GPU. Pick the CUDA 13.5 zip for recent NVIDIA drivers, CUDA 12.4 for older ones, Vulkan for AMD/Intel, and download the matching cudart DLL zip into the same folder.
  4. Keep your GGUF files. They do not need converting. Models from the Hugging Face cache are reused.
  5. Re-test your scripts. Run your usual command and check the startup log for warnings about unknown flags.

Build from source

git clone https://github.com/ggml-org/llama.cpp.git
cd llama.cpp
git checkout v1.0.0
cmake -B build -DGGML_CUDA=ON      # NVIDIA; drop for CPU, use -DGGML_VULKAN=ON or -DGGML_HIP=ON for others
cmake --build build --config Release
./build/bin/llama-server --version

On a Mac, Metal is on by default, so plain cmake -B build is enough. If you want to understand the GPU options first, my Ollama vs LM Studio vs llama.cpp guide walks through when building yourself is worth it.

Run Your First Model

The fastest test is to let llama.cpp download a small model straight from Hugging Face. The README now shows a short form that runs through the single llama command.

# chat in the terminal
llama cli -hf ggml-org/Qwen3.5-0.8B-GGUF

# start an OpenAI-compatible server with the web UI
llama serve -hf ggml-org/Qwen3.5-0.8B-GGUF

# the classic binaries still work
llama-server -hf ggml-org/Qwen3.5-0.8B-GGUF --port 8080

The -hf flag picks Q4_K_M by default. Add :Q8_0 or another tag after the repo name to choose a different file. If you are unsure which file to pick, see GGUF quantization explained.

Tip: the current server docs list 9931 as the default port (the same port the Llama app uses), while many older guides and the Docker examples use 8080. Always pass --port so your other tools know where to connect.

Open http://127.0.0.1:9931 (or your chosen port) in a browser for the new web UI. Any OpenAI client can point at /v1/chat/completions on the same address.

New Flags Worth Trying

Two of the new features are useful on consumer GPUs right away. These flag names come from the current llama-server README.

Flag What it does Default
-ctk f8_e4m3 / -ctv f8_e4m3 Stores the K and V cache in FP8 instead of f16, roughly halving cache memory f16
--moe-cache-mib N Reserves N MiB of VRAM as a cache for MoE experts that live on the CPU 0 (off)
--moe-cache-cpu-share F Fraction (0 to 1) of cache misses the CPU computes instead of copying experts to the GPU 0.00
-cmoe / -ncmoe N Keep all, or the first N layers of, MoE weights on the CPU off
-fa on|off|auto Flash Attention auto

Example: a big MoE model on one 16 GB GPU

This is the kind of setup the new MoE cache was made for: most experts in system RAM, the hot ones cached on the GPU. Replace the repo with the model you actually use.

llama-server -hf your-org/your-moe-model-GGUF:Q4_K_M \
  -ngl 99 -ncmoe 40 \
  --moe-cache-mib 4096 --moe-cache-cpu-share 0.3 \
  -ctk f8_e4m3 -ctv f8_e4m3 -fa on \
  -c 32768 --port 8080

I have not published timings for this, so treat the numbers as a starting point. Tune -ncmoe down until you run out of VRAM, then grow the cache. My Qwen3.8-Flash-Next on 2x 16 GB GPUs guide covers the offload basics in more depth.

FP8 vs q8_0 cache: both use about the same memory. FP8 is a float format, so it can keep outliers better on some models, but there is no official quality table yet. Compare answers on your own prompts before switching for good.

What Breaks and How to Migrate

If you only run commands, almost nothing should break. The breaking changes are aimed at people writing code against llama.h or ggml.h.

  • Removed functions: 35 deprecated calls are gone. Code that still uses them will fail to compile.
  • Warmup setter: llama_set_warmup is removed.
  • Defrag threshold: the KV cache defrag-threshold option is removed, so scripts that pass it may see an unknown-option error.
  • NextN header: if you included llama-ext.h for speculative decoding, switch to llama.h.
  • ggml: deprecated APIs and the legacy DIAG_MASK operations are removed.

Migration steps for developers

  1. Build your project against the last b-build you used and turn on deprecation warnings. Every warning is now a compile error in 1.0.
  2. Replace each deprecated call with the newer function named in the old warning.
  3. Move any NextN includes to llama.h.
  4. Pin to v1.x in your package or submodule, so you get fixes and features but never a surprise major.
  5. For Python wrappers and bindings, wait for their maintainers to publish a 1.0-based release before upgrading the bundled library.

Ollama, LM Studio and the Llama App

Lots of popular apps build on llama.cpp code. The 1.0 announcement does not list specific changes for any of them, so here is what you can and cannot expect.

  • Ollama and LM Studio users: nothing changes until those apps ship an update. They pick their own engine versions on their own schedule. My Ollama guide covers updating Ollama itself.
  • Developers of those apps: stable version numbers should make upgrades less painful over time. That is my reading, not something Ollama or LM Studio has said.
  • Llama desktop app: a free app from the llama.cpp team and Hugging Face, linked from the 1.0 post.

The Llama desktop app at a glance

Item Details from llama.app
Platforms Mac app (about 1 MB download, 4 MB installed), Windows 11 app, command-line install on Linux
Price Free, no API keys, works offline once models are downloaded
Chat Browser chat UI with PDF and image input for vision models
Local API localhost:9931/v1, OpenAI-compatible; Anthropic-compatible endpoints, streaming, tool calling, structured output
Auto setup Picks quantization, context and batch size for your hardware; settings editable in a plain-text file
Memory Uses the shared Hugging Face cache; unloads a model after 5 minutes idle
Suggested models Gemma 4 for 16 GB+ Macs, GPT-OSS for 24 GB+, Qwen 3.8 for 32 GB+

llama.cpp vs Other Local Engines

1.0 does not change what llama.cpp is good at, but it does make it a safer base to build on. Here is how it sits next to the usual alternatives.

Engine Best for Model format Hardware Stability promise
llama.cpp 1.0 Full control, offload, any hardware GGUF CPU, NVIDIA, AMD, Apple, Intel, Qualcomm, more SemVer from 1.0.0
Llama app Easiest llama.cpp on Mac/Windows GGUF Mac, Windows 11 Follows llama.cpp
Ollama Simple CLI, big model library GGUF, MLX on Mac NVIDIA, AMD, Apple, CPU Own app releases
LM Studio Polished desktop GUI GGUF, MLX Windows, Mac, Linux Own app releases
vLLM High-throughput serving for many users Safetensors, some quant formats Datacentre GPUs mainly Own releases

For a deeper speed and hardware breakdown, read vLLM vs llama.cpp vs Ollama. If you are choosing FP4 files for an RTX 50 card, NVFP4 vs MXFP4 in llama.cpp is the companion piece.

Troubleshooting

Problem Likely cause Fix
Compile error: undeclared function after upgrading You call one of the 35 removed deprecated functions Replace it with the newer API, or pin your last b-build until you can
“unknown argument” for a defrag option The defrag-threshold option was removed Delete that flag from your script
Client cannot connect to the server Port mismatch (9931 in docs vs 8080 in older guides) Start with an explicit --port and use the same port in the client
Browser UI blocked from another site or device New CORS and DNS-rebinding protections Bind with --host 0.0.0.0 only on a trusted network and connect by IP, not a custom hostname
Private Hugging Face model fails to download through a mirror HF_TOKEN now only goes to huggingface.co hosts Download from huggingface.co directly, or pass the file with -m
Windows CUDA zip: “cudart64 not found” Missing CUDA runtime DLL zip Download the matching cudart zip from the same release into the same folder
Out of memory with the MoE cache on --moe-cache-mib set too high for leftover VRAM Lower the cache, raise -ncmoe, or see the CUDA out of memory fix

My Take

This is the most important “boring” release in local AI this year. Every tool I write about, from llama-modchip to ComfyUI-GGUF, sits somewhere downstream of ggml, and they have all lived with silent API churn.

A real version number fixes the trust problem. App makers can now pin 1.x and know a weekend update will not break their users, which should mean fewer “works on build X, broken on build Y” reports.

The features are a bonus. The FP8 cache and the MoE expert cache are exactly what people with one 16-24 GB card and lots of RAM need for 100B+ MoE models. I would still measure quality on your own prompts before trusting FP8 for long agent runs.

The Llama app is the quiet headline for beginners. A 1 MB official app with an OpenAI and Anthropic-compatible API on localhost gives Ollama and LM Studio a serious, first-party rival.

FAQ

What is llama.cpp 1.0?

It is the first stable release of llama.cpp and ggml, published 13 November 2026. It brings semantic versioning, so breaking API changes now only come with a new major version.

Do I need to re-download or convert my GGUF models?

No. Version 1.0 is about the code API, not the file format. Your existing GGUF files keep working.

Is llama.cpp free?

Yes. It is open source under the MIT licence, and the Llama desktop app is free with no API keys or usage bills.

How do I install llama.cpp 1.0 on Windows?

Run irm https://llama.app/install.ps1 | iex in PowerShell, use winget install llama.cpp, or download the CUDA, Vulkan or CPU zip from GitHub Releases.

Will Ollama and LM Studio get faster because of 1.0?

Not automatically. They update on their own schedules, and neither has announced a 1.0-based release yet. Some 1.0 features may reach them later.

What is the FP8 KV cache?

It stores the attention cache in 8-bit floats (f8_e4m3) instead of 16-bit, roughly halving cache memory so you can fit longer contexts. Turn it on with -ctk f8_e4m3 -ctv f8_e4m3.

What is the difference between v and b releases?

Tags starting with v (like v1.0.0) are stable releases. Tags starting with b (like b12207) are nightly builds with the newest changes.

Does llama.cpp 1.0 work on AMD and Intel GPUs?

Yes. It supports AMD through HIP/ROCm and Vulkan, Intel through SYCL, Vulkan and OpenVINO, plus Apple Metal, Qualcomm and many others.

Sources

  • ggml-org on Hugging Face, “llama.cpp v1.0.0” (13 Nov 2026): huggingface.co/blog/ggml-org/llama-cpp-v1
  • llama.cpp README, install docs, build docs and llama-server README: github.com/ggml-org/llama.cpp
  • llama.cpp GitHub Releases (build numbering and assets): github.com/ggml-org/llama.cpp/releases
  • Llama desktop app: llama.app
  • Unite.AI, “Llama.cpp V1.0.0 Sets API Stability Rules for Local AI Tools” (Nov 2026)
  • Tbreak, “llama.cpp 1.0 reaches stable release for local AI” (Nov 2026)
  • DEV Community, “llama.cpp Just Hit 1.0: Local AI Apps Finally Have a Stable Foundation” (Nov 2026)
Free weekly email

Get new AI guides every week

One short weekly email with our newest local AI, ComfyUI and AI tool guides. No spam, no pop-ups, just the good stuff.

Free. Unsubscribe anytime in one click. We only use your email to send this newsletter. See our privacy policy.

Woman at a home PC desk with a glowing GPU holding a phone with a LLAMA.CPP card, hook llama.cpp 1.0 is finally here