- 已有应用写死了 OpenAI SDK,想切到本地模型:改 base_url 就能跑,不用重写调用层;换 vLLM 或 llama.cpp server 则要按模态各起一个服务再自己拼路由
- 单机或小集群上同时要文本、TTS、图像生成:一个进程管多后端,比分别维护 ComfyUI、whisper.cpp、llama.cpp 三套部署省事
- 需要给内部团队发 API key、按用户限配额:鉴权和角色是内置的,纯推理服务器通常没有这层,得自己在前面加网关
- 无 GPU 的机器上做原型验证:CPU 后端能跑起来,代价是吞吐,只适合低并发或离线批处理

LocalAI
mudlerMIT活跃维护 有专家点评开源本地 AI 推理引擎,无需 GPU 即可在任意硬件上跑 LLM、视觉、语音和图像生成模型,提供兼容 OpenAI 的 API。
LocalAI is the open-source AI engine. Run any model - LLMs, vision, voice, image, video - on any hardware. No GPU required.
专家点评
上手难度:进阶更新于 2026-11-11自托管的 OpenAI 兼容推理网关,把 LLM、语音、图像收敛到一个进程里,省掉为每种模态单独部署一套服务
适用场景
踩坑
- 首次运行要联网拉后端镜像和模型权重,离线或内网环境会卡在这一步;issue 里 docker compose 相关的依赖报错(如 conda 包定位失败)被反复提出,说明容器化路径不是开箱即用
- 后端是按需拉取的,意味着不同模型背后是不同的运行时和硬件加速栈,GPU 镜像要额外挂设备或加 --gpus all,配错时表现为后端起不来而不是明确报错
- 想脱离 Docker 直接跑(issue 里有明确诉求)或要原生 Windows 版本(反应数最高的 issue),目前都不是一等路径;macOS 的 DMG 未签名,装完要手动清 quarantine 属性
- 非主流加速硬件(如 RK3588 的 NPU)有需求但支持不完整,别指望拿它当通用 NPU 抽象层
同类对比
要极致单模型吞吐就上 vLLM 或 SGLang,它们不做多模态统一和鉴权;只想跑 GGUF 且不要网关层,llama.cpp 自带的 server 更轻。LocalAI 的价值在聚合,不在单项性能。
docker run -ti --name local-ai -p 8080:8080 localai/localai:latest
local-ai run llama-3.2-1b-instruct:q4_k_m支持 NVIDIA(CUDA 12/13、Jetson)、AMD ROCm、Intel oneAPI、Apple Silicon、Vulkan,也可纯 CPU 运行;README 未给出具体显存要求。
项目说明
由 README 自动翻译提炼开源本地 AI 引擎,一个 API 跑 LLM、视觉、语音、图像、视频,无 GPU 也能用
开源本地 AI 推理引擎,无需 GPU 即可在任意硬件上跑 LLM、视觉、语音和图像生成模型,提供兼容 OpenAI 的 API。
核心能力
- 后端按需拉取,只装模型实际需要的引擎
- 兼容 OpenAI、Anthropic、ElevenLabs 接口
- 统一 API 覆盖 LLM、视觉、语音、图像、视频
- 支持 API key 鉴权、用户配额与角色权限
- 内置带工具、MCP 和文件的持久化会话代理
容易踩的坑
macOS 的 DMG 未签名,安装后需执行 sudo xattr -d com.apple.quarantine /Applications/LocalAI.app;后端镜像按需拉取,首次运行模型需联网下载;GPU 镜像需加 --gpus all 或挂载 /dev/kfd、/dev/dri 等设备。
- v4.12.1最新正式版2026-10-23 · 2026-10-23 10:27 UTC
Patch release v4.12.1. Security fix only.
Security
- Hardened the external URL policy for user-supplied URLs (chat vision image/audio/video URLs, image and audio endpoints). Redirect targets are now validated on every hop, 100.64.0.0/10 and 0.0.0.0/8 are treated as non-public, and the connection goes to the address that was validated. See #12853. Credits to @spicysharkco for the discovery.
Full Changelog: https://github.com/mudler/LocalAI/compare/v4.12.0...v4.12.1
- v4.12.02026-10-22 · 2026-10-22 13:20 UTC
查看更新说明
🎉 LocalAI 4.12.0 Release! 🚀
LocalAI 4.12.0 is out!
This release redesigns the web UI and adds streaming voice responses, native decision routing, and more control over model memory and prompt state. It also adds image upscaling, live motion capture, Qdrant stores, and authenticated chat history. It is also a preparation for the upcoming release which will include addon support. Our plan is to move few components (e.g. Studio, Talk) to separate add-ons that can be installed on-demand from LocalAI.
Highlights:
- 🖥️ Redesigned web UI: shared controls, light and dark themes, clearer Models and Studio workflows, and node-scoped backend maintenance.
- 🎙️ Streaming voice and bundled audio models: feed LLM fragments into Qwen TTS, use explicit clause streaming with other engines, and combine audio analysis roles through Parakeet bundles.
- 🧭 Native decision routing: classify requests with decision models and use the new
/v1/decisionsadapter for predicates, choices, and scores. - 🖼️ Image upscaling in Studio: create an upscaled child image without leaving the project, with a dedicated
/v1/images/upscaleAPI. - 🛡️ Privacy and tool configuration: Responses PII filtering, opt-in rejection of uninspectable media, alias profiles, and OAuth2 client credentials for remote MCP servers.
- 🕺 Live GEM-X motion capture: stream RGB frames into a bounded, session-based pose API on CPU or Vulkan.
- 🗄️ Persistent Qdrant stores: use the existing stores API with TLS and environment-backed credentials.
- 💾 Inference controls: configure MoE expert caching, lazy tensor reads, and explicit slot prompt-cache save and restore.
📊 This release in numbers
Pull requests merged 211 Commits 307, including 96 direct commits Files changed 1,416 (+186,826 / -67,020) Feature PRs 32 User-facing fix PRs 38 Model-gallery PRs 29 Top-level gallery entries 1,660 to 1,896 (+236) Dependency PRs 90 Counts compare
v4.11.0with the release-preparation snapshot. Direct commits include user-facing features as well as gallery and maintenance work.
📌 TL;DR
Area Summary 🖥️ Web UI A shared visual kit, hub navigation, redesigned Models and Studio pages, per-model disk accounting, and guarded per-node backend removal. 💬 Chat Account-scoped server history, one reasoning-effort picker, editable microphone dictation, scanned-PDF image attachments, and separately sandboxed Canvas previews. 🎙️ Audio Incremental Qwen TTS, opt-in clause streaming, Parakeet bundles and speaker encoders, configurable VAD, and sound events alongside diarization. 🎵 Sound YuE2 support and optional structured expansion through a compatible native-tool chat model. YuE2 weights are non-commercial. 🧭 Decisions Native decision models can route requests; /v1/decisionsadapts predicates, choices, and scores to the existing SystemOne pipeline.🛡️ Privacy and MCP Incoming Responses text filtering, optional media rejection, protected terms and adjacent-word masking, alias profiles, and remote OAuth2 client credentials. 🕺 Motion GEM-X converts streamed RGB frames into SOMA-77 or SMPL-24 poses through a bounded duplex API. This integration is API-only. 🗄️ Stores Qdrant provides persistent vectors through /stores/*, with explicit backend selection, TLS, and chunked writes.💾 Inference moe_cache_mib, - v4.11.02026-10-02 · 2026-10-02 21:56 UTC
查看更新说明
🎉 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
decisionsuse case and answer structured choice, score, andnoulquestions 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.
📸 [ 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/diarizationcan 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_modelto identify voices from t - v4.10.02026-09-17 · 2026-09-17 19:46 UTC
查看更新说明
🎉 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.yamlauthenticate OCI registries, galleries and direct downloads without scattering tokens across environment variables. Andlocal-ai benchmarkmeasures 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=falseis 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.yamlauthenticates OCI registries, galleries, HTTP downloads andgithub: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 benchmarkCLI 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_adaptersandlora_scalesare 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, soCUDA_VISIBLE_DEVICESorVLLM_CACHE_DIRcan 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_sizein/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-m1cpubumped 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) Human con - v4.9.02026-08-20 · 2026-08-20 15:59 UTC
查看更新说明
🎉 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-cppgrew 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,/backendsand/mcp/chat/completionsfell outside the old protected-prefix list. Reported by 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/modelsnow owns Explore and Installed,/app/backendsowns Catalog and Installed, and the nested Host view is gone. Old/app/managebookmarks still work. - 🎬 MiniMax-H3 video generation -
vllm-cppopens 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.
📊 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 Galle - 🔐 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
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
LocalAI is the open-source AI engine. Run any model - LLMs, vision, voice, image, video - on any hardware. No GPU required.
A small core, not a bundle. Each backend wraps a best-in-class engine (llama.cpp, vLLM, whisper.cpp, stable-diffusion, MLX...) in its own image, pulled only when a model needs it. You install nothing you don't use.
- Composable by design: backends are separate and pulled on demand, so you install only what your model needs
- Open and extensible: load any model, or build your own backend in any language against an open interface
- Drop-in API compatibility: OpenAI, Anthropic, and ElevenLabs APIs across every backend
- Any model, any modality: LLMs, vision, voice, image, and video behind one API
- Any hardware: NVIDIA, AMD, Intel, Apple Silicon, Vulkan, or CPU-only
- Multi-user ready: API key auth, user quotas, role-based access
- Chats with saved agents: conversations the server keeps, with agents that use tools, MCP, skills and files, triggers, and a Telegram connector
- Add-ons: Studio, Talk, Voice, Face, Simple Office, Sandbox and more install from a signed catalog, and run beside the server
- Privacy-first: your data never leaves your infrastructure

Created by Ettore Di Giacinto and maintained by the LocalAI team.
:book: Documentation | :speech_balloon: Discord | 💻 Quickstart | 🖼️ Models | ❓FAQ
Guided tour
https://github.com/user-attachments/assets/08cbb692-57da-48f7-963d-2e7b43883c18
User and auth
https://github.com/user-attachments/assets/228fa9ad-81a3-4d43-bfb9-31557e14a36c
Usage metrics per user
https://github.com/user-attachments/assets/cbb03379-23b4-4e3d-bd26-d152f057007f
Fine-tuning and Quantization
https://github.com/user-attachments/assets/5ba4ace9-d3df-4795-b7d4-b0b404ea71ee
WebRTC
https://github.com/user-attachments/assets/ed88e34c-fed3-4b83-8a67-4716a9feeb7b
Quickstart
macOS
Note: The DMG is not signed by Apple. After installing, run:
sudo xattr -d com.apple.quarantine /Applications/LocalAI.app. See #6268 for details.
Containers (Docker, podman, ...)
Already ran LocalAI before? Use
docker start -i local-aito restart an existing container.
CPU only:
docker run -ti --name local-ai -p 8080:8080 localai/localai:latest
NVIDIA GPU:
# CUDA 13
docker run -ti --name local-ai -p 8080:8080 --gpus all localai/localai:latest-gpu-nvidia-cuda-13
# CUDA 12
docker run -ti --name local-ai -p 8080:8080 --gpus all localai/localai:latest-gpu-nvidia-cuda-12
# NVIDIA Jetson ARM64 (CUDA 12, for AGX Orin and similar)
docker run -ti --name local-ai -p 8080:8080 --gpus all localai/localai:latest-nvidia-l4t-arm64
# NVIDIA Jetson ARM64 (CUDA 13, for DGX Spark)
docker run -ti --name local-ai -p 8080:8080 --gpus all localai/localai:latest-nvidia-l4t-arm64-cuda-13
AMD GPU (ROCm):
docker run -ti --name local-ai -p 8080:8080 --device=/dev/kfd --device=/dev/dri --group-add=video localai/localai:latest-gpu-hipblas
Intel GPU (oneAPI):
docker run -ti --name local-ai -p 8080:8080 --device=/dev/dri/card1 --device=/dev/dri/renderD128 localai/localai:latest-gpu-intel
Vulkan GPU:
docker run -ti --name local-ai -p 8080:8080 localai/localai:latest-gpu-vulkan
Loading models
# From the model gallery (see available models with `local-ai models list` or at https://models.localai.io)
local-ai run llama-3.2-1b-instruct:q4_k_m
# From Huggingface
local-ai run huggingface://TheBloke/phi-2-GGUF/phi-2.Q8_0.gguf
# From the Ollama OCI registry
local-ai run ollama://gemma:2b
# From a YAML config
local-ai run https://gist.githubusercontent.com/.../phi-2.yaml
# From a standard OCI registry (e.g., Docker Hub)
local-ai run oci://localai/phi-2:latest
To work with a running LocalAI server from the terminal, start the built-in agent from another shell. It answers questions, reads your files and runs commands on your machine, asking you to approve anything that changes state. Inside a session, /models lists installed models and /model <name> switches between them. See the Terminal agent docs.
# Terminal 1
local-ai run llama-3.2-1b-instruct:q4_k_m
# Terminal 2
local-ai chat --model llama-3.2-1b-instruct:q4_k_m
Automatic Backend Detection: LocalAI automatically detects your GPU capabilities and downloads the appropriate backend. For advanced options, see GPU Acceleration.
For more details, see the Getting Started guide.
Latest News
- October 2026: LocalAI 4.11.0 — Audio scenes with transcription, speaker labels, and sound detection. Also the Decisions API (
/v1/systemone), model failover chains, signed OCI galleries, and Kimodo text-to-animation. Release notes - September 2026: LocalAI 4.10.0 — A fleet operations dashboard, one credentials file for private model sources, and
local-ai benchmarkfor measuring model latency and throughput. Release notes - August 2026: LocalAI 4.9.0 — Deny-by-default authentication, opt-in chat context compression, unified model and backend management, and MiniMax-H3 video generation with audio. Release notes
- August 2026: LocalAI 4.8.0 — Introducing vllm.cpp (alpha development builds), image-to-3D generation with a built-in viewer, and
audio.cppfor speech, transcription, VAD, diarization, source separation and sound generation. Release notes - July 2026: LocalAI 4.7.0 — Managed voice cloning profiles, local video and talking-avatar generation, and interleaved reasoning with tool calls. Release notes
- July 2026: LocalAI 4.6.0 — AMD ROCm fixes, predictable realtime pipeline warmup, conversation forking, and more reliable distributed model loading. Release notes
- June 2026: LocalAI 4.5.0 — Native depth estimation and sound-event detection, NER-based PII filtering, and speaker-aware realtime conversations with automatic history compaction. Release notes
- June 2026: New native biometric backends from the LocalAI team: voice-detect.cpp for speaker recognition and voice analysis (ECAPA-TDNN, WeSpeaker, ERes2Net, CAM++, wav2vec2 age/gender/emotion) and face-detect.cpp for face detection, recognition, demographics and anti-spoofing (SCRFD/ArcFace, YuNet/SFace). Both are from-scratch C++/ggml engines with no Python or onnxruntime at inference, self-contained GGUF weights, bit-exact parity with the reference, and GPU cuDNN parity, replacing the heavier Python
insightfaceandspeaker-recognitionbackends (PR #10441). - June 2026: New realtime voice assistant demo (a tiny Go client for the Realtime API with a full talk-back voice loop and tool calling), plus streaming of the realtime LLM / TTS / transcription pipeline stages and configurable WebRTC ICE candidates.
- June 2026: Big speech push: the parakeet.cpp ASR engine gains NeMo-faithful segment timestamps, a multilingual streaming Nemotron-3.5 model, dynamic batching for concurrent transcription and CUDA graphs; the new CrispASR backend adds multi-architecture ASR + TTS, and 60 Piper TTS voices across 42 languages land in the gallery (plus per-request TTS instructions and params).
- June 2026: New backends and models: locate-anything.cpp for open-vocabulary object detection via ggml, Ideogram4 image generation in stablediffusion-ggml, llama.cpp video input, and the Gemma 4 QAT family with MTP speculative-decoding pairs. Plus an interactive CLI chat mode and RAG source citations in agent responses.
- June 2026: Distributed mode hardening: prefix-cache-aware routing, a production-ready request router with auto-sized embedding/rerank batches, ds4 layer-split distributed inference, NATS JWT auth + TLS/mTLS, and resumable file uploads.
- May 2026: LocalAI 4.3.0 -
llama.cppprompt cache on by default (repeated system prompts collapse from minutes to seconds), keyless cosign signing of backend OCI images, per-API-key + per-user usage attribution, Distributed v3 with per-request replica routing. Release notes - May 2026: LocalAI 4.2.0 - LocalAI sees and hears: voice recognition, face recognition + antispoofing liveness, speaker diarization. Plus drop-in Ollama API, video generation, redesigned UI with i18n + admin-configurable branding, vLLM at feature parity with llama.cpp, and 11 new backends. Release notes
- April 2026: LocalAI 4.1.0 - LocalAI becomes a control tower: distributed cluster mode with VRAM-aware smart routing + autoscaling, multi-user platform with OIDC and API keys, per-user quotas with predictive analytics, in-UI fine-tuning with TRL (auto-export to GGUF), on-the-fly quantization backend, visual pipeline editor. Release notes
- March 2026: LocalAI 4.0.0 - native agentic orchestration with the new Agenthub community hub, full React UI rewrite with Canvas mode, MCP Apps + client-side with tool streaming, WebRTC realtime audio, MLX-distributed. Release notes
- February 2026: Realtime API for audio-to-audio with tool calling, ACE-Step 1.5 support
- January 2026: LocalAI 3.10.0 — Anthropic API support, Open Responses API, video & image generation (LTX-2), unified GPU backends, tool streaming, Moonshine, Pocket-TTS. Release notes
- December 2025: Dynamic Memory Resource reclaimer, Automatic multi-GPU model fitting (llama.cpp), Vibevoice backend
- November 2025: Import models via URL, Multiple chats and history
- October 2025: Model Context Protocol (MCP) support for agentic capabilities
- September 2025: New Launcher for macOS and Linux, extended backend support for Mac and Nvidia L4T, MLX-Audio, WAN 2.2
- August 2025: MLX, MLX-VLM, Diffusers, llama.cpp now supported on Apple Silicon
- July 2025: All backends migrated outside the main binary — lightweight, modular architecture
For older news and full release notes, see GitHub Releases and the blog.
Features
- Text generation (
llama.cpp,transformers,vllm... and more) - Text to Audio
- Audio to Text
- Image generation
- OpenAI-compatible tools API
- Realtime API (Speech-to-speech)
- Embeddings generation
- Constrained grammars
- Download models from Huggingface
- Vision API
- Object Detection
- Reranker API
- P2P Inferencing
- Distributed Mode — Horizontal scaling with PostgreSQL + NATS
- Model Context Protocol (MCP)
- Chats — Conversations the server keeps, with saved agents, triggers, skills, files and a Telegram connector
- Backend Gallery — Install/remove backends on the fly via OCI images
- Voice Activity Detection (Silero-VAD)
- Integrated WebUI
Supported Backends & Acceleration
LocalAI supports 60+ backends including llama.cpp, vLLM, SGLang, transformers, whisper.cpp, diffusers, MLX, MLX-VLM, and many more. Hardware acceleration is available for NVIDIA (CUDA 12/13), AMD (ROCm), Intel (oneAPI/SYCL), Apple Silicon (Metal), Vulkan, and NVIDIA Jetson (L4T). All backends can be installed on-the-fly from the Backend Gallery.
See the full Backend & Model Compatibility Table and GPU Acceleration guide.
Backends built by us
Most backends wrap a best-in-class upstream engine. A handful of them are native C/C++/GGML engines (no Python at inference) developed and maintained by the LocalAI project itself:
| Backend | What it does |
|---|---|
| vllm.cpp | From-scratch C++20 port of vLLM for text generation: paged KV cache, continuous batching, prefix caching, safetensors + GGUF loading, engine-enforced structured output, on CPU, CUDA, Metal and Vulkan. Also serves MiniMax-H3 joint video+audio generation |
| parakeet.cpp | C++/GGML port of NVIDIA NeMo Parakeet ASR (tdt/ctc/rnnt/hybrid), with cache-aware streaming transcription |
| moss-transcribe.cpp | C++/GGML port of OpenMOSS MOSS-Transcribe-Diarize: joint long-form transcription, speaker diarization and timestamping in a single pass |
| moss-tts.cpp | C++/GGML port of the OpenMOSS MOSS-TTS family: text-to-speech (MOSS-TTS-Local v1.5, 48 kHz stereo) with reference-audio voice cloning, through the MOSS-Audio-Tokenizer neural codec |
| magpie-tts.cpp | C++/GGML port of NVIDIA's Magpie TTS Multilingual 357M: 22.05 kHz mono text-to-speech in 5 voices and 9+ languages, with the NanoCodec neural codec and tokenizer/G2P embedded in a single GGUF |
| ced.cpp | C++/GGML port of the CED audio-tagging models: sound-event classification (527-class AudioSet) over REST and the realtime API for live recognition |
| voice-detect.cpp | Speaker recognition and voice analysis (ECAPA-TDNN, WeSpeaker, ERes2Net, CAM++, wav2vec2 age/gender/emotion), replacing the Python speaker-recognition backend |
| voxtral-tts.c | Mistral Voxtral-4B-TTS text-to-speech in pure C: 20 preset voices across 9 languages, 24 kHz WAV output, no dependencies beyond libc |
| vibevoice.cpp | Native port of Microsoft VibeVoice for TTS (voice cloning) and long-form ASR with speaker diarization |
| rf-detr.cpp | Native RF-DETR object detection and instance segmentation |
| locate-anything.cpp | Open-vocabulary object detection and visual grounding (LocateAnything-3B) |
| depth-anything.cpp | Depth Anything 3 monocular metric depth + camera pose estimation |
| face-detect.cpp | Face detection, recognition, demographics and anti-spoofing (SCRFD/ArcFace, YuNet/SFace), replacing the Python insightface backend |
| timestral.cpp | Mistral Timestral time-series forecasting: quantile forecasts with covariates, on the CPU |
| free-splatter.cpp | Pose-free 3D reconstruction (FreeSplatter): turns a handful of plain photos into 3D Gaussians, no camera poses or GPU required |
| trellis2.cpp | C++/GGML port of Microsoft TRELLIS.2: single-image to textured 3D mesh (GLB with PBR materials) |
| gem-x.cpp | Live human motion capture with SOMA and SMPL pose streams (CPU/Vulkan) |
| kimodo.cpp | C++/GGML text-to-motion on CPU and Vulkan, exported as animated skeleton GLB |
| privacy-filter.cpp | Standalone GGML PII/NER token-classification engine powering LocalAI's PII redaction tier |
| LocalVQE | Joint acoustic echo cancellation, noise suppression, and dereverberation |
| local-store | Local-first vector database for embeddings (shipped in-tree) |
We also maintain apex-quant, a per-tensor, per-layer quantization recipe for Mixture-of-Experts models that exploits their structural sparsity to produce GGUFs matching or beating Q8_0 quality - and they run out of the box on stock llama.cpp.
Resources
- Documentation
- LLM fine-tuning guide
- Build from source
- Kubernetes installation
- Integrations & community projects
- Installation video walkthrough
- Blog: release write-ups, benchmarks and engineering notes
- Examples — including the realtime voice assistant demo (Go client for the Realtime API with tool calling)
Team
LocalAI is maintained by a small team of humans, together with the wider community of contributors.
- Ettore Di Giacinto — original author and project lead
- Richard Palethorpe — maintainer
A huge thank you to everyone who contributes code, reviews PRs, files issues, and helps users in Discord — LocalAI is a community-driven project and wouldn't exist without you. See the full contributors list.
Citation
If you utilize this repository, data in a downstream project, please consider citing it with:
@misc{localai,
author = {Ettore Di Giacinto},
title = {LocalAI: The free, Open source OpenAI alternative},
year = {2023},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://github.com/go-skynet/LocalAI}},
Sponsors
Do you find LocalAI useful?
Support the project by becoming a backer or sponsor. Your logo will show up here with a link to your website.
A huge thank you to our generous sponsors who support this project covering CI expenses, and our Sponsor list:
Individual sponsors
A special thanks to individual sponsors, a full list is on GitHub and buymeacoffee. Special shout out to drikster80 for being generous. Thank you everyone!
License
LocalAI is a community-driven project created by Ettore Di Giacinto and maintained by the LocalAI team.
MIT - Author Ettore Di Giacinto [email protected]
Acknowledgements
LocalAI couldn't have been built without the help of great software already available from the community. Thank you!
- llama.cpp
- https://github.com/tatsu-lab/stanford_alpaca
- https://github.com/cornelk/llama-go for the initial ideas
- https://github.com/antimatter15/alpaca.cpp
- https://github.com/EdVince/Stable-Diffusion-NCNN
- https://github.com/ggerganov/whisper.cpp
- https://github.com/rhasspy/piper
- exo for the MLX distributed auto-parallel sharding implementation
Contributors
This is a community project, a special thanks to our contributors!