One person on one machine, or a team hitting one server? That decides it. Then licence, hardware, ports, security defaults, and where Strata fits. Read Nov 1, 2026.
The question we get most about local AI is "which one should I run?" The useful answer is another question: how many people will use it at the same time? Everything else is detail.
We read each project's README, docs and licence on November 1, 2026 and lined them up. We didn't benchmark any of them, so this page has no speed ranking. What you get is who each tool is for, what it costs, where it runs, what your app connects to and what each does about security. For just the two desktop-friendly ones, see Ollama vs LM Studio; to turn one into a server, see how to run a local model as an API server.
Who should pick which?
Pick Ollama for the quickest start on one machine, LM Studio if you prefer a desktop app, llama.cpp for full control, and vLLM when many people share one server. The decision comes from how each project describes itself, not from a speed test.
A decision path from each project's documented design. Still matches the docs on November 1, 2026. · aliteq research
Ollama
Built for
One person, a service other apps call
Licence
MIT, open source
Serving many users
1 parallel request per model by default
Default port
11434
Login on the API
None built in
llama.cpp
Built for
Control over every setting
Licence
MIT, open source
Serving many users
Auto slots, continuous batching on
Default port
9931
Login on the API
--api-key
LM Studio
Built for
A friendly desktop app
Licence
Free app, closed source
Serving many users
4 concurrent predictions by default
Default port
1234
Login on the API
API tokens, off by default
vLLM
Built for
A server for many users
Licence
Apache-2.0, open source
Serving many users
Continuous batching is the design
Default port
8000
Login on the API
--api-key or VLLM_API_KEY
Built for
Licence
Serving many users
Default port
Login on the API
Ollama
One person, a service other apps call
MIT, open source
1 parallel request per model by default
11434
None built in
llama.cpp
Control over every setting
MIT, open source
Auto slots, continuous batching on
9931
--api-key
LM Studio
A friendly desktop app
Free app, closed source
4 concurrent predictions by default
1234
API tokens, off by default
vLLM
A server for many users
Apache-2.0, open source
Continuous batching is the design
8000
--api-key or VLLM_API_KEY
Do they share an engine?
Mostly yes. Ollama's README lists llama.cpp as its backend, and on Apple Silicon Ollama now runs supported models on its MLX engine by default. LM Studio's docs say it runs models with llama.cpp, and with MLX on Apple Silicon. Only vLLM is a separate engine, written in Python and built for servers.
That matters for one reason. When people say Ollama is "slower" or "faster" than llama.cpp, they are mostly comparing wrappers, defaults and settings around the same core. Treat any speed claim without a stated model, quantization and hardware as noise.
One user: Ollama or LM Studio?
Choose Ollama if you want a service that just runs and that coding tools can call. Choose LM Studio if you'd rather browse models and click Start Server. Both give you an OpenAI-style local API, so your apps won't care which you picked.
Ollama. Install with curl -fsSL https://ollama.com/install.sh | sh on macOS and Linux, or irm https://ollama.com/install.ps1 | iex on Windows. ollama run gemma4 starts a chat, and ollama launch claude wires it into Claude Code (the README also lists Codex, Copilot CLI, OpenCode and Droid). Once it's running, see how to manage local models in Ollama. Ollama also sells cloud models now, and its pricing page (read 1 November) lists no free cloud plan: cloud use is pay-per-token or a subscription, while "Running models on your own hardware is always unlimited." Users on r/ollama report an email saying free accounts move to pay-as-you-go for cloud models from 9 November; local models aren't affected. One catch from our own notes: bare tags can pull a small default size, so name the size you want, as in our Gemma 4 12B guide.
Ollama's pricing page, read Nov 1, 2026: cloud use is paid, local use is unlimited.
LM Studio. A desktop app for macOS, Windows and Linux with a built-in model browser and a local server. Its docs list Apple Silicon Macs on macOS 14 or newer, Windows on x64 (with AVX2) or ARM, and Ubuntu 20.04 or newer; Intel Macs aren't supported. For servers with no screen there's llmster, the headless version.
The licence is the thing to read. LM Studio is free to download but isn't open source. Its app terms (version of August 23, 2026) grant a licence "solely for Your personal and / or internal business purposes". We're not lawyers, so read the terms before you build a product on it.
You want every dial: llama.cpp
llama.cpp is the engine itself: the most hardware options, the most settings and the smallest footprint, in exchange for doing more yourself. It's MIT-licensed and ships builds almost daily; the latest on 1 November was b12024 (31 October).
Its README lists the longest backend table of the four: CUDA for Nvidia, HIP for AMD, Metal for Apple Silicon, plus Vulkan, SYCL for Intel GPUs and plain CPU. It can split a model between GPU and CPU, including keeping mixture-of-experts weights in system RAM.
Its built-in server, llama-server, lists OpenAI-compatible chat completions, responses and embeddings routes, an Anthropic Messages route, automatic slots and continuous batching (on by default). It binds to 127.0.0.1, and the current README gives port 9931 as the default; older builds and many tutorials use 8080, so check which one your build prints. Router mode holds up to 4 models by default. Its docs are candid: "no strong claims of compatibility with OpenAI API spec is being made", though in their experience it works for many apps.
llama.cpp's server README, read Nov 1, 2026: the default port is now 9931, not the 8080 most tutorials show.
A team or an app hitting one model: vLLM
vLLM is built for serving many requests at once. It's Apache-2.0, and its README lists continuous batching, PagedAttention (managing the model's memory so more requests fit), prefix caching and multi-GPU parallelism. The latest release on 1 November was v0.32.0 (18 October).
The trade-offs are real. The quickstart lists Linux as the OS, with Python 3.11 to 3.14; macOS works through a separate project, vLLM-Metal, and no native Windows is listed. The server "currently hosts one model at a time", so a second model means a second server. It listens on port 8000 and can check keys with --api-key or VLLM_API_KEY.
If one person is the only user, vLLM's strengths sit idle and its setup cost is real. If ten people or a busy app share the model, Ollama's default of one parallel request per model is the setting you'd outgrow first. To size the GPU, use our GPU guide for local AI and the cost to run calculator.
DeepSeek's newly released DeepInfer (Apache-2.0) is not a fifth option for home use. Its README lists one model, DeepSeek-V4.1-Flash, on Nvidia SM100 data-center GPUs or Huawei Ascend 950 NPUs, and says the KV cache system and prefill/decode disaggregation are not included in this release.
A model bigger than your VRAM: where Strata fits
Strata is the engine people moved to in October for big mixture-of-experts models on gaming GPUs. Its README (MIT licence, v0.2.9 installers, read 1 November) describes it as running "Qwen3.8-Flash-Next on any consumer hardware" with one-click installers for Windows and Linux, plus a Mac build. It also lists Qwen3.6-35B-A3B and DeepSeek-V4.1-Flash packs, and serves "OpenAI- and Anthropic-compatible APIs" on localhost.
The idea is the one llama.cpp's MoE offload uses, pushed further: the experts that don't fit in VRAM live in system RAM, and for the DeepSeek packs, "What does not fit in memory is read from your SSD", which needs about 245 to 280 GB of free disk. Its GPU list covers Nvidia RTX 20 to 50 series, recent AMD Radeon cards, Intel Arc on Linux, Apple Silicon M1 or newer, Ryzen AI Max (Strix Halo) and DGX Spark.
Its speed table is self-reported. For DeepSeek-V4.1-Flash at 2.00 bits per weight it lists 9 to 11 tokens per second on an RTX 3060 12 GB with 46 GB of RAM, and 4 to 6 on an RTX 5070 12 GB with 64 GB. On r/ollama, one user describes switching from Ollama to Strata and going from slow output to 80 to 100 tokens per second on their setup; that's one person's report, not a test we ran.
Speed has a price, and Strata says so. Its models guide gives Qwen3.8-Flash-Next packs needing 37.6 GB (Q2_0) to 54.8 GB (IQ3_S) of RAM plus VRAM, with quality rated from "good" to "best". For DeepSeek it has a "Faster" mode that "uses 5 of the model's 6 experts per word", which is the default on a PC with 16 GB of graphics memory or less; --full-quality turns it off. Users have noticed: an r/LocalLLM thread on degraded quality since the 0.2.0 beta blames changed defaults, an r/LocalLLaMA thread on Strata's real downsides questions its sampling defaults and quantization loss, and a third, with 223 votes, warns "Do not upgrade Strata!" over breaking changes in a 0.x project run by one developer.
Our read: Strata is fast and young. Try it if a big MoE model doesn't fit your card, check the speed/quality setting, and pin a version that works. If you want the stable route, llama.cpp's MoE offload does the same job more slowly; one r/LowEndLocalAI user reports a 35B MoE at 14 tokens per second on 4 GB of VRAM and 32 GB of RAM. For a shared team server, vLLM and llama.cpp have far longer track records.
What your app connects to
All of them expose an OpenAI-style API on your own machine. You change the base URL and the model name and keep the rest of your client code. Pin the right port (table above), and check that the route you need, such as embeddings or responses, is on the tool's list: Ollama and llama.cpp both describe their OpenAI compatibility as partial.
Is Ollama safe to run in an organization?
On one laptop with defaults, the risk is small: Ollama binds to 127.0.0.1:11434 unless you set OLLAMA_HOST, so other machines can't reach it. The problem is what happens when it's shared. Ollama's FAQ describes no login for its API, and the Docker commands in its own docs publish the port with -p 11434:11434, which on most hosts makes it reachable from the network.
That combination is what this year's CVEs ran through. Per the NVD:
CVE-2026-7482 (CVSS 3.1 score 9.1): Ollama before v0.17.1 could read past a heap buffer while quantizing a crafted GGUF uploaded to /api/create, leaking memory that "may include environment variables, API keys, system prompts, and concurrent users' conversation data". The NVD entry notes that "/api/create and /api/push endpoints have no authentication". Fixed in v0.17.1.
CVE-2026-5757 (CVSS 3.1 score 7.5): an unauthenticated remote heap-memory disclosure in the quantization engine, versions up to 0.13.5.
CVE-2026-42248 and CVE-2026-42249 (NVD score 9.8 each): Ollama for Windows didn't verify update signatures and could write files outside its update folder. CERT Polska confirmed versions 0.12.10 to 0.17.5 as vulnerable and says the maintainers didn't respond with a version range.
In a 20 October r/LocalLLM thread, the author explains why they wouldn't run Ollama in an organization, citing three CVEs this year and the project's handling of them; replies point to unauthenticated API access on default Docker setups. The fair reading of the primary sources: the serious bugs have fixes in current releases, but Ollama is built as a single-user tool. If a team shares it, keep it on the latest version, bind it to localhost or a private network, and put a reverse proxy that checks keys in front. If you need keys built in, llama.cpp's --api-key, vLLM's --api-key and LM Studio's API tokens give you that without extra parts.
What can you run it on?
Mac, Windows and Linux are covered by Ollama, llama.cpp and LM Studio. vLLM is Linux first. llama.cpp lists the widest GPU set; Ollama's Docker docs cover Nvidia, AMD through ROCm, and Vulkan.
Licence, hardware and multi-user design for each tool. Drawn from the docs on October 3, 2026; rechecked November 1, 2026. · aliteq research
LM Studio recommends 16 GB of RAM and at least 4 GB of dedicated VRAM on Windows. Whichever you pick, the model has to fit your memory first. Our cost to run pages show the VRAM a given model needs at each quantization.
The image that ran with an earlier version of this guide.
Quick answers
Which is best for a beginner?
LM Studio if you'd rather click, Ollama if you're fine typing one command. Both run on a normal Mac, Windows or Linux machine and expose a local OpenAI-style API. Read LM Studio's terms if you plan to use it at work.
Is llama.cpp faster than Ollama?
We can't say, because we didn't benchmark them. Ollama's README lists llama.cpp as its backend, so the difference is mostly settings and defaults around the same engine. Be wary of any speed claim that doesn't name the model, quantization and hardware.
Can I serve a team with Ollama?
You can, but read its defaults. OLLAMA_NUM_PARALLEL defaults to 1 request per model, and the API has no login. For many simultaneous users, vLLM or llama.cpp's server is built for it, and both take an API key. If you stay on Ollama, keep it updated and put a key-checking proxy in front.
What is Strata and should I switch to it?
Strata is an MIT-licensed local runner that splits big mixture-of-experts models across VRAM, system RAM and, for its DeepSeek packs, your SSD. Its README lists Nvidia, AMD, Intel Arc, Apple Silicon and Strix Halo support. It's fast but young: its default "Faster" mode on smaller GPUs trades some quality, and users report breaking changes between 0.x versions. Try it if a big MoE model doesn't fit your card and pin a working version; llama.cpp is the stable route.
What is llama.cpp's default port now?
The current llama-server README gives 9931, bound to 127.0.0.1. Older builds and many guides use 8080, so check the address your build prints at startup, or set it with --port.
Can I swap one for another later?
Usually. All of them expose OpenAI-style endpoints, so you change the base URL and the model name. Check that the specific routes you use, such as embeddings, are supported by the one you move to.