A local model is the unlock for everything hosted AI can't touch: client data under NDA, personal documents, air-gapped environments, and zero-marginal-cost experimentation. Ollama makes this a 15-minute install.
Tier: Core · Hands-on time: ~45 minutes
This playbook gets you from nothing to a working, honest setup — including the hardware reality check most tutorials skip.
Hardware reality check — do this first. The model must fit in memory; what you can run well:
Also: ~10 GB free disk, admin rights to install, terminal basics.
If a model runs but your machine swaps (everything freezes, fans roar), the model is too big — drop a size class. A fast small model you actually use beats a large one you avoid.
Install Ollama. Download the installer from the official Ollama site (macOS/Windows), or on Linux:
curl -fsSL https://ollama.com/install.sh | sh
Verify: ollama --version.
Pull a current 7–9B instruct model. Browse the Ollama model library for a current-generation small instruct model (the library front page lists them; names change quarterly — pick the recent one sized to your RAM class):
ollama pull <model-name:8b>
ollama list
Smoke-test in chat.
ollama run <model-name:8b>
Try "Summarize in 3 bullets:" followed by two pasted paragraphs from any document. Exit with /bye. Check resource behavior with ollama ps (shows loaded model and memory) while it runs.
Calibrate honestly — 10 minutes that set correct expectations. Run these and grade the answers:
Use it from other tools. Ollama serves an API on localhost:11434:
curl http://localhost:11434/api/generate -d '{
"model": "<model-name:8b>",
"prompt": "Extract all dates from: Invoice due 15 Aug 2026, issued July 1.",
"stream": false
}'
For JSON extraction add "format": "json". Most local-AI GUIs and editor extensions can point at this endpoint.
Set your defaults. Keep one small fast model and (RAM permitting) one larger model. Update occasionally: ollama pull re-fetches; ollama rm <model> reclaims disk.
ollama run answers a prompt at a tolerable speed with no swapping (ollama ps memory fits your RAM; system stays responsive).curl API call returns valid output — proves other tools can integrate.ollama list shows and what each model costs in GB.localhost:11434 has no authentication. Never bind it to 0.0.0.0 on a shared network without putting a proxy with auth in front.This playbook is the restricted-environment foundation — data never leaves the machine. Additional hardening for strict client environments:
run sessions by default, but your terminal scrollback does — clear it.curl — you can wire it into other playbooks' restricted variants.