# LocalAI v4.9.0
- Product: LocalAI (https://whatsnew.fyi/product/localai)
- Vendor: LocalAI
- Date: 2026-08-20
- Version: v4.9.0
- Original notes: https://github.com/mudler/LocalAI/releases/tag/v4.9.0
- Permalink: https://whatsnew.fyi/product/localai/releases/v4.9.0
What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog.
Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'.
---
- **security** — Authentication is now deny-by-default; every HTTP route requires credentials unless explicitly listed in a public registry
- **added** — Chat context compression, opt-in per model, compresses older complete turns through a LocalAI model before inference while preserving system prompts and newest messages
- **changed** — Models and backends pages consolidated; /app/models now owns Explore and Installed views, /app/backends owns Catalog and Installed views
- **added** — MiniMax-H3 video generation through vllm-cpp with joint video and audio rendering, including real AAC audio track
- **added** — Qwen3-TTS text-to-speech on llama.cpp across full accelerator matrix (CUDA, ROCm, SYCL, Vulkan, Metal, L4T)
- **added** — KNN as a first-class router using similarity-weighted voting over persisted corpus of labelled prompts
- **added** — Global admission control and live backend traces showing in-flight backend operations with UI links to logs
- **added** — Reversible PII pseudonyms creating request-scoped deterministic pseudonyms that are restored if backend echoes them
- **added** — Parallel Hugging Face downloads supporting up to N whole-file transfers simultaneously
- **changed** — Cold model loads use durable jobs; per-model advisory lock no longer spans multi-GB transfers
- **changed** — vllm-cpp CUDA builds expanded from one or two architectures to eight on amd64 and five on arm64, including A100, L4, 4090, H100/H200, B200, Jetson Orin and Jetson Thor
- **added** — Single shared WebRTC UDP port for Realtime
- **changed** — Metal is now enabled in macOS Stable Diffusion and Parakeet builds
- **added** — Backend crash diagnostics at default log level
- **added** — Portuguese (Brazil) and Indonesian UI translations
#### 🎉 LocalAI 4.9.0 Release! 🚀
LocalAI 4.9.0 is out!
Thirteen days and 146 pull requests, spent on the parts of LocalAI you touch every day rather than on new engines. Authentication is now deny-by-default, chat gained end-to-end context compression, models and backends each have one canonical page instead of three, and `vllm-cpp` grew a video modality serving MiniMax-H3 with a real audio track.
**Highlights:**
- 🔐 **Authentication is deny-by-default** - every HTTP route requires credentials unless it appears in an explicit public registry. This closes a class of bypass in which unprefixed aliases such as `/moderations`, `/models`, `/backends` and `/mcp/chat/completions` fell outside the old protected-prefix list. Reported by [Naor Yaacov](https://www.linkedin.com/in/naor-yaacov/).
- 🗜️ **Chat context compression** - opt-in per model, older complete turns are compressed through a LocalAI model before inference, preserving system prompts, the newest messages and whole tool-call units. Ratio and duration come back as response metadata and metrics.
- 🖥️ **One page per resource** - `/app/models` now owns Explore and Installed, `/app/backends` owns Catalog and Installed, and the nested Host view is gone. Old `/app/manage` bookmarks still work.
- 🎬 **MiniMax-H3 video generation** - `vllm-cpp` opens a second engine handle for the H3 checkpoint set and renders video and audio jointly, so the MP4 arrives with a real AAC track. Ask for speech in the prompt and the model lip-syncs it.
- 🗣️ **Qwen3-TTS on llama.cpp** - text-to-speech on the full accelerator matrix already shipped for text generation (CUDA, ROCm, SYCL, Vulkan, Metal, L4T), using upstream's own GGUF conversion.
- 🧭 **KNN as a first-class router** - similarity-weighted voting over a curated, persisted corpus of labelled prompts. No classifier model, and a prompt unlike anything labelled is treated as undecidable rather than guessed.
- 📊 **Global admission control and live backend traces** - process-wide HTTP admission bounds, in-flight backend operations are represented while they run, and the UI links straight to their logs.
- 🕵️ **Reversible PII pseudonyms** - masked values become request-scoped deterministic pseudonyms (`EMAIL_001`) and are restored if the backend echoes them, across JSON and SSE tokens split over writes.
- 📦 **Parallel Hugging Face downloads** - snapshot materialization runs up to N whole-file transfers at once, so a repository split into many shards stops spending its wall clock in per-file latency.
- 🖧 **Cold model loads are durable jobs** - the per-model advisory lock no longer spans a multi-GB transfer, which had made a 35.7 GB load look permanently broken from the operator's seat while staging progressed normally underneath.
- 🎮 **vllm-cpp covers the cards you own** - CUDA builds went from one or two architectures to eight on amd64 and five on arm64, picking up A100, L4, 4090, H100/H200, B200, Jetson Orin and Jetson Thor.
Plus a single shared WebRTC UDP port for Realtime, Metal actually enabled in the macOS Stable Diffusion and Parakeet builds, backend crash diagnostics at the default log level, and Portuguese (Brazil) and Indonesian UI translations.
Models and backends each get one canonical page, with Explore and Installed as views rather than separate destinations.
---
##### 📊 This release in numbers
| | |
|---|---|
| Pull requests merged | **146** |
| Commits | 148 |
| Files changed | 420 (**+27,788** / -4,670) |
| Development window | 13 days (2026-08-07 to 2026-08-20) |
| Human contributors | 10, of whom **3 first-time** |
|
_[Truncated at 4000 characters — full notes: https://github.com/mudler/LocalAI/releases/tag/v4.9.0]_