VS Tip AppAI Tools · Navigation Apps · Banking Apps · Smart Reviews
English

Local LLM Tools Comparison 2026: Ollama vs LM Studio vs llama.cpp vs vLLM vs Jan

Local LLM tools compared in August 2026 — Ollama, LM Studio, llama.cpp, vLLM and Jan side by side

As of August 2026, running a large language model on your own laptop or your own server is no longer a hobbyist’s weekend experiment. The company that can’t upload internal documents to a third-party API, the solo developer trying to shave hundreds of thousands of won — a few hundred dollars — off a monthly API bill, the engineer who wants a coding assistant that still works at 35,000 feet: they all end up at the same question. “So what do I actually run it with?” This is a local LLM tools comparison written to answer exactly that, using only data verified directly from each project’s official release and pricing pages on 2 August 2026.

Five tools realistically make the shortlist in this category: Ollama, LM Studio, llama.cpp, vLLM, and Jan. Even the GitHub star counts show how neatly these five have carved up the market. Queried straight from the GitHub API on 2 August 2026: Ollama 177,543, llama.cpp 122,385, vLLM 87,913, and Jan 43,808. (LM Studio shouldn’t be compared on stars at all — the app itself is closed source. All that’s public is the lms CLI and the SDK, at 5,138 stars.)

Three big things changed in this market in the first half of 2026. First, the “local-only means completely free” equation broke. Ollama now runs paid Pro/Max/Team subscriptions, and LM Studio sells metered cloud credits by the token. Second, MLX has effectively become the standard backend on Apple Silicon — Ollama (since 0.19), LM Studio, and Jan (since 0.7.7) have all adopted it. Third, everything is turning into an agent. Type nothing but ollama in 0.32.0 and an agent launches; LM Studio shipped a separate agent product called Bionic.

This guide covers all five tools across latest versions and licensing, measured benchmarks, pricing, hardware constraints, and final recommendations by user type — at length, without cutting corners. Chapter 6 in particular corrects six widely repeated claims that a lot of the material still circulating gets flatly wrong. The short version: 80% of this decision comes down to one question — are you the only user, or will several people hit it at once?


1. Executive Summary: The Five Big Local LLM Tools at a Glance, August 2026

For readers short on time, here are the core specs of all five compressed into a single table. Every version, price, and license below was verified directly against official sources on 2 August 2026.

📊 Head-to-Head Comparison of the Top 5 Local LLM Runners, August 2026

CategoryOllamaLM Studiollama.cppvLLMJan
Core design philosophy#1 one-line CLI model launcher#1 all-in-one GUI desktop, no terminal#1 pure inference engine everything else is built on#1 throughput for multi-user production serving#1 open-source GUI + MCP agent
Latest version (2026-08-02)v0.32.5 (27 July)0.4.20b10226 (2 August build)v0.26.0 (25 July)v0.8.4 (July)
LicenseMITApp itself closed source / CLI & SDK MITMITApache-2.0Apache 2.0
GitHub stars177,543 (#1)5,138 (CLI only, not comparable)122,38587,91343,808
Cost to run locallyFree, unlimitedFree (including at work)Completely freeCompletely freeCompletely free
Paid tier?Pro $20/mo plus other cloud plansCloud, metered per tokenNoneNoneNone
InterfaceCLI-first (+ agent)GUI-first (+ lms CLI)Direct control of builds and flagsServer / Python APIGUI-first (+ Jan CLI)
OpenAI-compatible API✅ Default port 11434✅ Built-in server✅ Default port 8080✅ Standard✅ Port 1337
Supported model formatsOwn registry (GGUF lineage) + MLXGGUF + MLXGGUF (the original)HF safetensors · FP8 · AWQ · GPTQ (GGUF is an experimental out-of-tree plugin)GGUF + MLX
Concurrent servingParallel slots via OLLAMA_NUM_PARALLEL (default 1), no PagedAttentionContinuous batching (since 0.4.0)Parallel decoding via -npStrongest (PagedAttention)Weak
Apple Silicon / MLX✅ (the MLX preview backend requires more than 32GB unified memory; below that it runs the existing Metal path)✅ (dual llama.cpp + MLX backends)✅ (Metal)❌ Separate vLLM-Metal project✅ (native MLX since 0.7.7)
Windows support✅ (including ARM64 CUDA)❌ Not on the official support list
Biggest strengthUnmatched ecosystem and model registryVisual quantization picker, usable on installWidest backend coverage, densest feature setCrushes everything on concurrent throughputFully open-source GUI + MCP
Biggest weaknessPaid cloud tiers blur the storyThe app isn’t open sourceSteep learning curve, you build it yourselfMac and Windows effectively excludedSmaller ecosystem
Best fitIndividual developers, rapid prototypingNon-developers, GUI-preferring professionalsEngineers, squeezing low-spec hardwareInternal services, multi-user APIsOpen-source purists, agent experimenters

The three rows to read first in this table are concurrent serving, Apple Silicon / MLX, and supported model formats. Nearly every tooling disaster I’ve seen in the wild starts with someone skipping those three lines: burning a day trying to install vLLM on a MacBook, or standing up an internal chatbot on stock Ollama settings and then asking why it’s so slow once concurrent requests climb into the dozens.

The supported model formats row deserves special attention, because it’s the single biggest lock-in factor in this category and almost every comparison leaves it out. Ollama, LM Studio, llama.cpp, and Jan all share the GGUF (+MLX) ecosystem — but vLLM is built around HF safetensors and friends (FP8, AWQ, GPTQ), and its GGUF support has been pulled out of the main codebase into the out-of-tree vllm-gguf-plugin. vLLM’s own documentation calls it “highly experimental and under-optimized,” and recommends taking the tokenizer from the base model rather than from the GGUF file. In practice that means the first four tools can pass model files back and forth freely, while a move to vLLM requires re-acquiring your entire model library.


2. Local LLM Runners Compared: A Deep Dive on Core Capabilities

Once you understand what each tool was built to be good at, the choice gets much easier. These five aren’t really competitors so much as different layers of the same stack. LM Studio and Jan both use llama.cpp as an internal engine, and Ollama itself started out on llama.cpp-lineage technology.

🦙 1) Ollama — #1 One-Line CLI Model Launcher

💠 2) LM Studio — #1 All-in-One GUI Desktop, No Terminal Required

⚙️ 3) llama.cpp — #1 Pure Inference Engine That Everything Else Is Built On

🚀 4) vLLM — #1 Throughput for Multi-User Production Serving

🟣 5) Jan — #1 Open-Source GUI + MCP Agent


3. Benchmark Showdown: Throughput, Latency, and Apple Silicon

Now the numbers. What matters here isn’t “who’s fastest” — it’s “fastest under which conditions.” The moment you strip the conditions out and publish a ranking, the benchmark becomes a lie.

Which is why the star ratings below are not measurements. They’re a qualitative assessment based on architecture — whether a tool has PagedAttention, continuous batching, and parallel slots — and they are a different kind of claim from the measured tables that follow. Don’t convert star counts into tok/s multipliers.

[Total throughput under concurrent load — qualitative, architecture-based]
vLLM        : ⭐⭐⭐⭐⭐ (has both PagedAttention and continuous batching)
llama.cpp   : ⭐⭐⭐⭐☆ (-np parallel slots + router mode; no PagedAttention)
LM Studio   : ⭐⭐⭐☆☆ (continuous batching since 0.4.0; #1 among GUI tools)
Ollama      : ⭐⭐⭐☆☆ (parallel slots via OLLAMA_NUM_PARALLEL, but default is 1)
Jan         : ⭐⭐☆☆☆ (optimized for one person, one request at a time)

※ The gap between Ollama and llama.cpp is not "has the feature vs. doesn't."
  It comes from the default (Ollama ships 1 slot) and from the absence of
  PagedAttention. Ollama can enable parallel slots with one env var, but with
  no paged KV cache, adding slots wastes cache and the curve flattens earlier.

[Perceived responsiveness when you're the only user (batch size 1) — qualitative]
Ollama      : ⭐⭐⭐⭐⭐ (no scheduler queuing overhead, so first token arrives fast)
llama.cpp   : ⭐⭐⭐⭐⭐ (highest ceiling once you tune it yourself)
LM Studio   : ⭐⭐⭐⭐☆ (especially strong on Mac when running MLX-format models)
Jan         : ⭐⭐⭐⭐☆ (gap narrowed considerably since native MLX support)
vLLM        : ⭐⭐⭐☆☆ (no advantage on single requests; TTFT is actually worse)

📈 3-1. Apple Silicon: Measured Ollama MLX Numbers (Official First-Party Data)

The most trustworthy figures available are the MLX benchmarks Ollama published on its official blog. The conditions: Apple M5-class chips (M5 / M5 Pro / M5 Max, with GPU Neural Accelerators), running Qwen3.5-35B-A3B.

MetricOllama 0.18 (Q4_K_M)Ollama 0.19 (NVFP4)Ollama 0.19 (int4)
Prefill (prompt processing)1,154 tok/s1,810 tok/s1,851 tok/s
Decode (token generation)58 tok/s112 tok/s134 tok/s

That’s roughly a 1.9× to 2.3× improvement on decode. But do not read this table as “just update Ollama and get 2×.” Look at the column headers again: the 0.18 column is Q4_K_M while both 0.19 columns are NVFP4 and int4. These figures reflect a version bump plus a switch to NVFP4/int4 quantized models, and if you keep running your existing Q4_K_M GGUF and only upgrade Ollama, you will not see this. The official blog states the conditions plainly — Qwen3.5-35B-A3B quantized to NVFP4, compared against the previous implementation quantized to Q4_K_M on 0.18. To actually see this gain on a Mac you need the Ollama update and the quantization format change together, and the honest range is roughly 1.9×–2.3×. Separately, this MLX path only opens on Macs with more than 32GB of unified memory. A 16GB MacBook Air isn’t excluded from running Ollama — it runs the existing Metal path; it just doesn’t get the gains in this table.

📈 3-2. vLLM vs Ollama: The Gap That Concurrency Creates

Several benchmark write-ups report that on an NVIDIA A100 under 128 concurrent requests, vLLM hit roughly 793 tok/s against Ollama’s roughly 41 tok/s, with P99 latency of 80ms for vLLM versus 673ms for Ollama. At 8 concurrent requests the reported figures were 187 tok/s for vLLM against 82 tok/s for Ollama (about 2.3×), and at 64 concurrent users total throughput reportedly differed by roughly 8–9×.

Do not put these numbers in the same class as the Ollama MLX table above. They’re second-hand figures whose original benchmark documents I could not verify, and not one of them states the model, quantization, context length, or Ollama’s parallel slot setting (OLLAMA_NUM_PARALLEL). This chapter opened by saying that a ranking stripped of its conditions becomes a lie, so the same yardstick has to apply here. In particular, if the Ollama side was measured at its default of 1 slot, a meaningful share of that 8–9× gap may be configuration, not architecture. Don’t quote the exact multipliers; take the direction only. If you need real numbers for your own environment, running vllm bench serve alongside an identically configured Ollama measurement will beat any figure cited in this article.

The direction itself is consistent across sources and technically sound. It comes down to three sentences.

  1. At batch size 1 — that is, when you’re the only user — Ollama and vLLM produce essentially the same tok/s. The difference is somewhere between single digits and 20%, and Ollama, having no scheduler queuing overhead, often delivers a faster time to first token (TTFT).
  2. As concurrency climbs, vLLM’s throughput curve keeps sloping smoothly upward while Ollama’s flattens comparatively early. But “Ollama has no parallelism” is simply false. Raising OLLAMA_NUM_PARALLEL turns on parallel slots, and moving off the default of 1 alone changes the curve substantially. What remains after that comes from the absence of PagedAttention (a paged KV cache) and continuous batching — and that part no environment variable can close.
  3. So the conclusion is: “there’s no reason to use vLLM if you’re alone, and no alternative to vLLM once concurrent requests climb into the dozens.” In between, Ollama’s parallel slots, llama.cpp’s -np, or LM Studio 0.4.0+ continuous batching will carry you comfortably. The concrete thresholds are laid out in tip ⑧ of chapter 6.

📈 3-3. MLX vs llama.cpp, and the Gap Between Mac Generations

For Mac users, choosing the backend is choosing the performance. Second-hand benchmarks put MLX 20–87% ahead of llama.cpp, with sustained short-context throughput reported at roughly 230 tok/s for MLX versus roughly 150 tok/s for llama.cpp.

There’s one more frequently quoted data point. Running Qwen3-Coder-30B-A3B on a Mac mini M4 Pro (64GB), MLX reportedly hit roughly 130 tok/s against 43 tok/s for Ollama on the llama.cpp backend — about a 3× difference. That 3× is not measuring the same thing as the 20–87% band above. The band compares MLX against llama.cpp directly; the 3× case compares MLX against “llama.cpp as reached through the Ollama runtime,” so it’s a single data point combining the backend difference with Ollama’s runtime overhead. Splicing the two together into “MLX is 3× faster” overstates it.

Hardware generation matters too. According to llmcheck.net’s aggregated data, the M5 Max delivers roughly +28% tok/s over the M4 Max: 82 tok/s versus 64 tok/s on Llama 3 8B Q4, and 58 tok/s versus 45 tok/s on Qwen 3.5 30B-A3B Q4. Mid-size models (14–35B) land around 35–55 tok/s on an M4 Pro with 24GB, and the M5 Max with 128GB has roughly 600GB/s of memory bandwidth. These numbers make one fact plain: what determines local LLM performance is memory bandwidth and capacity, not GPU core count.

The practical takeaway is straightforward. If you’re on a Mac, pick a tool with MLX support (Ollama 0.19+, LM Studio, or Jan 0.7.7+) and download MLX-format models. Changing nothing but the backend on identical hardware is worth 20–87% (most reported cases land in the 30–50% range). Larger gaps like the 3× case above do occur, but that one bundles in runtime overhead, so set your expectations by the band rather than the outlier. On an NVIDIA GPU server, conversely, MLX is irrelevant — there you simply choose between Ollama and vLLM based on how much concurrency you need.


4. Pricing Compared in Full: Where Exactly Does “Free” End?

This is the most misunderstood corner of the category in 2026. The short answer: running any of the five locally is free, and the paid parts are strictly cloud inference add-ons.

[Pricing structure of local LLM tools, August 2026]
- llama.cpp   : $0   (no paid tier, no cloud, no subscription. Pure OSS)
- vLLM        : $0   (software is free; the cost is entirely your own GPU infrastructure)
- Jan         : $0   (desktop free, no subscription; external APIs billed by that provider)
- LM Studio   : $0   (free locally and at work / cloud is metered per token)
- Ollama      : $0   (unlimited free locally / cloud Pro from $20 per month)

💰 4-1. Ollama’s Official Pricing

PlanPriceWhat you get
Free$0Unlimited local models. Cloud models capped at “light usage,” 1 concurrent request
Pro$20/mo ($200/yr)Access to large cloud models, 3 concurrent, 50× the cloud usage of Free, private model upload and sharing
Max$100/moNew signups paused. Existing subscribers retained, 10 concurrent, 5× the usage of Pro
Team$25 per seat/mo (5-seat minimum)Consolidated billing, zero data retention and no logging, priority support
EnterpriseContact salesVolume discounts, security and procurement support

The eye-catching detail is that the Max plan has signups closed. It reads as a signal that demand is outrunning capacity, which means the practical choices for anyone starting today are Free, Pro, and Team. Note also that Ollama publishes prices in USD only — there is no official local-currency price list. Figures like “about ₩20,000-something a month” floating around Korean blogs are just someone’s conversion of the $20 number, so if you’re billed in another currency, check what your card issuer’s FX rate actually charges before you commit.

💰 4-2. LM Studio’s Pricing Structure

TierPriceWhat you get
Free (local)$0Local LLM execution, offline voice transcription, the Bionic agent, llama.cpp and MLX backends, web search (ZDR when signed in), LM Link on up to 5 devices
Pay-as-you-goMetered per tokenUS-based inference, zero data retention by default
Bionic PassUnannouncedOfficial wording: “Pricing and plan details coming soon”

Cloud pay-as-you-go rates (per 1M tokens, USD)

ModelInputCachedOutput
Kimi K3$3.00$0.30$15.00
GLM 5.2$1.50$0.30$4.50
Kimi Code K2.7$0.95$0.16$4.00
DeepSeek V4 Pro$1.74$0.15$3.48
Kimi K2.6$0.95$0.16$4.00

Cached rates drop to as little as a tenth of the input price, so for any workload that reuses the same system prompt over and over, the effective cost changes dramatically. If you want to go deeper on cloud model pricing, our ChatGPT vs Claude vs Gemini vs DeepSeek AI model comparison covers the frontier-model side of the pricing picture.

💰 4-3. The Real Cost Isn’t on Any Price List

Here’s the crux. The real cost of a local LLM isn’t software — it’s hardware, electricity, and human time.

First, hardware. Two separate things routinely get conflated here, so let’s split them. Ollama’s MLX acceleration requires more than 32GB of unified memory — but that’s a gating condition on Ollama’s MLX backend, not a hardware requirement for 30B-class models. A 30B-class model itself runs at 35–55 tok/s on an M4 Pro with 24GB (see 3-3). A sub-32GB machine isn’t excluded from this performance conversation; it just falls back to the existing Metal path instead of Ollama’s MLX route. That said, since local LLM performance is governed by memory bandwidth and capacity, running big models comfortably still costs money — a Mac with generous unified memory or an NVIDIA GPU with enough VRAM. Whether it makes sense to buy a machine costing several thousand dollars to avoid a $20 monthly subscription depends entirely on how often you’ll use it.

There’s one more cost that rarely shows up on anyone’s spreadsheet: model format migration. Ollama, LM Studio, llama.cpp, and Jan can all reuse the same GGUF files, but the moment you move to vLLM, your GGUF library does not come with you. vLLM’s GGUF support has been pulled out of the main codebase into an out-of-tree plugin and remains experimental, so in practice you re-download HF safetensors (FP8/AWQ/GPTQ) builds instead. With individual models running from a few GB to tens of GB, that’s fresh download time, fresh storage, and fresh validation time — and you’ll need to point the tokenizer at the base model separately. You cannot write about “costs that aren’t on the price list” and leave this one out.

Second, vLLM’s cost structure is especially easy to misread. The software is completely free under Apache-2.0, but vLLM only justifies its existence on datacenter-class GPUs. Which means vLLM’s true cost is the full hourly rate of your GPU instances. Flip that around, though: if you already own those GPUs and multiple users are hitting them, vLLM multiplies throughput on the same hardware and becomes a tool for driving down cost per GPU.

Third, operational time. llama.cpp costs nothing, but you’re handling build options and flags yourself, and on a project where build tags change several times a day you have to track “which build actually worked” on your own. LM Studio, by contrast, is usable the moment it installs. Once you price in an engineer’s hourly rate, the free tool isn’t always the cheapest tool.


5. Final Recommendations by User Type

Based on everything above, here are the optimal choices for real-world situations. Read only this chapter and you’ll still get your answer.

🎯 1) Non-developers, product managers, and researchers trying local LLMs for the first time

🎯 2) Individual developers who live in the CLI and swap between models constantly

🎯 3) Teams running an internal chatbot or RAG API above 10 concurrent requests

🎯 4) Engineers pushing low-spec, edge, or embedded devices to the limit

🎯 5) Users bound by open-source principles, or experimenting with MCP agents

🎯 6) Developers who want a coding assistant that works offline

🎯 7) Organizations whose security policy forbids data leaving the device


6. Practical Tips & Common Mistakes (What Most Guides Still Get Wrong)

This is the most practically useful chapter in the guide. Below are six claims that a great deal of the material still in circulation gets wrong — Korean-language guides especially, but plenty of English ones too — plus hands-on tips, all verified during research.

① “You need a commercial license to use LM Studio at work” → Wrong. The commercial-use license requirement was abolished on 8 July 2025. You can now use it at work for free with no form to submit and no inquiry to send. Yet a lot of guides still repeat the old policy, and there are teams that struck LM Studio off their shortlist purely because of it. If you’re evaluating it for internal use, correct this item first.

② “Jan is AGPLv3” → Wrong. It’s Apache 2.0. Multiple review sites list it as AGPLv3 or MIT, but checking the repository README directly, the license is Apache 2.0. AGPL comes with source-disclosure obligations when you distribute software as a network service, which routinely trips up corporate legal review — and Jan simply isn’t subject to it. If you dropped Jan over licensing, it’s worth another look.

③ “vLLM 1.0 is out” → It isn’t yet. As of August 2026 the latest is v0.26.0, still in the 0.x range. On a project shipping releases every two to four weeks, version pinning is effectively mandatory. Write just vllm in requirements.txt and two weeks later your environment and your teammate’s diverge. Pin an exact version, and read the release notes before you bump it.

④ “Ollama is a completely free, local-only tool” → In 2026 that’s only half true. Local execution is still unlimited and free, but cloud subscriptions exist starting at $20/month for Pro, and the default agent model in v0.32.0 is a cloud model (glm-5.2:cloud). Meaning: absent-mindedly typing ollama and pasting in internal company data can send that data outside your network. In security-sensitive environments, build the habit of explicitly specifying a local model during first-time setup.

⑤ “The latest llama.cpp version is 1.x” → That versioning scheme doesn’t exist. llama.cpp doesn’t use semantic versioning at all — only build tags (bXXXXX). As of 2 August 2026 it’s b10226, and tomorrow it’ll be something else. The practical tip is to record the build tag you verified as working and check that tag out. Pull master every time and a flag that worked yesterday stops working today.

⑥ “Just turn on MLX and your Mac gets twice as fast” → There are two conditions. First, Ollama’s MLX preview backend presupposes a Mac with more than 32GB of unified memory. But restating that as “you can’t use Ollama on a 16GB Mac” is wrong: below the threshold Ollama runs normally on the existing Metal (llama.cpp) path — you just don’t get MLX acceleration. Second, the official blog’s 1.9×–2.3× figures are not the effect of a version bump alone; they reflect switching to NVFP4/int4 quantized models at the same time. Keep running Q4_K_M and only bump the version and you won’t see that range. On 16GB or less, plan around 7–8B-class models with Q4 quantization — and change model size and format before you change tools.

⑦ Memorize the port numbers and you halve your integration headaches. Ollama is 11434, llama.cpp’s llama-server is 8080, and Jan is 1337. All three serve an OpenAI-compatible API, so with existing OpenAI SDK code you only change the base URL and everything works — no need to write a new client. llama.cpp goes further and also exposes an Anthropic-compatible chat route, so Anthropic SDK-based code is reusable too.

⑧ Answer “how many concurrent requests at peak?” before you pick a tool. (The single threshold used throughout this guide.) The most common design mistake is doing this in reverse. I regularly see teams stand up Ollama for an internal service and then add GPUs when it slows down. But the first move is neither a GPU purchase nor a vLLM migration. Per Ollama’s official FAQ, OLLAMA_NUM_PARALLEL — the maximum number of parallel requests each model processes at once — defaults to 1. An untouched Ollama install is effectively serializing your requests, and that kind of slowness is a configuration problem, not a hardware problem. OLLAMA_MAX_LOADED_MODELS, defaulting to 3 × the number of GPUs, is worth checking at the same time.

So the prescription has two steps. (1) Raise OLLAMA_NUM_PARALLEL first, and (2) if the curve still won’t lift, move to vLLM. Reverse that order and you pay for an unnecessary migration plus the cost of re-acquiring every model. What remains after step 1 comes from the absence of PagedAttention and continuous batching, and slot count can’t fix that.

This guide applies the thresholds below consistently in every chapter. The metric is peak concurrent requests, not registered users.

[Single decision threshold, by concurrent request count]
1–4 concurrent requests    → Ollama (tune NUM_PARALLEL) · LM Studio · Jan
5–10 concurrent requests   → llama.cpp -np parallel decoding · LM Studio 0.4.0+ batching
More than 10, or any       → vLLM
service with an SLA

⑨ Don’t ignore deprecation warnings on model tags. Since 11 July 2026, Ollama has printed end-of-support warnings on the default tags for CodeLlama, Qwen2.5 and Qwen2.5-coder, Llama 3.x, Mistral, StarCoder, and DeepSeek-R1. If you copy-pasted from a tutorial and you’re seeing that warning, it’s a signal that the tutorial is at least a year old — and the rest of it is probably stale too.

--tools all demolishes your trust boundary. Enable this llama.cpp flag and the LLM gets direct file system access from the web UI. Powerful for personal experimentation, but in any pipeline that feeds externally sourced documents or web pages into the model, prompt injection turns straight into file access. Do not enable it in any environment that handles external input.

⑪ If vLLM is on your roadmap, budget for re-acquiring your models. “They’re all OpenAI-compatible, so it’s one line of base URL” applies to client code only. Model assets don’t follow. Ollama, LM Studio, llama.cpp, and Jan share the GGUF (+MLX) ecosystem, but vLLM is built around HF safetensors (FP8/AWQ/GPTQ) and its GGUF support has moved out of the main codebase into the out-of-tree vllm-gguf-plugin. The official docs call it “highly experimental and under-optimized,” warn it may be incompatible with other features, and recommend taking the tokenizer from the base model rather than the GGUF. So put three lines in the migration plan: (1) the list of models to re-download and their total size, (2) the download and validation time, and (3) everything whose quality has to be re-verified after the quantization format changes. In practice this is the largest cost in any tool switch.


7. Frequently Asked Questions (FAQ)

Q. In a local LLM tools comparison, which one actually wins?

There’s no absolute winner — only winners per condition. Solo developers: Ollama. Need a GUI: LM Studio. Multi-user serving: vLLM. Extreme hardware coverage: llama.cpp. Open-source principles and MCP agents: Jan. If you force me to name one safe default, Ollama — combining ecosystem scale (177,543 GitHub stars) with ease of use — is a solid first pick.

Q. Which is faster, Ollama or vLLM?

The answer flips depending on the conditions. At batch size 1, when you’re the only user, the two produce effectively identical tok/s, and Ollama — with no scheduler queuing overhead — often returns the first token sooner. As concurrent requests grow, though, vLLM’s throughput keeps climbing while Ollama’s flattens comparatively early. Don’t mistake that for “Ollama has no concurrency features,” though: the official FAQ’s OLLAMA_NUM_PARALLEL sets the number of parallel slots and defaults to 1, so a good share of perceived slowness is simply that value never being raised. What remains after that comes from the absence of PagedAttention and continuous batching. Decide first whether “fast” means throughput or response latency, then compare.

Q. Can I use LM Studio at work for free?

Yes. The commercial-use license requirement was abolished on 8 July 2025, so you can use it at work for free without filling out a form or contacting anyone. The free plan covers local LLM execution, offline voice transcription, the Bionic agent, llama.cpp and MLX backends, and LM Link on up to 5 devices. If you’ve seen an article saying “work use requires a separate license,” that article is out of date.

Q. I want to run local LLMs on a MacBook. Which tool should I use?

On a Mac, the answer is a tool with MLX backend support. Ollama (0.19+), LM Studio, and Jan (0.7.7+) all support MLX. That said, Ollama’s MLX preview backend requires more than 32GB of unified memory. This is where people go wrong: on a 16GB Mac, Ollama doesn’t stop working — you just don’t get MLX acceleration, and the existing Metal (llama.cpp) path runs fine. LM Studio and Jan don’t publish a comparable memory gate on MLX, but the memory ceiling itself applies identically no matter which tool you use. On a 16GB Mac, 7–8B-class Q4 models are the realistic upper bound regardless, and anything at 14B or above is tight even with a reduced context. In other words, the real question on a 16GB Mac isn’t “Ollama or not” — it’s what size and format of model you can load. Don’t use vLLM on a Mac — Apple Silicon GPU support only exists through the separate vLLM-Metal project, not the main codebase.

Q. Can I run vLLM on Windows?

Officially, no. Windows does not appear on the supported hardware list in vLLM’s official installation documentation. Community forks are said to exist, but they aren’t officially supported, which makes them risky in production. If you need multi-user serving on Windows, apply the same thresholds from tip ⑧ in chapter 6. Above 10 concurrent requests, the realistic setup is running vLLM under WSL2 or on a Linux server. In the 5–10 range, LM Studio 0.4.0+ with continuous batching or llama.cpp’s -np parallel decoding handles it perfectly well on Windows itself. In the 1–4 range, raising Ollama’s OLLAMA_NUM_PARALLEL is often all it takes.

Q. Are local LLM tools all free? Are there hidden costs?

Local execution is free on all five. llama.cpp, vLLM, and Jan have no paid tier at all, while Ollama and LM Studio charge only for cloud inference add-ons (Ollama Pro at $20/month, LM Studio metered per token). The real costs are hardware, electricity, operational time, and re-acquiring models. The 32GB figure gets conflated constantly, so to be precise: more than 32GB of unified memory is a condition on Ollama’s MLX backend, not a requirement for 30B-class models. A 30B-class model itself runs at 35–55 tok/s on an M4 Pro with 24GB. Running big models comfortably does cost money in memory capacity and bandwidth, of course, and with vLLM the cost is essentially your datacenter GPU bill, full stop. Finally, since a move to vLLM won’t carry your GGUF model library across, budget the time and storage to re-download tens of gigabytes.

Q. What’s the difference between LM Studio and Jan?

Both are GUI-first desktop tools, but the decisive difference is whether they’re open source. LM Studio’s app itself is closed source — all that’s public on GitHub is the lms CLI and the SDK. Jan, by contrast, is Apache 2.0 end to end. On features, LM Studio leads on the visual quantization picker and on parallel requests via continuous batching, while Jan is stronger on the agent side with inline MCP tool approval and native web_search and web_fetch tools. Organizations that need audits should pick Jan; if convenience comes first, LM Studio.

Q. How do I check the llama.cpp version?

There is no semantic version. It uses build tags in the form bXXXXX instead. As of 08:15 UTC on 2 August 2026 the latest build was b10226, but updates are frequent enough that b10218, b10219, b10221, b10223, and b10224 all landed back-to-back on 1–2 August. In practice, I recommend recording the build tag you’ve verified as working and pinning to it.

Q. Can I port existing OpenAI API code straight to a local model?

Yes, in most cases. All five tools serve an OpenAI-compatible API, so you just point your SDK’s base URL at the local address. The ports are 11434 for Ollama, 8080 for llama.cpp’s llama-server, and 1337 for Jan, while LM Studio and vLLM each provide compatible servers of their own. llama.cpp supports /v1/chat/completions, /v1/completions, /v1/embeddings, and /v1/models, and adds an Anthropic-compatible chat route on top, which makes it especially portable.


8. Conclusion: The 2026 Local LLM Tools Comparison Comes Down to Two Questions

We’ve now gone through all five tools on versions, licensing, performance, pricing, and hardware constraints — and yet the actual decision is remarkably simple. The first question is “how many concurrent requests at peak?” At 1–4, pick whichever of Ollama (with OLLAMA_NUM_PARALLEL tuned), LM Studio, or Jan suits your taste. At 5–10, llama.cpp’s -np or LM Studio’s continuous batching is squarely in range. Above 10, or on any service with an SLA, it’s vLLM. In that last band the remaining gap is hard to close with environment variables, because it comes from the presence or absence of PagedAttention and continuous batching as architecture (though the exact boundaries shift with model size, context length, and SLA — measure once in your own environment). The second question is “can you open a terminal?” If yes, Ollama and llama.cpp open up. If you can’t — or won’t — LM Studio and Jan are what remain.

There are also clear signs the category matured over the first half of 2026. On Apple Silicon, MLX settled in as the standard and decode throughput rose sharply on identical hardware (per Ollama’s official benchmark, 58 tok/s on 0.18 with Q4_K_M → 134 tok/s on 0.19 with int4 — the result of a version bump and a quantization format change together), and all five tools now serve OpenAI-compatible APIs. One thing has to be stated precisely here, though. The API call code is one line of base URL, but your model assets do not follow. Among the first four, GGUF files move across freely and switching really is that cheap — but a GGUF library does not carry over to vLLM (support was pulled from the main codebase into an experimental out-of-tree plugin). If vLLM is anywhere in your plans, budget the model re-acquisition time and storage from the outset.

At the same time, a trend worth watching has emerged. “Local tool = completely free = data never leaves” no longer holds automatically. The default model for Ollama’s v0.32.0 agent is a cloud model, and LM Studio runs cloud credits too. If privacy was your reason for adopting local inference at all, verify that you explicitly specified a local model during setup — and at an organizational level, look first at llama.cpp, which has no cloud component whatsoever, or Jan, the open-source GUI.

Summary: the right pick for your situation

┌─ More than 10 concurrent requests at peak? (Or an SLA-bound service?)
│   └─ YES → vLLM (v0.26.0)
│            ※ Windows unsupported officially; Mac GPU needs separate vLLM-Metal
│            ※ Software is free; the cost is your entire GPU infrastructure
│            ※ GGUF library doesn't transfer — budget model re-acquisition

├─ 5–10 concurrent requests?
│   └─ YES → llama.cpp -np parallel decoding (b10226, MIT)
│            or LM Studio 0.4.0+ continuous batching (0.4.20)
│            ※ Especially realistic when you need multi-user serving on Windows

└─ NO (1–4 concurrent requests / effectively a single user)

    ├─ Comfortable in a terminal?
    │   ├─ YES ─┬─ Safe first choice      → Ollama (v0.32.5, MIT)
    │   │       │                           ※ If it's slow, raise OLLAMA_NUM_PARALLEL (default 1)
    │   │       │                           ※ Mac MLX preview needs >32GB unified memory
    │   │       │                             (below that the Metal path runs fine)
    │   │       │                           ※ Watch out: default agent model is cloud
    │   │       └─ Extreme hardware tuning → llama.cpp (b10226, MIT)
    │   │                                   ※ Most backends, zero paid components
    │   │
    │   └─ NO ──┬─ Convenience first      → LM Studio (0.4.20)
    │           │                           ※ Free for work use since 2025-07-08
    │           │                           ※ On Mac, pick MLX-format models yourself
    │           │                           ※ But the app itself is closed source
    │           └─ Open source / MCP a must → Jan (v0.8.4, Apache 2.0)
    │                                       ※ API port 1337, completely free

    └─ If data absolutely cannot leave the machine
        → llama.cpp (no cloud components at all) or Jan
        → With Ollama / LM Studio, explicitly specify a local model

[Port cheat sheet] Ollama 11434 · llama.cpp 8080 · Jan 1337
[Price cheat sheet] Local is $0 across the board / Ollama Pro $20, Team $25 (per seat)
                    LM Studio cloud is metered per token
[Format cheat sheet] Ollama · LM Studio · llama.cpp · Jan all share GGUF (+MLX)
                     vLLM = HF safetensors · FP8 · AWQ · GPTQ (GGUF experimental plugin)

Local LLMs are no longer a question of “can it be done” — they’re a question of “with what, and under which conditions.” Take the cheat sheet above, pick one today, and install it. Inside the GGUF ecosystem (Ollama, LM Studio, llama.cpp, Jan) you can switch whenever you like with one line of base URL; only a move to vLLM means sourcing your models again. 🚀