runner
Open source
free
4.7/5

Ollama

The default first-pull tool for local AI. One-line model installs (`ollama run llama3.1`), an OpenAI-compatible HTTP API, good defaults out of the box. Built on llama.cpp.

By Eruo Fredoline·Last verified Oct 7, 2026·130,000 GitHub stars

Overview

What Ollama actually is

Ollama is a single-binary local LLM server that wraps llama.cpp with a friendly CLI, an HTTP API, and a model registry that auto-resolves slugs like llama3.1:8b to the right GGUF blob. It is not a new inference engine — every token Ollama emits comes out of llama.cpp under the hood. What Ollama provides on top is the operator experience: install, ollama run, get tokens.

If llama.cpp is the engine, Ollama is the dashboard, ignition, and gas pump bundled together. That trade — losing some llama.cpp configurability for radically simpler ops — is exactly why it has become the default first-touch local-AI tool for solo developers and homelabs in 2026.

Where it fits in the stack

Ollama sits at the runtime layer for solo and small-team workloads. The typical stack:

  • Frontend: Open WebUI, LibreChat, or any OpenAI-compatible client
  • Server: Ollama exposes http://localhost:11434 with a near-OAI-shaped API
  • Engine: llama.cpp (bundled — you don't install it separately)
  • Hardware: anything llama.cpp supports — CUDA / Metal / ROCm / CPU / Vulkan

It is not the right layer for a multi-tenant production server (use vLLM or SGLang), and it is not the layer to reach for when you need maximum single-stream throughput on a 24 GB consumer card (use ExLlamaV2). It is the layer for "I want a local model behind an OpenAI-compatible URL on this laptop and I want it working in 5 minutes."

Best use cases

  • Solo developer / coding agent backend — pair with Continue.dev, Aider, or OpenHands and route inference through http://localhost:11434/v1. See /stacks/local-coding-agent.
  • Local chat UI host — pair with Open WebUI; both run as Docker containers on the same homelab host.
  • Edge / private inference — running Llama 3.1 8B or Qwen 2.5 7B on an air-gapped workstation.
  • Apple Silicon dev box — Metal backend "just works"; no Xcode dance, no MLX-LM Python env to manage.

OS support

OS Quality Notes
Linux (x86_64) excellent CUDA + ROCm + Vulkan; the production-default path
macOS (Apple Silicon) excellent Metal backend; outperforms CUDA-on-WSL on a per-watt basis
macOS (Intel) good CPU only; usable for 7B-class quants
Windows native good CUDA works; some ROCm gaps
Windows (WSL2) excellent matches native Linux performance

If you're on Windows and your ROCm path errors out, see the WSL2 GPU not detected troubleshooting entry.

Hardware / backend support

Ollama inherits llama.cpp's hardware support, which is the broadest in the local-AI ecosystem:

  • NVIDIA CUDA — full support, ships pre-compiled CUDA binaries for the most common architectures
  • Apple Metal — full support on M-series Macs
  • AMD ROCm — supported on Linux with ROCm installed; Windows ROCm support is improving but spotty
  • CPU-only — usable for 7B-class quants on a modern desktop CPU; expect 5-12 tok/s decode on a Ryzen 9 7950X
  • Vulkan — supported but slower than vendor-native paths; only useful when CUDA/ROCm/Metal are unavailable

Model / quant format support

Ollama is GGUF-only. That's both its biggest strength (one format covers every model in the registry) and its hard ceiling (no AWQ, GPTQ, EXL2, FP8, MLX-4bit). For the deeper picture see /systems/quantization-formats.

The default model registry quants are mostly Q4_K_M — the right balance for most users on most hardware. Use the explicit :q5_K_M / :q8_0 tags when you have spare VRAM or you're running a coding model where the last 2 % of quality matters.

Setup path

The 60-second install:

curl -fsSL https://ollama.com/install.sh | sh
ollama run llama3.1:8b

That's the whole thing on Linux/macOS. On Windows there's a native installer with the same end-state. Inside Docker:

docker run -d -p 11434:11434 --gpus=all -v ollama:/root/.ollama ollama/ollama

If port 11434 is already in use, see Ollama port conflict.

What breaks first

In order of how often you'll hit them:

  1. VRAM exhaustion on context-heavy prompts. Ollama doesn't preflight context length the way a hosted API does. Sending a 32K-token prompt to a model that fits 8K of KV-cache on your card will OOM mid-generation. Run with OLLAMA_NUM_GPU and OLLAMA_KEEP_ALIVE set explicitly when this matters.
  2. Concurrency. Ollama serves one request at a time per loaded model by default. OLLAMA_NUM_PARALLEL raises the cap, but you're still slower than vLLM at 5+ concurrent users.
  3. Custom model imports. Importing a non-registry GGUF works via Modelfile but the syntax is finicky; mismatched chat templates produce silently degraded outputs.
  4. AMD ROCm on Windows. Improving but still the most common cause of "Ollama is using CPU and I don't know why" — see ROCm device error.
  5. Apple Metal context limits. Models advertise 128K context; Metal will swap unified memory to disk before refusing, and your tokens-per-sec collapses without an obvious error.

Alternatives by intent

If you want… Reach for
Same UX, but native AWQ / GPTQ support LM Studio
Same engine, but raw configurability llama.cpp directly
Multi-tenant production serving vLLM or SGLang
Best single-stream tok/s on a 24 GB card ExLlamaV2
Apple Silicon native (no GGUF cost) MLX-LM

Best pairings

  • Open WebUI — the canonical chat frontend; both projects target the same operator persona
  • Continue.dev — VS Code coding-assistant routed at http://localhost:11434
  • Aider — terminal coding agent; Ollama serves the model, Aider drives the edits
  • Mem0 + filesystem MCP — memory + tool layer for agentic workflows; see /stacks/local-coding-agent

Who should avoid Ollama

  • Production multi-tenant serving with >5 concurrent users. Use vLLM.
  • Anyone needing AWQ-INT4 fit on 24 GB cards. Ollama can't load it; pick vLLM or ExLlamaV2.
  • Workloads requiring tensor-parallel multi-GPU scaling. Ollama splits a model across GPUs but doesn't scale linearly; see /guides/running-local-ai-on-multiple-gpus-2026.

Related

Setup guidance

Download from ollama.com/download — macOS, Linux, and Windows (preview) installers available. On Linux: curl -fsSL https://ollama.com/install.sh | sh. After install, Ollama runs as a background service. Pull a model: ollama pull llama3.2. Run interactively: ollama run llama3.2. The service exposes an OpenAI-compatible API at http://localhost:11434/v1/chat/completions. Verify: curl http://localhost:11434/v1/chat/completions -H "Content-Type: application/json" -d '{"model":"llama3.2","messages":[{"role":"user","content":"Hello"}]}'. Ollama handles model download, quantization selection, VRAM/system-memory management, and GPU layer offloading automatically — no manual GGUF selection or config flags needed. First run pulls a ~2 GB Q4 model and starts serving in 2–10 minutes depending on connection speed. Time-to-first-response from zero: ~3 minutes for a 3B model on a typical broadband connection. List models with ollama list, remove with ollama rm <name>. Customize via Modelfile: ollama create my-model -f Modelfile.

Workload fit

Best for: single-user local LLM with zero-config setup, developers who need an OpenAI-compatible local API in under 5 minutes, prototyping and experimentation with different models without manual quantization management, local RAG applications that talk to Ollama's embeddings endpoint, CI/CD pipelines that need a disposable LLM backend with minimal setup, any scenario where "just make it work on my laptop" is the primary requirement. Not suited for: multi-user production serving (use vLLM), latency-sensitive production with concurrency (Ollama queues requests sequentially), fine-tuning operations (Ollama is inference-only), Windows-native deployments without WSL2 (Windows preview is improving but not production-grade), scenarios needing fine-grained scheduler or memory control.

Alternatives

Use Ollama as the default local LLM runtime for single-user scenarios — it has the lowest setup friction of any inference tool and auto-selects quantization appropriate for your hardware. Switch to LM Studio when you want a GUI for model discovery and a visual chat interface alongside the API. Switch to llama.cpp when you need fine-grained control over GPU layer count, context length, flash attention, or speculative decoding parameters — Ollama abstracts these decisions away, which is fast but removes tuning knobs. Move to vLLM when you need multi-tenant production serving with concurrency >1 and the continuous batching throughput that Ollama doesn't provide. Switch to MLX-LM on Apple Silicon when you want native Swift/Apple-ecosystem integration and the best Metal performance; Ollama on macOS uses Metal via llama.cpp but MLX-LM occasionally benchmarks 5–15% faster on throughput.

Troubleshooting + when to switch

Problem: Error: pull model manifest: file does not exist. Fix: Ollama's model library is versioned — the model name may have changed upstream. Check ollama.com/library for the current name (e.g. llama3.2:latest not llama3.2:3b). Use ollama pull llama3.2:latest explicitly. Problem: Server not responding on port 11434 after install. Fix: On macOS, Ollama runs as a menu bar app and starts the server automatically — check the menu bar icon. On Linux, the systemd service may be stopped: sudo systemctl start ollama. On Windows, Ollama runs as a system tray app. Problem: Model loads but produces gibberish output. Fix: You likely have the wrong template format for the model. Ollama auto-detects the chat template from the GGUF metadata but some custom GGUF files lack this. Create a Modelfile with FROM ./model.gguf and explicitly set TEMPLATE to the correct ChatML/Llama3/Mistral format, then ollama create fixed-model -f Modelfile.

Stack & relationships

How Ollama relates to other entries in the catalog — recommended pairings, alternatives, dependencies, and edges to avoid. Each edge carries a one-line operator note from our editorial team.

Ollama ↔ ecosystem

Recommended stack

  • Pairs with
    AnythingLLM

    Default pairing on macOS / Windows. Drop the Ollama host URL into AnythingLLM's settings and pick the model from a dropdown — the most common starting configuration.

  • Commonly deployed with
    Aider

    Aider works fluently against Ollama for single-user coding workflows. No MCP layer needed; Aider talks to git directly.

  • Commonly deployed with
    Continue

    Continue's IDE integration assumes a local OpenAI-compatible endpoint; Ollama is the canonical pairing for individual developers.

Works with

  • Works with
    Open WebUI

    The default chat-frontend pairing for Ollama. Works out of the box; Open WebUI auto-discovers Ollama on localhost.

Alternatives

  • Alternative to
    vLLM

    Different category, common confusion. Ollama is for single-user laptops; vLLM is for production GPU serving. They barely overlap.

  • Alternative to
    LocalAI

    Both are OpenAI-compatible local servers. Ollama is single-purpose (LLM inference, curated models); LocalAI is multi-modal (LLM + embedding + image + audio + TTS) with backend switching per model. Pick LocalAI when you want one endpoint for a heterogeneous stack.

  • Competes with
    LocalAI

    Same OpenAI-API-compatible local server category, different scope. Ollama wins on simplicity; LocalAI wins on multi-modality. Genuine competition for the 'self-hosted multi-purpose AI server' slot.

  • Alternative to
    TabbyAPI

    Both expose OpenAI-compatible APIs locally. TabbyAPI wins on raw single-card EXL2 speed for advanced users; Ollama wins on ergonomics and breadth of quant formats. Pick by quant commitment.

  • Alternative to
    SGLang

    Different categories, common confusion. SGLang is production GPU serving with structured-generation primitives; Ollama is single-user laptop chat. Don't compare on throughput.

  • Alternative to
    LM Studio

    Both are llama.cpp-based local model runners. LM Studio wins on GUI ergonomics; Ollama wins on CLI scriptability + curated model library. Pick by interface preference.

Depends on

  • Depends on
    llama.cpp

    Ollama is a llama.cpp wrapper at the inference layer. Improvements to llama.cpp's quant kernels flow through to Ollama on next release.

Lifecycle

  • Succeeded by
    llama.cpp

    Ollama wraps llama.cpp with curated model pulls and an OpenAI-compatible API. For most users, Ollama is the front of house and llama.cpp is the engine room.

Featured in these stacks

The L3 execution stacks that pick this tool as a recommended component, with the one-line note explaining the role it plays in each.

  • Stack · L3·Workstation tier·Role: Model-swap layer (ad-hoc experiments)
    Build an RTX 4090 AI workstation stack (May 2026)

    Ollama lives next to vLLM, not as competition: it owns the 'I want to try a new model right now' surface. One-line model pulls beat re-rendering vLLM Docker configs every time. Run on a different port (11434) to avoid clashes.

  • Stack · L3·Workstation tier·Role: Model-swap layer (ad-hoc experimentation)
    Build a Mac-native AI stack (May 2026)

    Ollama on Mac uses llama.cpp under the hood — runs alongside MLX-LM for the 'pull a new model right now' workflow. Different role than MLX-LM (Ollama wraps llama.cpp; MLX-LM is the Apple-native path). Both alive on different ports.

  • Stack · L3·Workstation tier·Role: Inference engine (LLM + embeddings)
    Build an offline RAG workstation stack (May 2026)

    Ollama over vLLM for offline RAG: same machine hosts both the LLM and the embedding model with one process; vLLM's production strengths (continuous batching, multi-tenant) don't help a single-user workstation. Pull mxbai-embed-large for embeddings + Qwen 2.5 14B for chat.

  • Stack · L3·Homelab tier·Role: Inference engine
    Build a 16GB VRAM local AI stack (May 2026)

    Ollama over vLLM at this tier: zero-config setup, fits the single-user pattern, and the Q4_K_M quants Ollama defaults to are exactly what fits 16GB. vLLM's continuous-batching wins don't apply to a single-user box.

  • Stack · L3·Workstation tier·Role: Single-user alternative runtime
    Build a local vision-model stack (May 2026)

    Ollama supports vision models (llava family, llama 3.2 vision, qwen 2.5 vl) at the solo-developer tier. Drop-in replacement for vLLM in this stack when concurrency doesn't matter; loses ~30% throughput vs vLLM but wins on setup time.

Featured in these workflows

Full-system workflows that include this tool as part of their service ledger — with the one-line operator note for each.

  • Workflow · System·voice·Role: Inference engine
    Local voice assistant pipeline

    One-line setup; OAI-compatible endpoint; the right tool for solo voice deployments. vLLM is overkill here.

  • Workflow · System·homelab·Role: Inference engine
    Private ChatGPT replacement

    Friendliest local LLM UX. The CLI / API surface matches the OpenAI shape; Open WebUI talks to it natively.

Pros

  • Zero-config setup
  • OpenAI-compatible API
  • Curated model library
  • Cross-platform

Cons

  • Less control than raw llama.cpp
  • Conservative default context length

Compatibility

Operating systems
macOS
Linux
Windows
GPU backends
NVIDIA CUDA
AMD ROCm
Apple Metal
CPU
LicenseOpen source · free

Runtime health

Operator-grade signals on how actively Ollama is being maintained, how fresh its measurements are, and what failure classes operators have flagged. Every label below is anchored to a real date or count — we never infer maintainer activity we can't show.

Release cadence

Derived from the most recent editorial signal on this row.

Active
Updated Oct 7, 2026

28 days since last refresh · source: lastUpdated

Benchmark freshness

How recent the editorial measurements on this runtime are.

0editorial benchmarks

No editorial benchmarks for this runtime yet.

Community reproduction

Submissions that match an editorial measurement on similar hardware.

0reproduced reports

No community reproductions on file yet.

Ecosystem stability

Editorial rating from RunLocalAI — qualitative, not measured.

4.7/5Editorial

Get Ollama

Frequently asked

Is Ollama free?

Yes — Ollama is free to use and open-source.

What operating systems does Ollama support?

Ollama supports macOS, Linux, Windows.

Which GPUs work with Ollama?

Ollama supports NVIDIA CUDA, AMD ROCm, Apple Metal, CPU. CPU-only operation is also possible but typically slower.

Reviewed by RunLocalAI Editorial. See our editorial policy for how we evaluate tools.

Related — keep moving

Before you buy

Verify Ollama runs on your specific hardware before committing money.