# LocalAI changelog > LocalAI release notes. - Vendor: LocalAI - Category: AI - License: MIT - Language: Go - Official site: https://localai.io/ - Tracked by: What's New (https://whatsnew.fyi/product/localai) - Harvested from: GitHub (mudler/LocalAI) - Entries below: 16 (newest first) 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'. ## Releases ### v4.11.0 - Date: 2026-10-02 - Version: v4.11.0 - Original notes: https://github.com/mudler/LocalAI/releases/tag/v4.11.0 - Permalink: https://whatsnew.fyi/product/localai/releases/v4.11.0 - **added** — Audio scenes that combine speech-to-text, speaker diarization, sound-event detection, and speaker identification - **added** — Studio diarization page to preview clean speaker intervals and register selected speakers by name - **added** — Model failover chains allowing local and remote targets behind one model name with retry and health tracking - **added** — Decision models capability through `/v1/systemone` endpoint for structured choice, score, and validation questions - **added** — Signed OCI galleries distributed as OCI artifacts with Sigstore policy verification and digest-bound caching - **added** — Kimodo text-to-animation via `POST /3d/animate` to generate skeletal motion from text prompts - **added** — Single-host operations page to inspect VRAM, RAM, CPU, model-disk usage, view logs, and stop models without distributed mode - **added** — Speaker identification from voice registry through compatible `speaker_model` configuration - **added** — PDF attachment extraction in chat - **added** — New Italian Piper voices - **added** — NeMo diarization and ASR models - **added** — `GET /api/failover` endpoint and SSE event stream for failover health and target switch observation - **added** — Admin pin and unpin controls for failover targets - **changed** — Transcription segments and words now carry speaker labels - **changed** — Realtime sessions emit transcription-segment and sound-detection events - **changed** — Gallery sources now support `oci://host/repository:tag` references - **changed** — Improved hardware detection - **fixed** — Path-confinement issues in gallery and API behavior - **fixed** — Stricter credential checks in safer gallery and API behavior - **fixed** — Correct pre-stream error handling and preserved streamed response items #### 🎉 LocalAI 4.11.0 Release! 🚀




LocalAI 4.11.0 is out! This release makes LocalAI more useful for audio understanding, resilient model serving, structured decisions, and day-to-day operation. Audio scenes can now combine transcription, diarization, sound detection, and remembered speaker names. Ordered failover chains keep a public model available across local and remote targets, while new Studio and operations pages expose these capabilities without requiring distributed mode. The release also adds first-class decision models through `/v1/systemone`, signed OCI model galleries, and Kimodo text-to-animation. It includes 243 merged pull requests, 353 commits, 79 new gallery entries, focused fixes across APIs and backends, and broad backend-source updates. **Highlights:** - 🎙️ **Audio scenes and remembered speakers** - combine speech-to-text, speaker diarization, sound-event detection, and speaker identification. Studio can diarize a recording, preview clean intervals, and register selected speakers by name. - 🔀 **Model failover chains** - place local and remote targets behind one model name, retry before response commitment, observe health and target switches, and pin a target from the API, MCP tools, or the React UI. - 🧭 **Decision models** - advertise the `decisions` use case and answer structured choice, score, and `noul` questions through `/v1/systemone`, with validation and dedicated gallery models. - 📦 **Signed OCI galleries** - distribute complete model galleries as OCI artifacts, verify them with Sigstore policies, and use digest-bound last-known-good caches. - 🕺 **Kimodo text-to-animation** - generate skeletal motion from text through `POST /3d/animate`, preview it in Studio, and export binary glTF animation. - 🖥️ **Operate this machine** - inspect resources and locally loaded models, view logs, and stop models on a single LocalAI host without enabling distributed mode. - 🛡️ **Safer gallery and API behavior** - path-confinement fixes, stricter credential checks, correct pre-stream errors, preserved streamed Responses items, and more reliable model installation. Plus PDF attachment extraction in chat, deeper Hugging Face repository discovery, improved hardware detection, new Italian Piper voices, NeMo diarization and ASR models, and large model-gallery batches.

ui-diarization-speakers 📸 [ screenshot: diarize a recording and remember speakers by name ]
Studio turns anonymous speaker segments into reusable named speaker profiles.

--- ##### 📊 This release in numbers | | | |---|---| | Pull requests merged | **243** | | Commits | 353 | | Files changed | 623 (**+51,035** / -2,625) | | Development window | 15 days (2026-09-18 to 2026-10-02) | | Human contributors | 12, of whom **4 first-time** | | Gallery entries | 1,847 to **1,926** (+79) | Where the work landed: | Area | Change | |---|---| | `core/` | +23,883 / -807 across 350 files | | `backend/` | +12,437 / -186 across 119 files | | `gallery/` | +4,998 / -110 | | `pkg/` | +3,310 / -170 across 61 files | | `docs/` | +2,142 / -1,115 across 50 files | | `swagger/` | +2,254 / -100 | --- ##### 📌 TL;DR | Area | Summary | |------|---------| | 🎙️ **Audio scenes** | parakeet-cpp can combine ASR, diarization, and sound detection in one model. `POST /v1/audio/diarization` can optionally include text and versioned speaker profiles. Transcription segments and words can carry speaker labels, and realtime sessions emit transcription-segment and sound-detection events. | | 🗣️ **Remembered speakers** | Configure a compatible `speaker_model` to identify voic _[Truncated at 4000 characters — full notes: https://github.com/mudler/LocalAI/releases/tag/v4.11.0]_ ### v4.10.0 - Date: 2026-09-17 - Version: v4.10.0 - Original notes: https://github.com/mudler/LocalAI/releases/tag/v4.10.0 - Permalink: https://whatsnew.fyi/product/localai/releases/v4.10.0 - **added** — Fleet operations dashboard with real-time cluster overview, aggregate health bands, capacity gauges for VRAM/RAM/CPU/disk, running models tab showing replica placement across workers, bulk drain/resume/remove actions, and node inspector - **added** — Credentials file (credentials.yaml) for authenticating OCI registries, galleries, HTTP downloads and github: URIs with basic auth, bearer tokens and custom headers - **added** — local-ai benchmark CLI command to measure end-to-end latency and throughput against configured text models with min/mean/max latency reporting and completion tokens/sec metrics - **added** — vllm-cpp LoRA fusion at load time for lora_adapters and lora_scales consumed by the vllm-cpp video engine, fusing LoRA deltas into DiT weights at engine load - **added** — Environment variables per model through env: map in model config to inject variables into backend process environment - **added** — template.system_messages_after_first option to prevent crashes when agent frameworks append system instructions mid-conversation in Qwen3.x models - **added** — context_size field in /v1/models/capabilities endpoint for clients to read each model's effective context window - **added** — Focus mode toggle in chat settings - **added** — Face enrollment replay for the 1:N registry - **added** — ROCm build of stablediffusion-ggml - **added** — 140 new gallery entries bringing total to 1,847 - **changed** — Workers now report CPU telemetry (cpu_logical_cores, cpu_usage_percent, cpu_load_1) at registration and heartbeat - **changed** — Secrets in credentials.yaml are read at use time so rotated Kubernetes secret mounts take effect without restart - **changed** — OCI layer download resumption support added - **changed** — In-place editing of distributed scheduling rules enabled - **fixed** — ds4 backend CUDA support with kernel builds for target architecture, abandoned inference cancellation, generation boundary enforcement, and prefilled reasoning separation from content - **fixed** — enable_thinking=false is now honoured across every text backend - **fixed** — Apple M5 SIGSEGV at startup fixed by bumping go-m1cpu to v0.2.2 - **fixed** — Seven distributed mode stabilisation fixes across staging, liveness, virtual models and control-plane database - **security** — Four CVEs patched: ip-address 10.3.1 (CVE-2026-69192), containerd 1.7.32 and 1.7.33 (CVE-2026-46680, CVE-2026-53488), and react-router (GHSA-qwww-vcr4-c8h2) #### 🎉 LocalAI 4.10.0 Release! 🚀




LocalAI 4.10.0 is out! Twenty-eight days and 280 pull requests. The work landed on three fronts: operating a fleet, feeding it models from private sources, and fixing the backends you depend on. A fleet operations dashboard replaces the flat node list with cluster-wide health, capacity, running models, and bulk lifecycle actions. A credentials file lets one `credentials.yaml` authenticate OCI registries, galleries and direct downloads without scattering tokens across environment variables. And `local-ai benchmark` measures end-to-end latency and throughput from the CLI. The ds4 backend had four fixes that together make it reliable on CUDA: the kernels now build for the target architecture, abandoned inference is cancelled, generation boundaries are enforced, and prefilled reasoning is separated from content. Distributed mode gained seven stabilisation fixes across staging, liveness, virtual models and the control-plane database. Four CVEs were patched, `enable_thinking=false` is now honoured across every text backend, and Apple M5 no longer SIGSEGVs at startup. **Highlights:** - 📊 **Fleet operations dashboard** - a real-time cluster overview replacing the flat node list. Aggregate health bands, capacity gauges for VRAM/RAM/CPU/disk, a running-models tab showing replica placement across workers, bulk drain/resume/remove with bounded concurrency, and a slide-out node inspector. Workers now report CPU telemetry at registration and heartbeat. - 🔑 **Credentials file for private sources** - one `credentials.yaml` authenticates OCI registries, galleries, HTTP downloads and `github:` URIs. Supports basic auth, bearer tokens and custom headers, with secrets read at use time so rotated K8s secret mounts take effect without restart, and full masking in logs and error messages. - 📏 **`local-ai benchmark` CLI command** - measures end-to-end latency and throughput against configured text models. Reports min/mean/max latency and completion tokens/sec across warmup and measured runs, with table and JSON output, redirect blocking, and API-key redaction. - 🔧 **vllm-cpp LoRA fusion at load time** - `lora_adapters` and `lora_scales` are now consumed by the vllm-cpp video engine, fusing LoRA deltas into DiT weights at engine load. Works for both LTX2.5 and MiniMax-H3 through one generic path. - 🌍 **Environment variables per model** - an `env:` map in model config injects variables into the backend process environment, so `CUDA_VISIBLE_DEVICES` or `VLLM_CACHE_DIR` can be pinned per model without wrapping the backend in a script. - 💬 **`template.system_messages_after_first`** - agent frameworks that append system instructions mid-conversation no longer crash Qwen3.x models. Late system turns can be merged into the leading system message or forwarded as user turns. - 🧠 **`context_size` in `/v1/models/capabilities`** - clients can now read each model's effective context window to budget tokens and truncate prompts without probing the model config out-of-band. - 🛡️ **Four CVEs patched** - ip-address 10.3.1 (CVE-2026-69192), containerd 1.7.32 and 1.7.33 (CVE-2026-46680, CVE-2026-53488), and react-router (GHSA-qwww-vcr4-c8h2). - 🍎 **Apple M5 SIGSEGV fixed** - `go-m1cpu` bumped to v0.2.2, fixing a segmentation fault on Apple M5 hardware at startup. Plus a focus mode toggle in chat settings, face enrollment replay for the 1:N registry, a ROCm build of `stablediffusion-ggml`, in-place editing of distributed scheduling rules, OCI layer download resumption, and 140 new gallery entries. --- ##### 📊 This release in numbers | | | |---|---| | Pull requests merged | **280** | | Commits | 382 | | Files changed | 633 (**+46,550** / -3,316) | | Development window | 28 days (2026-08-20 to 2026-09-17) | | Hum _[Truncated at 4000 characters — full notes: https://github.com/mudler/LocalAI/releases/tag/v4.10.0]_ ### v4.9.0 - 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 - **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.

ui-models-explore
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]_ ### v4.8.2 - Date: 2026-08-07 - Version: v4.8.2 - Original notes: https://github.com/mudler/LocalAI/releases/tag/v4.8.2 - Permalink: https://whatsnew.fyi/product/localai/releases/v4.8.2 - **added** — Fall back to mirrors and a cached index when the primary gallery source fails - **added** — Default gallery to index.localai.io with GitHub as a mirror - **added** — Add the NVIDIA NeMo-Speech.cpp backend - **changed** — Update swagger - **fixed** — Remove unsupported cosign bundle flag from CI ##### What's Changed ###### 👒 Dependencies * chore(deps): bump actions/stale from 10.4.0 to 11.0.0 by @dependabot[bot] in https://github.com/mudler/LocalAI/pull/11395 * chore(deps): bump actions/checkout from 4 to 7 by @dependabot[bot] in https://github.com/mudler/LocalAI/pull/11396 ###### Other Changes * feat(gallery): fall back to mirrors and a cached index when the primary source fails by @localai-bot in https://github.com/mudler/LocalAI/pull/11389 * chore(model-gallery): :arrow_up: update checksum by @localai-bot in https://github.com/mudler/LocalAI/pull/11405 * docs: :arrow_up: update docs version mudler/LocalAI by @localai-bot in https://github.com/mudler/LocalAI/pull/11397 * feat(swagger): update swagger by @localai-bot in https://github.com/mudler/LocalAI/pull/11398 * feat(gallery): default to index.localai.io with GitHub as a mirror by @localai-bot in https://github.com/mudler/LocalAI/pull/11409 * feat(nemo-speech-cpp): add the NVIDIA NeMo-Speech.cpp backend by @localai-bot in https://github.com/mudler/LocalAI/pull/11406 * fix(ci): remove unsupported cosign bundle flag by @localai-bot in https://github.com/mudler/LocalAI/pull/11413 **Full Changelog**: https://github.com/mudler/LocalAI/compare/v4.8.1...v4.8.2 ### v4.8.1 - Date: 2026-08-06 - Version: v4.8.1 - Original notes: https://github.com/mudler/LocalAI/releases/tag/v4.8.1 - Permalink: https://whatsnew.fyi/product/localai/releases/v4.8.1 - **fixed** — Contain malformed GGUF metadata in VRAM handling - **fixed** — Mirror the vllm-cpp engine's ABI v10 so the backend loads again - **fixed** — Stop traces page crash when switching trace tabs in react-ui - **fixed** — Restore 3D Studio results and history in react-ui - **fixed** — Ignore a half-populated socket activation environment in CLI - **added** — Wire the full engine config surface through engine_args for vllm-cpp - **changed** — Update audio.cpp to 7efbb58def443722ea540d931dd3debee3e4d5e8 - **changed** — Update ik_llama.cpp to cf1aa57e1a0fabfd015831718fc99d1aec01ada5 - **changed** — Update stable-diffusion.cpp to c6beeef35526c6dc94b74a7fb69f9d2e6a2a7a12 - **changed** — Update CrispASR to 21901d3f7c23554f072964828363e49ddbc2dc68 - **changed** — Update ds4 to b0309611041655f4e45671cfd9c9886aff161406 ##### What's Changed ###### Other Changes * docs(blog): cover the terminal agent in the 4.8 post by @localai-bot in https://github.com/mudler/LocalAI/pull/11372 * fix(vram): contain malformed GGUF metadata by @richiejp in https://github.com/mudler/LocalAI/pull/11374 * docs: :arrow_up: update docs version mudler/LocalAI by @localai-bot in https://github.com/mudler/LocalAI/pull/11377 * chore: :arrow_up: Update 0xShug0/audio.cpp to `7efbb58def443722ea540d931dd3debee3e4d5e8` by @localai-bot in https://github.com/mudler/LocalAI/pull/11378 * chore: :arrow_up: Update ikawrakow/ik_llama.cpp to `cf1aa57e1a0fabfd015831718fc99d1aec01ada5` by @localai-bot in https://github.com/mudler/LocalAI/pull/11380 * chore: :arrow_up: Update leejet/stable-diffusion.cpp to `c6beeef35526c6dc94b74a7fb69f9d2e6a2a7a12` by @localai-bot in https://github.com/mudler/LocalAI/pull/11384 * chore: :arrow_up: Update CrispStrobe/CrispASR to `21901d3f7c23554f072964828363e49ddbc2dc68` by @localai-bot in https://github.com/mudler/LocalAI/pull/11383 * fix(vllm-cpp): mirror the engine's ABI v10 so the backend loads again by @localai-bot in https://github.com/mudler/LocalAI/pull/11386 * fix(react-ui): stop traces page crash when switching trace tabs by @nandanadileep in https://github.com/mudler/LocalAI/pull/11387 * chore: :arrow_up: Update antirez/ds4 to `b0309611041655f4e45671cfd9c9886aff161406` by @localai-bot in https://github.com/mudler/LocalAI/pull/11381 * chore(model-gallery): :arrow_up: update checksum by @localai-bot in https://github.com/mudler/LocalAI/pull/11382 * gallery: add Qwen3.5 9B HauhauCS variants by @localai-org-maint-bot in https://github.com/mudler/LocalAI/pull/11339 * gallery: add Qwen3.5 9B Defiant Fable variants by @localai-org-maint-bot in https://github.com/mudler/LocalAI/pull/11335 * feat(vllm-cpp): wire the full engine config surface through engine_args by @localai-bot in https://github.com/mudler/LocalAI/pull/11159 * fix(react-ui): restore 3D Studio results and history by @richiejp in https://github.com/mudler/LocalAI/pull/11393 * fix(cli): ignore a half-populated socket activation environment by @localai-bot in https://github.com/mudler/LocalAI/pull/11394 **Full Changelog**: https://github.com/mudler/LocalAI/compare/v4.8.0...v4.8.1 ### v4.8.0 - Date: 2026-08-05 - Version: v4.8.0 - Original notes: https://github.com/mudler/LocalAI/releases/tag/v4.8.0 - Permalink: https://whatsnew.fyi/product/localai/releases/v4.8.0 - **added** — vllm.cpp, a C++20 engine maintained by the LocalAI team implementing vLLM's V1 architecture with paged KV cache, continuous batching, prefix caching, scheduler and sampler, shipping as alpha development builds of the vllm-cpp backend - **added** — 3D generation as a new modality with Generate3D RPC, FLAG_3D capability, POST /v1/3d/generations endpoint, trellis2cpp image-to-3D backend, and UI page with native GLB viewer and print remeshing - **added** — audio.cpp backend serving six audio endpoints for speech, transcription, VAD, diarization, source separation and sound generation across many model families - **added** — Gallery entries with variants declaration to install the largest build that the host hardware can actually run - **added** — magpie-tts-cpp engine providing NVIDIA Magpie Multilingual TTS with 5 voices and 9+ languages - **added** — moss-tts-cpp engine providing 48 kHz stereo TTS with reference-audio voice cloning - **added** — bonsai backend serving 1-bit and ternary Bonsai quantizations of Qwen3 and Qwen3.6-27B - **added** — Valkey vector store - **added** — Systemd socket activation support - **added** — Persistent trace history - **added** — VRAM budgets to cap how much of a card LocalAI may use per node as a percentage or absolute amount - **added** — Activity page showing records of what was installed, failed or cancelled - **changed** — Web UI is now 3.48x smaller with gzip compression on the wire and immutable caching for hashed assets - **changed** — Trace poll endpoints are now paginated, reducing data from 21 MB to 7 KB - **changed** — Stacked operations bar in UI now collapses to one line - **changed** — Hugging Face artifact materialization now includes immutable snapshot resolution, authenticated downloads with progress, and staged artifacts that remote workers can bind to - **fixed** — Distributed mode reliability: reaper no longer deletes rows for backends that are alive and busy - **fixed** — Phantom replicas are cleaned up in distributed mode - **fixed** — in_flight counters no longer leak in distributed mode - **security** — Two security fixes - **changed** — Documentation overhauled with focus on onboarding #### 🎉 LocalAI 4.8.0 Release! 🚀




LocalAI 4.8.0 is out! Twenty-two days, 386 pull requests, and three new modalities. This release introduces **vllm.cpp**, a C++20 engine maintained by the LocalAI team, which began as a vLLM port and now carries its own featureset, shipping as the `vllm-cpp` backend in **alpha development builds**. Around it: **3D generation** as a new modality, a multi-family **audio.cpp** engine, gallery entries that install the build your hardware can actually run, and a deep reliability pass on distributed mode driven by production incidents. **Highlights:** - 🚀 **vllm.cpp (alpha)** - a C++20 engine maintained by the LocalAI team, which began as a vLLM port and keeps vLLM as its reference implementation: V1 serving architecture (paged KV cache, continuous batching, prefix caching, scheduler, sampler) with no Python, PyTorch or ggml at inference. Measured at 1.045x vLLM on Qwen3.6-27B NVFP4 at concurrency 1, with token-for-token identical output. Loads safetensors and GGUF, enforces structured output in-engine, and runs on CPU, CUDA, Metal and Vulkan. The Apple Silicon build ships the MLX GEMM provider, measured at 1.5x to 2.2x on an M4. Shipping as alpha development builds: try it, do not depend on it. - 🧊 **3D generation** - a new modality end to end: `Generate3D` RPC, `FLAG_3D` capability, `POST /v1/3d/generations`, the `trellis2cpp` image-to-3D backend, and a UI page with a native GLB viewer and print remeshing. - 🔊 **audio.cpp** - one backend process serving six audio endpoints across many model families, picked from the GGUF's own metadata: speech, transcription, VAD, diarization, source separation and sound generation. - 🎛️ **One model, many builds** - a gallery entry can declare `variants:`, and LocalAI installs the largest build that your host can actually run. No more hunting through the gallery for the right quantization. - ⚡ **A much lighter web UI** - gzip on the wire, immutable caching for hashed assets, and paginated trace endpoints: the React bundle is 3.48x smaller and the trace poll dropped from 21 MB to 7 KB. - 📊 **An Activity page** - the stacked operations bar collapses to one line, and a new admin Activity page keeps the record of what installed, failed or was cancelled, instead of dropping it the moment it finished. - 📦 **Hugging Face artifact materialization** - immutable snapshot resolution, authenticated downloads with real progress, and staged artifacts that remote workers can bind to. - 🎚️ **VRAM budgets** - cap how much of a card LocalAI may use, per node, as a percentage (`80%`) or an absolute amount (`12GB`). - 🗣️ **Two new TTS engines** - `magpie-tts-cpp` (NVIDIA Magpie Multilingual, 5 voices, 9+ languages) and `moss-tts-cpp` (48 kHz stereo with reference-audio voice cloning). - 🌳 **Sub-2-bit models** - a new `bonsai` backend serves the 1-bit and ternary Bonsai quantizations of Qwen3 and Qwen3.6-27B. - 🖧 **Distributed mode hardening** - the reaper no longer deletes rows for backends that are alive and busy, phantom replicas are cleaned up, and `in_flight` counters stop leaking. Plus a Valkey vector store, systemd socket activation, persistent trace history, two security fixes, a documentation overhaul aimed squarely at onboarding, and a new localai.io.

The LocalAI Home page

--- ##### 📊 This release in numbers | | | |---|---| | Pull requests merged | **386** | | Commits | 392 | | Files changed | 1,204 (**+152,918** / -42,012) | | Development window | 22 days (2026-07-14 to 2026-08-05) | | Contributors | 25, of whom **11 first-time** | | New backends | **7** (`vllm-cpp`, `audio-cpp`, `trellis2cpp`, `v _[Truncated at 4000 characters — full notes: https://github.com/mudler/LocalAI/releases/tag/v4.8.0]_ ### v4.7.1 - Date: 2026-07-14 - Version: v4.7.1 - Original notes: https://github.com/mudler/LocalAI/releases/tag/v4.7.1 - Permalink: https://whatsnew.fyi/product/localai/releases/v4.7.1 - **fixed** — Only inject llama.cpp serving options on the llama.cpp path ##### What's Changed ###### Other Changes * fix(config): only inject llama.cpp serving options on the llama.cpp path by @localai-bot in https://github.com/mudler/LocalAI/pull/10822 **Full Changelog**: https://github.com/mudler/LocalAI/compare/v4.7.0...v4.7.1 ### v4.7.0 - Date: 2026-07-14 - Version: v4.7.0 - Original notes: https://github.com/mudler/LocalAI/releases/tag/v4.7.0 - Permalink: https://whatsnew.fyi/product/localai/releases/v4.7.0 - **added** — Managed voice cloning profiles with UI recording/uploading, saving reusable profiles, and referencing via localai://voice-profiles/ URI - **added** — REST endpoints for voice profile management: GET/POST /api/voice-profiles, GET /api/voice-profiles/:id/audio, DELETE /api/voice-profiles/:id - **added** — MCP admin tools for voice profiles: list_voice_profiles, create_voice_profile, delete_voice_profile - **added** — LongCat video backend for text-to-video, image-to-video, and audio-driven talking-avatar generation - **added** — Support for interleaved reasoning and tool calls in assistant turns with reasoning_content alias and Anthropic thinking block support - **added** — moss-transcribe-cpp backend for one-pass diarized transcription with multi-speaker detection and timestamps - **added** — Real streaming TTS support in vibevoice-cpp with true incremental audio streaming - **added** — F5-TTS integration for voice cloning in CrispASR - **added** — context_size: -1 to run models at their full trained context window using GGUF metadata - **added** — GPU device selection for llama.cpp via options [devices:CUDA1,CUDA2] to restrict offload to named GPUs - **added** — DFlash speculative-decoding gallery models for Qwen 4B, 9B, 27B, and 35B-A3B - **added** — known_input_modalities and known_output_modalities configuration fields - **changed** — Voice cloning capability auto-discovered across 12+ TTS backends without hardcoded backend names - **changed** — Transcription language and translate settings now reach the backend - **fixed** — Model-load cooldown prevents deterministically-failing models from respawning on every poll and leaking VRAM - **fixed** — OIDC support for EC/PS/EdDSA-signed tokens #### 🎉 LocalAI 4.7.0 Release! 🚀




LocalAI 4.7.0 is out! This release widens what LocalAI can generate and how you drive it: a UI-managed voice cloning library, local video and audio-driven avatar generation, and interleaved reasoning that travels with tool calls. It also lands new audio engines (one-pass diarized transcription, F5-TTS, true streaming TTS) and a batch of reliability fixes across auth, transcription, and the model gallery. **Highlights:** - 🎙️ **Managed voice cloning** - record or upload a consented reference in the UI, save it as a reusable profile, and reference it from any cloning-capable TTS backend with a stable `localai://voice-profiles/` URI. No more hand-edited YAML or copying audio into model folders. - 🎬 **Local video & avatars** - a new `longcat-video` backend brings text-to-video, image-to-video, and audio-driven talking-avatar generation, wired into the Studio UI with audio and reference-image controls. - 🧠 **Interleaved thinking with tool calls** - an assistant turn can now carry `reasoning` and `tool_calls` together and keep the reasoning across the tool-result loop, with a `reasoning_content` inbound alias and Anthropic `thinking` block support. - 🗣️ **New audio engines** - one-pass diarized transcription (`moss-transcribe-cpp`), F5-TTS voice cloning in CrispASR, and true streaming TTS in vibevoice-cpp (time-to-first-audio 2.38s vs 39.96s on CPU). - 🎚️ **Auto full context** - `context_size: -1` runs a model at its full trained context window, read from GGUF metadata per-model, with a VRAM-fit warning. - 🖥️ **Sharper control** - pick which GPUs llama.cpp offloads to (`devices:`), and a new model-load cooldown stops a deterministically-failing model from respawning its backend on every poll and leaking VRAM. Plus DFlash speculative-decoding gallery models, an OIDC fix for EC/PS/EdDSA-signed tokens, transcription language/translate settings that reach the backend, and the usual set of dependency updates.

ui-home

--- ##### 📌 TL;DR | Area | Summary | |------|---------| | 🎙️ **Voice Library** | Admin-managed voice cloning profiles: record/upload consented reference audio in the UI, preview, and reference via `localai://voice-profiles/`. New `GET/POST/DELETE /api/voice-profiles`, MCP tools (`list/create/delete_voice_profile`), and a typed `tts.voice_cloning` config. Cloning declared as a capability across 12+ TTS backends (self-discovered, no hardcoded backend names). | | 🎬 **LongCat video & avatars** | New `longcat-video` Python backend: text-to-video, image-to-video, and LongCat-Video-Avatar 1.5 audio-driven avatars. Gallery entries `longcat-video` and `longcat-video-avatar-1.5`; new `known_input_modalities`/`known_output_modalities` config fields; `/video` endpoint extended with staged audio. CUDA 12/13 x86_64 + CUDA 13 ARM64 images. | | 🧠 **Interleaved thinking** | Assistant turns carry `reasoning` + `tool_calls` together and preserve reasoning across the tool loop. `reasoning_content` accepted as an inbound alias; Anthropic Messages local path round-trips `thinking` blocks (gated on `thinking: {type: "enabled"}`). | | 🗣️ **moss-transcribe-cpp** | New Go backend over the C++/ggml MOSS-Transcribe-Diarize port: joint multi-speaker transcription + diarization + timestamps in one pass. Gallery model `moss-transcribe-cpp-0.9b`. Offline; 1.6-2.2x faster than reference on CPU, bit-exact on CUDA. | | ⚡ **vibevoice streaming TTS** | Real incremental streaming via `vv_capi_tts_stream`: TTFA 2.38s vs 39.96s batch (~17x) on CPU for `VibeVoice-Realtime-0.5B`. | | 🎨 **F5-TTS** | F5-TTS linked into CrispASR + `f5-tts-cr _[Truncated at 4000 characters — full notes: https://github.com/mudler/LocalAI/releases/tag/v4.7.0]_ ### v4.6.2 - Date: 2026-07-06 - Version: v4.6.2 - Original notes: https://github.com/mudler/LocalAI/releases/tag/v4.6.2 - Permalink: https://whatsnew.fyi/product/localai/releases/v4.6.2 - **changed** — Use slices.Contains to simplify code - **fixed** — Shard single-arch backend matrix under GitHub's 256-job limit - **added** — Add MiniCPM series models to model gallery ##### What's Changed ###### 👒 Dependencies * chore(deps): bump actions/cache from 4 to 6 by @dependabot[bot] in https://github.com/mudler/LocalAI/pull/10704 ###### Other Changes * refactor: use slices.Contains to simplify code by @weifanglab in https://github.com/mudler/LocalAI/pull/10702 * fix(ci): shard single-arch backend matrix under GitHub's 256-job limit by @localai-bot in https://github.com/mudler/LocalAI/pull/10703 * chore(model gallery): add MiniCPM series models by @ZMXJJ in https://github.com/mudler/LocalAI/pull/10699 ##### New Contributors * @weifanglab made their first contribution in https://github.com/mudler/LocalAI/pull/10702 * @ZMXJJ made their first contribution in https://github.com/mudler/LocalAI/pull/10699 **Full Changelog**: https://github.com/mudler/LocalAI/compare/v4.6.1...v4.6.2 ### v4.6.1 - Date: 2026-07-06 - Version: v4.6.1 - Original notes: https://github.com/mudler/LocalAI/releases/tag/v4.6.1 - Permalink: https://whatsnew.fyi/product/localai/releases/v4.6.1 - **fixed** — Log the real cause of OIDC/OAuth user-info failures - **added** — Add GET /v1/models/capabilities endpoint - **fixed** — Center the home empty-state wizard in UI - **added** — Add native Prometheus metrics for agent chat runs - **fixed** — Don't persist request-scoped reasoning_effort as an operator disable - **fixed** — Scope generated-content and upload dirs to the current user on startup - **fixed** — Cap auto-derived context to fit VRAM - **fixed** — Cap single-pass embedding batch to fit VRAM ##### What's Changed ###### Other Changes * fix(auth): log the real cause of OIDC/OAuth user-info failures by @localai-bot in https://github.com/mudler/LocalAI/pull/10679 * feat(api): add GET /v1/models/capabilities endpoint by @localai-bot in https://github.com/mudler/LocalAI/pull/10687 * chore: :arrow_up: Update CrispStrobe/CrispASR to `1109cb3fcae2e242c2b3d42ec0e3fd6e813f2ce7` by @localai-bot in https://github.com/mudler/LocalAI/pull/10685 * chore: :arrow_up: Update ggml-org/llama.cpp to `665892536dfb1b7532161e3182304bd35c33e768` by @localai-bot in https://github.com/mudler/LocalAI/pull/10681 * chore(model-gallery): :arrow_up: update checksum by @localai-bot in https://github.com/mudler/LocalAI/pull/10686 * chore: :arrow_up: Update vllm-metal (darwin) to `v0.3.0.dev20260704102955` by @localai-bot in https://github.com/mudler/LocalAI/pull/10668 * fix(ui): center the home empty-state wizard by @localai-bot in https://github.com/mudler/LocalAI/pull/10691 * docs: :arrow_up: update docs version mudler/LocalAI by @localai-bot in https://github.com/mudler/LocalAI/pull/10680 * chore: :arrow_up: Update CrispStrobe/CrispASR to `09df654e304947f7521e1f52992ceacccf03c300` by @localai-bot in https://github.com/mudler/LocalAI/pull/10693 * chore: :arrow_up: Update ServeurpersoCom/omnivoice.cpp to `daedb763fd442e0916eb130a479fdd74947291c0` by @localai-bot in https://github.com/mudler/LocalAI/pull/10682 * chore: :arrow_up: Update ServeurpersoCom/qwentts.cpp to `73fe0c67bbf0898ba2999535e0680a02a7f8537d` by @localai-bot in https://github.com/mudler/LocalAI/pull/10683 * feat(agents): native Prometheus metrics for agent chat runs by @walcz-de in https://github.com/mudler/LocalAI/pull/10689 * chore: :arrow_up: Update ggml-org/llama.cpp to `2da668617612d2df773f966e3b0ee22dc2beef7b` by @localai-bot in https://github.com/mudler/LocalAI/pull/10694 * fix(reasoning): don't persist request-scoped reasoning_effort as an operator disable (#10622) by @Anai-Guo in https://github.com/mudler/LocalAI/pull/10623 * fix(startup): scope generated-content and upload dirs to the current user by @localai-bot in https://github.com/mudler/LocalAI/pull/10698 * fix(config): cap auto-derived context to fit VRAM by @localai-bot in https://github.com/mudler/LocalAI/pull/10696 * fix(llama-cpp): cap single-pass embedding batch to fit VRAM by @localai-bot in https://github.com/mudler/LocalAI/pull/10695 **Full Changelog**: https://github.com/mudler/LocalAI/compare/v4.6.0...v4.6.1 ### v4.6.0 - Date: 2026-07-04 - Version: v4.6.0 - Original notes: https://github.com/mudler/LocalAI/releases/tag/v4.6.0 - Permalink: https://whatsnew.fyi/product/localai/releases/v4.6.0 - **fixed** — AMD ROCm ggml audio backends now compile with -DGGML_HIP=ON and link HIP for real GPU offload - **fixed** — hipBLASLt kernel-tuning data (TensileLibrary files) is now bundled and HIPBLASLT_TENSILE_LIBPATH is exported - **fixed** — rocm-vllm backend now installs from the AMD ROCm wheel index instead of the CUDA-only PyPI wheel - **fixed** — ASIC ID table (amdgpu.ids) is now symlinked so compute-only hipblas images can find it - **added** — Realtime sessions eagerly warm the entire pipeline (VAD, ASR, LLM, TTS) at session start - **added** — New POST /backend/load and POST /v1/backend/load API endpoints to load models into memory - **added** — Load into memory UI button in the built-in chat interface - **added** — Chat forking capability allowing regeneration of any assistant answer, branching from any turn, duplicating conversations, and copying as Markdown - **fixed** — Dead worker no longer pins the per-model PostgreSQL advisory lock during distributed model loads - **fixed** — Backend workers now self-terminate on parent death instead of holding VRAM - **added** — Prometheus counter localai_pii_events_total for tracking PII detections, masks, and blocks - **fixed** — Gallery config URL fetches are now validated against private, loopback, link-local, and cloud-metadata addresses to prevent SSRF - **changed** — POST /backends/apply and LOCALAI_EXTERNAL_BACKENDS no longer re-pull already-installed backends unless force: true is specified - **fixed** — Non-streaming vLLM tool calls are now restored - **fixed** — MLX and Python backends now decode tool-call arguments for chat templates and split closing-only reasoning blocks #### 🎉 LocalAI 4.6.0 Release! 🚀




LocalAI 4.6.0 is out! This is a reliability-focused release: AMD ROCm backends now run on-GPU at full speed, distributed model loads no longer wedge when a worker dies, and realtime sessions warm up predictably. It also brings conversation forking to the built-in chat UI, a Prometheus counter for PII/audit events, and an SSRF fix for the model gallery. **Highlights:** - 🔴 **AMD ROCm runs correctly** - ggml audio backends offload to the GPU, hipBLASLt kernel-tuning data is bundled (no more slow generic kernels), `rocm-vllm` installs the right wheel, and the ASIC ID table is found. - 🎙️ **Predictable realtime** - sessions eagerly warm the whole pipeline (VAD, ASR, LLM, TTS) up front, so the first turn no longer pays per-model cold-start stalls, plus a new `POST /backend/load` API and "Load into memory" UI button. - 🌿 **Forking chat** - retry *any* assistant answer, branch a new chat from any point, duplicate, or copy the whole conversation, directly in the built-in UI. - 🛡️ **Distributed hardening** - a dead worker can no longer pin the model-load advisory lock (the ~15-minute wedge is gone), and orphaned backend workers self-terminate instead of holding VRAM. - 📊 **PII/audit metrics** - PII detections/masks/blocks are exported as a Prometheus counter, so you can alert when the filter stops firing. - 🔒 **Gallery SSRF fix** - `POST /models/apply` config-URL fetches are validated against private/loopback/metadata addresses. Plus idempotent backend installs, tool-calling and reasoning fixes across the vLLM and Python/MLX backends, cloud-proxy compatibility with the newest reasoning models, and the usual set of dependency updates. --- ##### 📌 TL;DR | Area | Summary | |------|---------| | 🔴 **AMD ROCm reliability** | ggml audio backends now compile with `-DGGML_HIP=ON` and link HIP (real GPU offload); hipBLASLt `TensileLibrary` data bundled + `HIPBLASLT_TENSILE_LIBPATH` exported; `rocm-vllm` installs from the AMD wheel index on Python 3.12; `amdgpu.ids` symlinked so the ASIC table is found. | | 🎙️ **Realtime warm-up + load API** | Sessions block-warm the full pipeline at start (errors surface up front); new `POST /backend/load` / `POST /v1/backend/load`, a "Load into memory" UI action, and a `load_model` MCP tool. Opt out per pipeline with `disable_warmup: true`. | | 🌿 **Forking chat** | Regenerate any assistant answer (not just the last), branch a new chat from any turn, duplicate a chat, or copy it as Markdown - all client-side in the React UI. | | 🛡️ **Process & distributed lifecycle** | A dead worker no longer pins the per-model PostgreSQL advisory lock (bounded load ceiling + context-scoped `lock_timeout`); backend workers self-terminate on parent death (`LOCALAI_BACKEND_PARENT_WATCH`); the watchdog stops logging optional `Free()` as an error. | | ⚙️ **Idempotent backend installs** | `POST /backends/apply` and the `LOCALAI_EXTERNAL_BACKENDS` boot loop no longer re-pull an already-installed backend unless `force: true`. | | 📊 **PII/audit Prometheus counter** | `localai_pii_events_total{kind,origin,action,direction}` on `/metrics`, complementing the `/api/pii/events` ring buffer. | | 🔒 **Gallery SSRF hardening** | Gallery config URL fetches run through `ValidateExternalURL`, blocking private, loopback, link-local, and cloud-metadata addresses. | | 🧩 **Tool-calling & reasoning fixes** | Non-streaming vLLM tool calls restored; MLX/Python backends decode tool-call arguments for chat templates and split closing-only `` reasoning blocks. | --- ##### 🚀 New Features & Major Enhancements ###### 🔴 AMD ROCm backends run correctly on-GPU Four coupled fixes make ROCm/hipBLAS backends actually run on AMD hardware, and at full speed, instead of silently falling back _[Truncated at 4000 characters — full notes: https://github.com/mudler/LocalAI/releases/tag/v4.6.0]_ ### v4.5.6 - Date: 2026-06-30 - Version: v4.5.6 - Original notes: https://github.com/mudler/LocalAI/releases/tag/v4.5.6 - Permalink: https://whatsnew.fyi/product/localai/releases/v4.5.6 - **fixed** — Missing agent NATS permission in distributed mode - **added** — SyncedMap component for distributed cross-replica state - **changed** — Migrate finetune/quant/agent-tasks to cross-replica state - **removed** — Drop the darwin/metal build target for fish-speech - **fixed** — Fall back to DefaultContextSize for unparseable GGUFs and pin NVFP4 gallery context_size - **fixed** — Gallery mmproj/model quant matching to prevent F16 from selecting BF16 - **fixed** — Return empty backend list for agent nodes instead of failing backend.list - **added** — LOCALAI_DISTRIBUTED_SHARED_MODELS environment variable to skip staging on shared volumes - **fixed** — Bound resume-stream buffer and enforce response ownership in openresponses - **fixed** — IK-llama multimodal path ported to mtmd API - **added** — Voice-detect and face-detect ggml backends to replace Python insightface/speaker-recognition - **fixed** — Kokoro add explicit click dependency so spacy CLI works on intel build - **fixed** — Launcher binary download/upgrade with resume, rate-limit, and improved UX - **fixed** — Fish-speech allow invalid_reference_casting so tokenizers builds on darwin - **fixed** — OCI retry layer downloads on transient network errors - **fixed** — SGLang parse tool_call function arguments before applying the chat template - **added** — Semantic VAD EOU token for realtime - **fixed** — OpenAI stop max_tokens streaming retry loop on reasoning models - **fixed** — Import derive model name from selected GGUF for repo-root URIs - **fixed** — Avoid quadratic-time debug logging in CleanupLLMResult and ParseFunctionCall ##### What's Changed ###### 👒 Dependencies * chore(deps): bump actions/cache from 4 to 6 by @dependabot[bot] in https://github.com/mudler/LocalAI/pull/10593 ###### Other Changes * docs: :arrow_up: update docs version mudler/LocalAI by @localai-bot in https://github.com/mudler/LocalAI/pull/10560 * fix(distributed): missing agent NATS permission by @ALameLlama in https://github.com/mudler/LocalAI/pull/10549 * feat(distributed): SyncedMap component + migrate finetune/quant/agent-tasks to cross-replica state by @localai-bot in https://github.com/mudler/LocalAI/pull/10542 * chore(fish-speech): drop the darwin/metal build target by @localai-bot in https://github.com/mudler/LocalAI/pull/10561 * fix(config): fall back to DefaultContextSize for unparseable GGUFs; pin NVFP4 gallery context_size by @localai-bot in https://github.com/mudler/LocalAI/pull/10563 * ci(vibevoice): skip the ASR transcription e2e on release tag builds by @localai-bot in https://github.com/mudler/LocalAI/pull/10567 * fix(gallery): match mmproj/model quant as a whole token so F16 no longer selects BF16 (#10559) by @localai-bot in https://github.com/mudler/LocalAI/pull/10564 * fix(distributed): return empty backend list for agent nodes instead of failing backend.list (#10545) by @localai-bot in https://github.com/mudler/LocalAI/pull/10565 * feat(distributed): add LOCALAI_DISTRIBUTED_SHARED_MODELS to skip staging on shared volumes (#10556) by @localai-bot in https://github.com/mudler/LocalAI/pull/10566 * chore: :arrow_up: Update leejet/stable-diffusion.cpp to `9956436c925a367daeab097598b1ea1f32d3503f` by @localai-bot in https://github.com/mudler/LocalAI/pull/10533 * fix(openresponses): bound resume-stream buffer and enforce response ownership by @localai-bot in https://github.com/mudler/LocalAI/pull/10569 * chore: :arrow_up: Update ggml-org/whisper.cpp to `0ae02cdb2c7317b50991367c165736ce42ed96ac` by @localai-bot in https://github.com/mudler/LocalAI/pull/10532 * chore: :arrow_up: Update CrispStrobe/CrispASR to `6514c9da00b03a2f0f1b49a43fae4f3a01a41844` by @localai-bot in https://github.com/mudler/LocalAI/pull/10535 * chore: :arrow_up: Update ggml-org/llama.cpp to `0ed235ea2c17a19fc8238668653946721ed136fd` by @localai-bot in https://github.com/mudler/LocalAI/pull/10536 * fix(ik-llama): port multimodal path to mtmd API and bump to f96eaddb (#10534) by @localai-bot in https://github.com/mudler/LocalAI/pull/10568 * feat(backends): add voice-detect + face-detect ggml backends (replace Python insightface/speaker-recognition) by @localai-bot in https://github.com/mudler/LocalAI/pull/10441 * fix(kokoro): add explicit click dep so spacy CLI works on intel build by @localai-bot in https://github.com/mudler/LocalAI/pull/10572 * fix(launcher): robust binary download/upgrade (resume, rate-limit, UX) by @localai-bot in https://github.com/mudler/LocalAI/pull/10575 * fix(distributed): missing agent NATS permissions by @ALameLlama in https://github.com/mudler/LocalAI/pull/10571 * fix(fish-speech): allow invalid_reference_casting so tokenizers builds on darwin by @localai-bot in https://github.com/mudler/LocalAI/pull/10573 * fix(oci): retry layer downloads on transient network errors by @localai-bot in https://github.com/mudler/LocalAI/pull/10579 * chore(model-gallery): :arrow_up: update checksum by @localai-bot in https://github.com/mudler/LocalAI/pull/10585 * chore: :arrow_up: Update leejet/stable-diffusion.cpp to `c1790754d31bec0731ed5fddc9d5b9ff22ee19cd` by @localai-bot in https://github.com/mudler/LocalAI/pull/10584 * chore: :arrow_up: Update CrispStrobe/CrispASR to `6b50f76e59700665358a1aabf5295597fa318e06` by @localai-bot in https://github.com/mudler/LocalAI/pull/10583 * chore: :arrow_up: Update ggml-org/llama.cpp to `dbdaece23de9ac63f2e7ca9e6bfcdc4fc156a3fa` by @localai-bot in https://github.com/mudler/LocalAI/pull/10582 * chore: :arrow_up: Update mudler/voic _[Truncated at 4000 characters — full notes: https://github.com/mudler/LocalAI/releases/tag/v4.5.6]_ ### v4.5.5 - Date: 2026-06-27 - Version: v4.5.5 - Original notes: https://github.com/mudler/LocalAI/releases/tag/v4.5.5 - Permalink: https://whatsnew.fyi/product/localai/releases/v4.5.5 - **fixed** — Repair release CI build and test breaks for kokoros, fish-speech, llama-cpp-quantization, and sglang backends - **added** — Add 1 new model to the model gallery - **fixed** — Whisper Darwin run.sh loads whichever fallback library exists (.so or .dylib) ##### What's Changed ###### Other Changes * fix(backends): repair release CI build/test breaks (kokoros, fish-speech, llama-cpp-quantization, sglang) by @localai-bot in https://github.com/mudler/LocalAI/pull/10547 * chore(model gallery): :robot: add 1 new models via gallery agent by @localai-bot in https://github.com/mudler/LocalAI/pull/10544 * fix(backends): whisper darwin run.sh loads whichever fallback lib exists (.so/.dylib) by @localai-bot in https://github.com/mudler/LocalAI/pull/10553 **Full Changelog**: https://github.com/mudler/LocalAI/compare/v4.5.4...v4.5.5 ### v4.5.4 - Date: 2026-06-27 - Version: v4.5.4 - Original notes: https://github.com/mudler/LocalAI/releases/tag/v4.5.4 - Permalink: https://whatsnew.fyi/product/localai/releases/v4.5.4 - **fixed** — Derive darwin RUN_BINARY from the exec line only in backends ##### What's Changed ###### Other Changes * fix(backends): derive darwin RUN_BINARY from the exec line only by @localai-bot in https://github.com/mudler/LocalAI/pull/10541 **Full Changelog**: https://github.com/mudler/LocalAI/compare/v4.5.3...v4.5.4 ### v4.5.3 - Date: 2026-06-26 - Version: v4.5.3 - Original notes: https://github.com/mudler/LocalAI/releases/tag/v4.5.3 - Permalink: https://whatsnew.fyi/product/localai/releases/v4.5.3 - **added** — Sign and notarize the DMG, app, and server binary on macOS - **fixed** — Set rpath on the piper darwin binary so it can load its bundled libs - **fixed** — Darwin packaging for silero-vad backend - **fixed** — Show a node's existing labels on the detail view - **fixed** — Bundle transitive dependencies of GPU runtime libs - **fixed** — Broadcast admin model-config changes across replicas in distributed mode - **fixed** — Stop reinterpreting plain-string message content as JSON in llama-cpp ##### What's Changed ###### Other Changes * feat(macos): sign and notarize the DMG, app, and server binary by @localai-bot in https://github.com/mudler/LocalAI/pull/10510 * fix(backends): set rpath on the piper darwin binary so it can load its bundled libs by @localai-bot in https://github.com/mudler/LocalAI/pull/10525 * fix(backends): darwin packaging for silero-vad (last Linux-only Go backend) by @localai-bot in https://github.com/mudler/LocalAI/pull/10528 * chore(model gallery): :robot: add 1 new models via gallery agent by @localai-bot in https://github.com/mudler/LocalAI/pull/10526 * fix(nodes): show a node's existing labels on the detail view by @localai-bot in https://github.com/mudler/LocalAI/pull/10529 * docs: :arrow_up: update docs version mudler/LocalAI by @localai-bot in https://github.com/mudler/LocalAI/pull/10531 * chore: :arrow_up: Update mudler/parakeet.cpp to `f469a57270a1cc4554acb15febf60e56619673b9` by @localai-bot in https://github.com/mudler/LocalAI/pull/10530 * fix(gpu-libs): bundle transitive deps of GPU runtime libs (#10537) by @localai-bot in https://github.com/mudler/LocalAI/pull/10539 * fix(distributed): broadcast admin model-config changes across replicas by @localai-bot in https://github.com/mudler/LocalAI/pull/10540 * fix(llama-cpp): stop reinterpreting plain-string message content as JSON (#10524) by @localai-bot in https://github.com/mudler/LocalAI/pull/10538 **Full Changelog**: https://github.com/mudler/LocalAI/compare/v4.5.2...v4.5.3 ### v4.5.2 - Date: 2026-06-26 - Version: v4.5.2 - Original notes: https://github.com/mudler/LocalAI/releases/tag/v4.5.2 - Permalink: https://whatsnew.fyi/product/localai/releases/v4.5.2 - **fixed** — make the opus backend build and package on macOS/Darwin ##### What's Changed ###### Other Changes * fix(backends): make the opus backend build and package on macOS/Darwin by @localai-bot in https://github.com/mudler/LocalAI/pull/10523 **Full Changelog**: https://github.com/mudler/LocalAI/compare/v4.5.1...v4.5.2