llama.cpp v1.0 (2026): what changed, how to install it, and what the stable release promises

Rama Adi
Written by

Rama Adi

Katelin Teen
Reviewed by

Katelin Teen

Last edited November 14, 2026

Expert Verified
Hand-drawn illustration of a developer at a laptop next to a friendly llama on a bold orange shape
TL;DR

llama.cpp v1.0.0 shipped on November 13, 2026, and the headline is a promise, not a speed jump: a breaking change to the public C API now means a major version bump. That matters most if you build on libllama. Server users will feel security first: llama-server now refuses to expose tools on a network address without an API key. Install it with one line from llama.app, or use the new 1 MB Llama app. Want AI on your support queue instead? eesel runs it on hosted models, and the eesel CLI lets a coding agent upload help articles and test answers first.

What is llama.cpp?

llama.cpp is an open-source engine that runs large language models and vision models on your own hardware, written in plain C/C++ with no dependencies. The README describes the goal as LLM inference "with minimal setup and state-of-the-art performance on a wide range of hardware", locally and in the cloud.

The llama.cpp v1.0.0 release page on GitHub, published November 13, 2026, as taken from GitHub
The llama.cpp v1.0.0 release page on GitHub, published November 13, 2026, as taken from GitHub

A few numbers give the scale. The GitHub repo sits at 135,055 stars and 25,608 forks under the MIT license, it was created on March 10, 2023, and the v1.0 announcement says it now supports more than 150 model architecture variants. The project is run by ggml-org, the team led by Georgi Gerganov that sits inside Hugging Face.

I build integrations and APIs for eesel's product, so I care less about the launch banner and more about what a version number does to the code that depends on it. That's the lens for this whole post. I read the release notes, the versioning policy and the pull requests behind the changes; I didn't benchmark it on my own machine, so speed claims below come from the maintainers' own numbers.

The core engine underneath is ggml, a tensor library with backends for nearly every chip you can name:

BackendRuns on
MetalApple Silicon
CUDANVIDIA GPUs
HIPAMD GPUs
VulkanMost GPUs
SYCLIntel GPUs
OpenCLQualcomm Adreno GPUs
HexagonSnapdragon
CANNHuawei Ascend NPUs
WebGPUBrowsers and any WebGPU device
CPU (AVX, NEON, RVV)x86, Arm and RISC-V

That reach is why so many local AI tools sit on top of it. If you've used a desktop chat app for open models, there's a good chance llama.cpp was doing the work. It's also why open-weight models like Gemma 4 and Qwen3.8-Flash-Next usually ship GGUF files, the llama.cpp model format, on day one.

What does the v1.0 label actually promise?

It promises stable boundaries, not new features. In the announcement on Hugging Face, the team says both llama.cpp and ggml "will reflect API and ABI incompatibilities with major-version bumps." The rules now apply to every ggml-org project:

Version bumpWhen it happens
Major (2.0.0)Breaking change to the public C API in ./include
Minor (1.1.0)Backward-compatible feature, backend update, new model support or API addition
Patch (1.0.1)Bug fix with no API change

Here's the part most coverage skips: the promise covers the public C headers, libllama and libggml. It says nothing about llama-server command-line flags, the web UI, or the desktop app. That distinction decides whether v1.0 changes anything for you.

Infographic showing three stacked layers, the Llama app, llama cli and llama serve, and libllama plus libggml, with only the bottom layer covered by the v1.0 semver promise
Infographic showing three stacked layers, the Llama app, llama cli and llama serve, and libllama plus libggml, with only the bottom layer covered by the v1.0 semver promise

If you embed llama.cpp in an app, this is the release you've wanted for three years. Packagers wanted it too. In the versioning discussion, a commenter packaging it for Debian wrote that semantic versioning will "allow us in Debian to ship it as a library in public search paths," because breaking changes can now be signalled with library version bumps. That's how llama.cpp stops being something you vendor into your repo and starts being a system library.

If you only run models through a server or an app, v1.0 is mostly a cleanup milestone. Useful, but not a reason to rebuild your stack.

Nightly builds keep going

One detail trips people up. llama.cpp still publishes nightly builds tagged by commit count, like b12387, and it published five of them on November 14 alone, per the releases page. The v1.0.0 tag is a separate, slower track. The versioning notes say a release tag is only cut when llama.cpp's internal copy of ggml matches the released ggml, so anything built from the tag can safely link against a system-wide ggml.

Infographic contrasting frequent nightly builds ending at b12387 with sparse stable releases v0.8.0, v0.9.0 and v1.0.0, with arrows showing llama.app and Winget ship nightly builds while Homebrew builds from the release tag
Infographic contrasting frequent nightly builds ending at b12387 with sparse stable releases v0.8.0, v0.9.0 and v1.0.0, with arrows showing llama.app and Winget ship nightly builds while Homebrew builds from the release tag

Which track you're on depends on how you installed it. According to those same notes, the llama.app installer and Winget publish the nightly builds, not the official releases (marked as a TODO to switch), while the Homebrew formula now builds from the release tag. So "I'm on v1.0" is only true if you checked.

What changed in llama.cpp v1.0.0?

The release notes cover hundreds of commits since v0.9.0. These are the changes worth knowing, grouped by who feels them.

AreaChangeWho it affects
C APIRemoves llama_set_warmup, 35 deprecated functions and --defrag-thold; moves the NextN (speculative decoding) API from llama-ext.h into llama.hAnyone linking libllama
MemoryFP8 KV caches via -ctk/-ctv f8_e4m3Long-context users short on VRAM
MemoryHost-memory MoE expert cache with a configurable CPU shareBig mixture-of-experts models on small GPUs
ModelsKimi-K3.1-Pro, Ripple-65B-Preview, xing4_0, drama-3 TTS; Kimi-K3.1 and MageVL-Cowork visionAnyone trying new open models
Server/v1/audio/speech endpoint; security fixes for CORS, DNS rebinding and SSRFAnyone running llama-server
Web UIChat groups, live markdown editor, phone layout, PDF thumbnailsPeople using the built-in chat

New models on day one

The new architectures line up with recent launches I've covered: Kimi-K3.1-Pro, which the notes describe as K3 with its full-attention layers swapped for DSA, and Ripple-65B, added as a new dense 65B architecture. If you've read my Kimi K3 review or the Ripple-65B review, these are the same models, now runnable locally from GGUF files.

FP8 KV caches

The KV cache is the memory a model uses to remember the conversation so far, and on long contexts it can rival the model itself. PR #28392 adds OCP FP8 caches with optional per-tensor scales. Not everyone knows which 8-bit option to pick yet:

Hacker News

"Sounds like now, 8 bit KV cache is ok for coding, but the question is which one? I see f8_e4m3, q8_0. Would be great to get more info about that."

My read: the release notes don't answer that, so test both on a long session of your own work before switching a coding setup.

The MoE expert cache

This is the change I'd watch most. Mixture-of-experts models only use a slice of their weights per token, so PR #30966 keeps the hot experts in GPU memory and can run cache misses on the CPU. The author's tuning run on Qwen3.8-Flash-Next shows why the CPU share matters: with a 6,464 MiB cache, decode went from 24.2 tokens a second with no CPU share to 47.6 with a 0.95 share. With a bigger 19,392 MiB cache, the numbers flip and a high CPU share is slower. The PR ships a tuning script, scripts/moe-cache-tune.py, to find your own sweet spot rather than guessing.

That's the same trick behind single-GPU giants like Edge0-145B, now built into the main engine.

What changed in llama-server security?

This is the change most likely to break a working setup on upgrade day. PR #32113 means that turning on tools or MCP with a non-loopback --host and no API key is now refused with an error. You have to add --api-key, or opt in explicitly with --allow-unauthenticated-tools.

Infographic comparing llama-server before v1.0, where host 0.0.0.0 with tools on and no API key starts, with v1.0, where the same setup is refused unless you add an API key or allow unauthenticated tools
Infographic comparing llama-server before v1.0, where host 0.0.0.0 with tools on and no API key starts, with v1.0, where the same setup is refused unless you add an API key or allow unauthenticated tools

The maintainer who wrote it was candid about the tradeoff in the PR description:

"None of those are actually vulnerability, but since people nitpick this too much, we now forced to hurt the UX a bit"

I'd still take the stricter default. Tools in llama-server can read files and run shell commands, and the built-in set in the web UI includes read_file, exec_shell_command and write_file. Leaving that open on a LAN without a key is the kind of setup that's fine until someone else on the Wi-Fi finds it. The same release also restricts the HF_TOKEN to huggingface.co hosts, fixes --cors-origins handling and DNS rebinding, adds a --media-allow-private-urls opt-in, and cancels MCP tool calls when a client disconnects.

The built-in llama-server web UI with the tools menu open, showing read_file, exec_shell_command and write_file enabled, as taken from GitHub
The built-in llama-server web UI with the tools menu open, showing read_file, exec_shell_command and write_file enabled, as taken from GitHub

If you're wiring a local model into anything that can take actions, my notes on MCP servers for AI agents and security in Claude Code cover the same principle: tool access is the real attack surface, not the model.

Does llama.cpp v1.0 change anything for you?

Pick how you use it and you'll get the short version.

How do you use llama.cpp?

Almost nothing to do. The Llama app and the llama.app installer ship nightly builds, so you already get new models and fixes as they land. You'll notice the redesigned chat UI: named chat groups, a live markdown editor and a better phone layout.
Check your start command. If you run with a non-loopback --host and tools or MCP on, v1.0 refuses to start without --api-key. Add a key rather than --allow-unauthenticated-tools. Also re-check any --cors-origins value, since the port is now validated strictly.
This is your release. Remove calls to llama_set_warmup and 35 deprecated functions, rename llama_set_embd_state_src to llama_set_ctx_state_src, and pin to v1.x. From here, a breaking C API change means a 2.0.
Build from the tag. Release tags are only cut when the bundled ggml matches the released ggml, so you can link against a system-wide libggml and use library version bumps to signal breaks.

How do you install and run llama.cpp?

There are three routes, and the new one is the friendliest. All the commands below come from the README and llama.app.

1. The Llama desktop app (Mac and Windows). The same team now ships Llama, a menu bar app on Mac and a system tray app on Windows 11. The site lists it as a 1 MB download, 4 MB installed, free, open source and offline-capable. It checks your hardware and picks quantization, context size and speculative decoding for each model, and models unload after five minutes idle.

The llama.app homepage introducing the Llama desktop app by the llama.cpp team and Hugging Face, as taken from llama.app
The llama.app homepage introducing the Llama desktop app by the llama.cpp team and Hugging Face, as taken from llama.app

It suggests a starting model by memory: Gemma 4 for a 16 GB Mac, GPT-OSS at 24 GB, and Qwen 3.8 at 32 GB. On Mac you can also install it with brew install --cask llama-app.

2. The command line (any OS). One line installs the unified llama binary:

Bash
curl -LsSf https://llama.app/install.sh | sh

On Windows PowerShell, it's irm https://llama.app/install.ps1 | iex. Then download a model from Hugging Face and chat, or start an OpenAI-compatible server:

Bash
llama cli -hf ggml-org/Qwen3.5-0.8B-GGUF
llama serve -hf ggml-org/Qwen3.5-0.8B-GGUF
A llama cli session loading a Qwen 3.6 27B model with text, vision and video, then reading an image and a file before answering, as taken from GitHub
A llama cli session loading a Qwen 3.6 27B model with text, vision and video, then reading an image and a file before answering, as taken from GitHub

3. Package managers or source. The v1.0 announcement lists Docker, Debian, Homebrew, conda-forge, MacPorts, Winget and an XCFramework for iOS and macOS, plus prebuilt binaries for Linux, macOS, Windows, Android and iOS. Building from source is in the build guide.

Pointing coding agents at it

The Llama app serves its API on localhost:9931/v1, and the site says it speaks both OpenAI- and Anthropic-compatible endpoints, with streaming, tool calling, structured output and vision. That means tools like Cursor, OpenClaw or Claude Code can point at a local model by changing the base URL, the same pattern I described in my Claude Code environment variables guide. I haven't run that path myself on v1.0, so treat it as the documented route.

A quick reality check on quality: a small local model won't match a hosted frontier model on hard coding work. My comparisons of DeepSeek V4 Flash and Qwen 3.8 Max are a better guide to what each tier can do.

What's still missing?

Three gaps stand out from the release and the reactions to it.

  • No Linux desktop app. Llama is Mac and Windows only; Linux users get the command line. One commenter on the announcement asked about exactly that.
  • Prompt processing on huge inputs. Another commenter on the same post said llama.cpp "still needs improvement on huge prompt processing", meaning the prefill step before the first token. The release has prefill work (an Intel Vulkan FlashAttention path, few-row CUDA matmuls), but no headline number to point to.
  • The installers aren't on v1.0 yet. As covered above, the llama.app installer and Winget still ship nightlies. That's fine for most users, but it means v1.0's stability promise reaches you only if you build from the tag or use Homebrew.

None of these are reasons to skip it. They're reasons to check which build you're on before you rely on the promise.

What does llama.cpp mean for support teams?

The appeal is obvious: customer data that never leaves your hardware, and no per-token bill. It's a concern I hear about in eesel's sales calls. One buyer at a Danish B2B telematics company had to clear a hard internal security review before any trial, and their first question was whether ticket data containing card numbers and passwords would stay in their environment.

A local model answers part of that. It doesn't answer the rest: which help articles the agent may use, when it hands a ticket to a person, how you'd know it's right before customers see it. Those are the questions behind most AI support security reviews I've seen, and the vendor security checklist and SOC 2 and GDPR guide cover them in detail.

That layer is the job of eesel's AI helpdesk teammate. It joins the queue you already run in Zendesk or Freshdesk, answers from your own knowledge, and gets simulated against past tickets before it goes live. smava, a Berlin loan-comparison company, uses it on 27,000 Zendesk tickets a month, with 15,300 draft replies prepared in German from 820 macros and help center articles. SE Ranking runs one eesel agent per product on Zendesk, with refunds and requests for a person handed to the team.

If you're weighing models for your own support content, my guides on connecting Claude to your helpdesk, AI agent handoffs and preventing AI hallucinations in support go further than a release note can.

Should you upgrade to llama.cpp v1.0?

Yes, if you link libllama: this is the first release with a written compatibility promise, so pin to v1.x and stop chasing breaking changes in nightly builds. Do the cleanup once and you're set.

Yes, carefully, if you run llama-server on a network: add an API key before you upgrade so the new tool check doesn't stop your service.

No action needed if you use a desktop app. You're likely already on a nightly build that includes everything in v1.0, and the new Hugging Face Llama app is the easiest way to try local models if you haven't. For hosted alternatives, my Hugging Face alternatives roundup and LLM tracking tools list are good next reads.

Try eesel for AI on your support queue

If you looked at llama.cpp because you want AI answering customers, eesel gets you there without picking a quantization or sizing a GPU. It's an AI helpdesk teammate that plugs into Zendesk, Freshdesk and other helpdesks, answers only from your help center and past tickets, and is tested on historical conversations before it touches a live one, the way smava runs it on 27,000 tickets a month. With the eesel CLI, your coding agent can upload exported help articles and macros, ask test questions and check the answers; connecting the helpdesk itself still needs someone with admin access. Try eesel free.

eesel's AI agent working Zendesk tickets, drafting and sending replies from the team's own help content

Frequently Asked Questions

What is llama.cpp?
llama.cpp is an open-source engine, written in plain C/C++ and released under the MIT license, that runs large language models and vision models on your own hardware, from a laptop CPU to multi-GPU servers. It is maintained by the ggml-org team at Hugging Face and supports more than 150 model architecture variants, including Gemma 4 and Qwen 3.8.
What changed in llama.cpp v1.0.0?
llama.cpp v1.0.0, released November 13, 2026, starts semantic versioning for the libllama and libggml C APIs, removes 35 deprecated functions, adds FP8 KV caches and a host-memory MoE expert cache, adds an OpenAI-compatible /v1/audio/speech endpoint, and tightens llama-server security. New models include Kimi-K3.1-Pro and Ripple-65B.
Is llama.cpp free?
Yes. llama.cpp, the ggml library and the Llama desktop app are free and open source under the MIT license, and local use has no token bill. You pay for hardware and power instead, which is the tradeoff I cover in my custom AI models guide.
How do I install llama.cpp?
On macOS or Linux, run curl -LsSf https://llama.app/install.sh | sh; on Windows, run irm https://llama.app/install.ps1 | iex. Homebrew, Winget, Docker, conda-forge and prebuilt binaries also work. Then llama cli -hf ggml-org/Qwen3.5-0.8B-GGUF downloads a model from Hugging Face and starts a chat.
Does llama.cpp v1.0 break my existing setup?
It can. If you link libllama directly, removed functions such as llama_set_warmup and the --defrag-thold option are gone. If you run llama-server on a network address with tools or MCP turned on and no API key, v1.0 refuses to start until you add --api-key or opt in with --allow-unauthenticated-tools. My MCP for customer support guide explains why tool access deserves that gate.
What is the difference between llama.cpp and the Llama app?
llama.cpp is the engine; Llama is a 1 MB desktop app for Mac and Windows from the same team that wraps it, picks model settings for your machine, and serves an OpenAI-compatible API on localhost:9931/v1. Tools like Claude Code or OpenClaw can point at that local endpoint.
Can llama.cpp run a customer support chatbot?
It can serve the model, but a support agent also needs your help center, past tickets, handoff rules and testing before it answers customers. That layer is what an AI helpdesk agent handles, and my guide on preventing AI hallucinations covers why grounding matters more than the model.
Is llama.cpp v1.0 the version I get from the installer?
Not always. The ggml-org versioning notes say the llama.app installer and Winget publish nightly builds (tagged like b12387), while the Homebrew formula builds from the release tag. Check with llama --version, and see my Hugging Face pricing post if you plan to host models instead.

Share this article