What is Ollama?
A local model runner that serves LLMs behind an HTTP API on port 11434, so your code calls a local model like a cloud one.
Guide · AI
A local model is free per token, private by construction, and works offline. It is also slower and weaker than a frontier API. Knowing which jobs fall on which side of that trade is most of the skill.
When local loses: long multi-step reasoning, large-context work, anything where a subtle mistake is expensive, and code generation of any real complexity. Use the frontier API there and stop being precious about it.
The binding constraint is memory. A rough guide for quantised weights:
| RAM / VRAM | Realistic model size | What it is good for |
|---|---|---|
| 8 GB | 3B–7B quantised | Classification, tagging, short rewrites |
| 16 GB | 7B–14B quantised | Drafting, summarising, structured extraction |
| 32 GB | 14B–32B, or a small MoE | Solid general drafting, light code assistance |
| 64 GB+ | 30B+ or mixture-of-experts models | The point where local starts feeling genuinely useful |
Mixture-of-experts models are worth knowing about: they hold a large parameter count in memory but only activate a fraction per token, so throughput feels much closer to a small model than the parameter count suggests. That is the sweet spot on a well-specced laptop.
Quantisation stores weights at lower precision — 4-bit and 5-bit variants being the common choices — which shrinks memory use several-fold for a modest quality loss. Practical rule: a larger model at 4-bit usually beats a smaller model at 8-bit at the same memory budget. Below 4-bit, quality degrades quickly.
Ollama exposes a local HTTP endpoint on port 11434. Scripts should call that, not shell out to the interactive command.
curl http://localhost:11434/api/generate -d '{ "model": "your-model", "prompt": "Summarise this in one sentence: ...", "stream": false, "options": {"temperature": 0.2} }'This matters more than it sounds. The interactive CLI writes progress and control characters to stdout; capturing that from a script produces output that is subtly corrupted in ways that only show up in production. Automations should always talk to the HTTP API. I learned that the annoying way, and it is now a standing rule in my own tooling.
The pattern that works is a two-tier one. A local model does the volume: drafting, tagging, first-pass extraction, overnight batches. A frontier model does the judgement: the final pass, the hard reasoning, anything that ships to a customer. A quality gate sits in between and rejects bad local output before it reaches the expensive step.
That is how my own outreach and automation pipelines run — local model drafts overnight, an automated quality audit quarantines anything that fails its checks, and only the passing output moves forward. The rest of the stack is here →
FAQ
A local model runner that serves LLMs behind an HTTP API on port 11434, so your code calls a local model like a cloud one.
8 GB for 3–7B, 16 GB for 7–14B, 32 GB for 14–32B or a small MoE, 64 GB+ before local really feels capable.
HTTP API, always, for automation. The interactive CLI emits control characters that quietly corrupt captured output.
Lower-precision weights — usually 4-bit or 5-bit. At the same memory, a bigger 4-bit model usually beats a smaller 8-bit one.
High-volume simple work, private data, unattended batches, offline. Frontier APIs still win on hard reasoning and complex code.
Extended thinking mode left on for a mechanical task. Turn it off for batch work and responses drop back to seconds.