AI Model Intelligence
Share
Local Deployment & Hardware

How to Install Ollama on macOS: Apple Silicon, Metal & Homebrew Guide

Updated ยท Sources & corrections

In this guide
  1. 1. Check compatibility and budget memory for the workload
  2. 2. Choose one installation and server lifecycle
  3. 3. Verify the local API and identify its owner
  4. 4. Download one selected model and inspect offload
  5. 5. Apply configuration to the process you actually run
  6. 6. Read the right logs and stop the right owner
  7. Corrections and verification scope
Short answer: choose either the Ollama desktop app or a Homebrew-managed server, then verify which executable and process you are using. Current official requirements list macOS Sonoma 14 or newer, Apple M-series CPU/GPU support, and x86 CPU-only support. Do not infer model speed or capacity from the chip name alone.

This guide covers native macOS installation and local model inference. A Docker container or cloud-backed model is a different deployment. Keep the initial endpoint on loopback and establish one working server before adding a frontend or changing the model store.

1. Check compatibility and budget memory for the workload

sw_vers -productVersion
uname -m
df -h

Compare your machine with the current macOS requirements. They distinguish Apple Silicon acceleration from Intel CPU-only operation. A discrete AMD GPU in an Intel Mac is not evidence of supported Ollama GPU acceleration.

Available memory must accommodate the selected weights, context, runtime and other applications. A model that fits for one prompt length or concurrency level may not fit for another. Use the model-sizing checks in our complete guide, then inspect your own workload. This article does not provide unmeasured token-per-second estimates or universal maximum model sizes.

2. Choose one installation and server lifecycle

PathInstall and startControl the running server
Official desktop applicationDownload the current macOS installer from Ollama, install the app and open it.Use the application’s own controls to quit or restart.
Homebrew formulaInstall the CLI package and explicitly start its service.Use brew services for that package.
Homebrew desktop caskInstall the application cask rather than the formula.Manage it as the desktop app; do not also start a formula service blindly.

Two installed clients can coexist, but that does not mean two servers can both own the same listening address and port. Check the existing owner before starting a second process. Do not terminate processes by name simply because a port is busy.

Desktop application

Use the official macOS download page for the current package. For the documented disk-image installation, mount it and move Ollama into Applications, then open it. The app checks CLI availability and may request permission to add a command link. Installer packaging and prompts can change; follow the current official instructions rather than relying on an old archive filename.

After startup, open a new Terminal window and inspect command resolution:

type -a ollama
ollama --version

Multiple paths are a reason to identify the intended client, not proof of a broken installation. A working CLI does not establish which server it contacts.

Homebrew formula or app cask

If Homebrew is already installed, review its current package information first. The ollama formula and ollama-app cask are distinct packages with potentially different platform availability.

For the formula route, run the installation and start commands only after confirming the app is not already serving the intended port:

brew info ollama
brew install ollama
brew services start ollama
brew services list

Without sudo, Homebrew’s service start registers a user service at login; it is not a guarantee of a server running before any user logs in. See the Homebrew services manual. Do not add sudo just to work around an unidentified startup issue.

For the desktop-cask route, inspect and install the app instead of the formula commands above:

brew info --cask ollama-app
brew install --cask ollama-app

Open the installed application afterward. Package requirements can differ from upstream application requirements, particularly for older Macs; do not assume a formula bottle is available for every upstream-supported system.

3. Verify the local API and identify its owner

lsof -nP -iTCP:11434 -sTCP:LISTEN
curl --fail --show-error --noproxy '*' --connect-timeout 5 --max-time 15 http://127.0.0.1:11434/api/tags

The first command inspects a listening process without stopping it. Inspect that PID in Activity Monitor and compare it with your chosen installation. Permissions can limit process details. The second command checks the native installed-model endpoint directly, bypassing proxy environment variables for this request.

ObservationInterpretation and next step
The CLI is missing, but the API respondsInspect the application link or shell PATH. The reachable server and command resolution are separate checks.
CLI exists, but connection is refusedCheck app/service startup and the configured address before reinstalling.
Port already has a listenerIdentify its PID and lifecycle. A running expected server may require no action.
Models array is emptyThe endpoint responds, but that server reports no installed models. Check its active model store.
CLI and app show different librariesCheck the selected endpoint, process owner and storage configuration; do not immediately redownload or delete weights.

Also inspect any OLLAMA_HOST setting in the shell: a remote CLI destination does not test your Mac’s loopback server. The timeouts above are diagnostic limits, not speed targets. A successful model-list request does not prove inference or GPU use.

4. Download one selected model and inspect offload

The following example downloads a local checkpoint and performs inference. Review its current model card, licence and hardware requirements before running it:

ollama pull llama3.2:3b
ollama run llama3.2:3b "Reply with one short greeting."
ollama ps

The CLI reference documents these operations. Inspect ollama ps while the model remains loaded. The official GPU-inspection explanation distinguishes GPU, CPU and split loading. It does not translate that display into a measured tokens-per-second result. An empty running-model list after unloading can be normal.

If memory pressure increases, reduce the workload or select a smaller compatible checkpoint before assuming an installation error. For an API or frontend overriding context, use our request-context diagnostic. Avoid judging acceleration solely by an Activity Monitor graph or promising a fixed GPU utilisation percentage.

5. Apply configuration to the process you actually run

The desktop app does not automatically inherit a variable exported in an unrelated Terminal session. The official macOS configuration instructions use launchctl and then require an application restart. For example, after preparing an appropriate external model folder:

launchctl setenv OLLAMA_MODELS "/Volumes/FastSSD/OllamaModels"

This changes a launch environment value; it does not copy weights or prove the running app adopted the path. Quit and reopen the intended app, verify the active location and list the library. Recheck after login or reboot rather than assuming an environment change is a persistent storage migration. Follow our model-store migration guide before removing the old copy.

For the Homebrew service, use configuration supported by your installed Homebrew release and inspect its effective service settings. The current services manual documents a per-formula environment file and restart behaviour; do not assume the desktop app and a Homebrew service read settings identically.

6. Read the right logs and stop the right owner

The official app documents its logs under ~/.ollama/logs. Read recent server lines with:

tail -n 80 "$HOME/.ollama/logs/server.log"

That path describes the app’s documented logs, not every custom Homebrew service setup. If the file is absent, check your installation’s actual service configuration. Remove private prompts, credentials and sensitive paths before sharing diagnostics.

To stop a Homebrew-managed instance intentionally, use brew services stop ollama; this also unregisters its normal login startup. Quit the desktop application through its own controls. Stopping either can interrupt active requests. Recheck the port owner if another installation remains active.

Next step: record the installation path, client version, listening PID, API response and one model-request result separately. If a stage fails, use our Ollama troubleshooting guide before changing networking or deleting model data.

Corrections and verification scope

Updated 26 October 2026: removed unsupported speed and maximum-model-size estimates, corrected Intel Mac support to CPU-only, and clarified app versus Homebrew lifecycle and verification. Shell examples were syntax checked; no macOS installation, GPU benchmark or live model test was performed. The original publication date is retained. Read the AI Models News sourcing and correction policy.