Released November 13, 2026, llama.cpp v1.0.0 is the first semver-governed stable release: breaking public C API changes now require a major version. GitHub marks the tag Latest. The release notes describe a cleanup and compatibility release with API removals, new caches, and model support.
v1.0 Is a Version Promise, Not a Speed Boost
Per the release notes' API-changes section, the documented compatibility promise covers the public C API in llama.h; treat CLI flags, server routes, and nightly behavior as still evolving. Use the v1.0.0 tag for reproducible builds and per-commit nightlies (the release page lists nightly b12359 alongside v1.0.0) only when you need newer fixes.
"does that mean they're going to stabilize cli parameters instead of changing them every release to the point that no app can actually rely on upstream?" — u/halvacoffee on r/LocalLLaMA
Upgrade First: 4 Checks for Older Scripts and Integrations
These compatibility changes most often affect older setups. Grep first:
grep -rn "llama_set_warmup\|clip\.h\|--mmap\|--no-mmap\|--defrag-thold\|:8080\|localhost:8080" .
Check 1: removed C functions — update bindings
Per the release notes, v1.0 removes 35 deprecated functions from llama.h (including llama_set_warmup) and separately removes the defrag_thold field and --defrag-thold option. It renames one symbol (llama_set_embd_state_src to llama_set_ctx_state_src) and promotes the NextN API into llama.h. The full removal list is in the release changelog linked above.
Check 2: server port 8080 → 9931 — update URLs
llama-server now defaults to http://127.0.0.1:9931; older examples assume 8080, as documented in the Axiomi setup guide. Update health checks and editor base URLs, or pass --port 8080 to keep the old mapping.
Check 3: --mmap rejected — switch to -lm load modes
If your build rejects --mmap with error: invalid argument: --mmap, use the documented -lm, --load-mode replacement (auto, none, mmap, mlock, mmap+mlock, dio). Start with -lm auto, then confirm behavior with llama-cli --help and a representative load test.
Check 4: clip.h gone — migrate vision code to mtmd
Vision integrations on clip.h must move to consolidated mtmd, which shares compute buffers across subcontexts per the release notes. See the release multi-modality section for per-model notes before upgrading vision pipelines.
What's Actually New in llama.cpp v1.0
Five additions are most relevant for local runs, per the release notes.
| Feature | What it does | Who cares |
|---|---|---|
FP8 KV cache (-ctk/-ctv f8_e4m3) | Shrinks KV-cache memory vs f16 for long contexts | Long-context chat and RAG on tight VRAM |
MoE expert cache (moe_cache_size, moe_cache_cpu_share) | Caches experts with configurable CPU participation | MoE models spilling beyond VRAM |
OpenAI-compatible /v1/audio/speech + /tts temperature, drama-3 TTS | Adds server-side speech generation | Local voice apps avoiding cloud TTS |
Server hardening (opt-in --allow-unauthenticated-tools, --media-allow-private-urls; CORS, DNS-rebinding, SSRF, MCP-cancel fixes) | Addresses several localhost-exposure and tool-execution issues | Anyone binding beyond 127.0.0.1 |
New model support (Kimi-K3.1-Pro, Ripple-65B-Preview dense 65B, xing4_0, vision additions) | Widens GGUF coverage | Users tracking those releases |
Install to OpenAI-Compatible Server
This sequence uses the new defaults (port 9931, llama-cli / llama-server, -hf downloads) from the official install docs and the Axiomi setup guide.
1. Install:
curl -LsSf https://llama.app/install.sh | sh
Or use a package manager or a prebuilt ZIP from the releases page. Verify with llama-cli --version. For unsupported hardware, custom patches, or unmerged fixes, build from source instead.
2. Chat in the terminal:
llama-cli -hf ggml-org/Qwen3.5-0.8B-GGUF -c 8192
Per the Axiomi guide, -hf caches from Hugging Face and picks Q4_K_M when no :quant suffix is given, and the default --fit on adjusts unset values to fit device memory.
3. Serve a local API:
llama-server -hf ggml-org/Qwen3.5-0.8B-GGUF -c 8192
# open http://127.0.0.1:9931
Routes include /v1/chat/completions, /v1/responses, /v1/embeddings, /v1/messages, and /v1/audio/speech (Axiomi route list). Smoke test:
curl http://localhost:9931/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"messages":[{"role":"user","content":"Explain GGUF in one sentence."}]}'
The same guide's Python example uses base_url="http://localhost:9931/v1" with api_key="no-key" for local single-model serving. Keep 127.0.0.1 for local use.
v1.0 vs Nightly vs Wrappers vs Hosted API: Which to Pick
| Option | Pick it when | Watch out |
|---|---|---|
Pin v1.0.0 | Shipping an app or tutorial, need reproducible builds | Misses fixes merged after Nov 13 |
Track nightly (b12359+) | Need newest model support or backend fix | Flags and behavior can still shift |
| Ollama / LM Studio | Want a library or GUI with zero flags | Generally less direct control over layers, cache, and server flags |
| Hosted API | Need elastic serving or no local VRAM ceiling | As a rule of thumb: per-token cost; data leaves the machine |
FAQ
Is v1.0 stable, and will my existing setup still work?
The public C API carries the stability promise; CLI flags, server routes, and nightlies do not. Search for llama_set_warmup, clip.h, --mmap, --defrag-thold, and hard-coded 8080 before upgrading.
How much memory does an 8B model need?
Tech Insider's size table lists ~4.9 GB for Q4_K_M 8B vs 32.1 GB unquantized, before context and runtime. As a rule of thumb, measure your own box with llama-bench since tiny-model CPU numbers do not transfer.
Pin v1.0 for Anything You Ship
Pin the tag in CI, keep one machine on nightlies, and re-test wrappers against the pinned server before upgrading them.