All 58 Dependencies
Every package Ollama depends on, ranked by repo health score.
Ollama is a Go-based runtime for downloading, running, and serving large language models locally, backed by Y Combinator (W23). It wraps llama.cpp and a growing set of GPU backends (CUDA, ROCm, Vulkan, Metal, and Apple's MLX) behind a single CLI and REST API, so `ollama run gemma4` is enough to pull a quantized model and start chatting without touching Python, CUDA toolkits, or model-format conversion scripts.
Under the surface, Ollama is a client-server system: a lightweight HTTP server (built on gin) exposes `/api/generate`, `/api/chat`, `/api/embed`, and model-management endpoints, plus an OpenAI-compatible surface so existing OpenAI SDK code can point at `localhost:11434` with minimal changes. A scheduler in the server package tracks loaded models, VRAM budgets, and concurrent requests, deciding when to load, share, evict, or retry a model across available GPUs or fall back to CPU.
Models are distributed as Modelfiles — declarative configs that pin a base GGUF model, system prompt, template, and runtime parameters — and stored as content-addressable blobs pulled from Ollama's own model registry, similar in spirit to how Docker images work. This makes versioning, sharing, and swapping models between machines straightforward without re-downloading multi-gigabyte weights every time.
Beyond local inference, Ollama has grown into an integration hub: it ships CLI launchers for coding agents like Claude Code, Codex, and Copilot CLI, an experimental cloud-offload mode for models too large for consumer hardware, and official client libraries in Python and JavaScript, making it a common default backend for self-hosted chat UIs, RAG pipelines, and agent frameworks.