Independent · Source-cited · No sponsored rankingsSources linked in every article
AIToolRanked
AI News · 5 min read

llama.cpp 1.0.0 ties a major bump to an API break

On November 13, 2026, llama.cpp and ggml shipped v1.0.0. A break in the public C API is now a major bump. FP8 KV caches and a host MoE cache shipped too.

RA
· Founder, AIToolRanked
An open metal chassis filled with a grid of amber lights beside a wooden tray of copper blocks on a workbench
On this page

What 1.0.0 changes

On November 13, 2026, the llama.cpp team published llama.cpp v1.0.0 ↗. The project is 3.5 years old. The libraries are now v1.0.0. From this release, an API or ABI incompatibility is a major-version bump.

The picture above is ours.

The version rules on that post:

ChangeBump
Breaking change to the public C API in ./includeMAJOR
Backward-compatible feature, backend update, model support, or API additionMINOR
Bug fix with no API changePATCH

llama.cpp v1.0.0 is libllama, with public headers in llama.cpp/include/. ggml v1.0.0 is libggml, with public headers in ggml/include/. The blog says llama.cpp supports more than 150 architecture variants and all mainstream speculative decoding methods.

The llama.cpp release ↗ was published at 2026-11-13T10:20:19Z. The ggml release ↗ was published at 2026-11-13T08:34:21Z, and its overview says 1.0.0 prunes the deprecated public API and the legacy DIAG_MASK ops, and adds YaRN truncation plus FP8 support. The llama.cpp assets list nightly build b12359.

What left the public header

The llama.cpp notes remove llama_set_warmup, 35 deprecated functions, defrag_thold, and --defrag-thold. They promote the NextN speculative API from llama-ext.h into llama.h, and rename llama_set_embd_state_src to llama_set_ctx_state_src.

The notes add Kimi-K3.1-Pro, Ripple-65B-Preview, and xing4_0, plus drama-3 text-to-speech and vision for MageVL-Cowork and Kimi-K3.1. The Kimi weights are a separate release, covered in Kimi K3.1 Pro open weights.

Two changes matter when the model is larger than the GPU. OCP FP8 KV caches use -ctk and -ctv f8_e4m3, with optional static per-tensor scales. A host-memory MoE expert cache keeps a configurable CPU share for misses, through moe_cache_size and moe_cache_cpu_share. External PLE shards load with --shard and --ple.

What llama-server hardens

The server section fixes SSRF, CORS handling, DNS rebinding, and cancellation of MCP tool calls when the client disconnects or the call times out. It also restricts HF_TOKEN to huggingface.co hosts. Two new flags widen access and are opt-in: --allow-unauthenticated-tools and --media-allow-private-urls. Leave both off unless you intend that wider access.

The same release adds an OpenAI-compatible /v1/audio/speech endpoint and a redesigned web UI with named chat groups and a markdown editor for long messages.

Who has to read the notes

You meet this release when an app ships a build on 1.0.0, or when you compile against llama.h. Adrian Castellar ↗ wrote "1.0 removes 35 deprecated functions from llama.h, so read the notes before you update." That count is the release note. Ollama and LM Studio are downstream. This tag does not say what their current builds do.

Choosing a model, rather than a header, starts at local LLMs on phones and laptops and the open-source LLM comparison. Inkling 2 Small still has a 500GB VRAM floor on its model card. Llama 4 is a model family. This version number is the runtime under files like those.

What people are saying

Reddit was not reachable for this story.

Our take

Read the header diff, then update a binding. Tanish asked whether 1.0 is a stable C API promise. The Hugging Face post answers with a rule. A break to the public C API in ./include is a major bump. A minor version can add a feature, a backend, or a model without that break. A patch is a bug fix. The 35 removed functions, llama_set_warmup, and the defrag threshold are the break inside this major. The NextN API now lives in llama.h under that same tag. Bindings that called the old names have a list to chase once, and the version number is how you see the next chase coming.

The new caches are why the binary matters once an app ships it. Daniel Han, at Unsloth, says a large MoE that does not fit in VRAM can still be fast. The notes describe the mechanism: FP8 KV caches and a host-memory expert cache with a CPU share. They publish no speed table. Test the flags on your own model.

If you only chat in an app, wait for that app. Pedro Cuenca, at Hugging Face, wrote that it works everywhere. That is the portability pitch behind the version rule. It is the project's claim about the library, and each app still ships on its own schedule.

If llama-server is reachable beyond your machine, take the fixes and leave the new opt-ins off. SSRF, CORS, DNS rebinding, and MCP cancellation on disconnect are the hardening. --allow-unauthenticated-tools and --media-allow-private-urls widen access on purpose. The chat groups and the markdown editor are what a local user will notice. The header diff is what a binding has to survive.

More from the news desk · About Rai Ansar