How to Configure Ollama Local Models in navin
Use Ollama when you want models to run on this machine with no cloud API key.
navin talks to Ollama through the OpenAI-compatible endpoint at
http://localhost:11434/v1.
What you will build
- Ollama installed and running on port
11434 - at least one pulled model (for example
llama3.2) providers.ollama.apiBasewritten in config- a model preset pinned to
provider: "ollama"
Recommended path: Settings → Providers
Open Settings → Providers → Ollama. The Local Ollama setup panel runs this flow:
- Detect - checks whether the
ollamabinary exists, whether the daemon answers on port11434, which models are already pulled, and whether Navin already hasapiBaseconfigured. - Install - when the binary is missing, offers a platform installer
(
brew,winget, or the official Linux install script) or a link to ollama.com/download. - Start - starts the local server if it is installed but not answering.
- Pull - downloads a recommended model (
llama3.2,qwen2.5-coder:7b,mistral,gemma3:4b,nomic-embed-text) or any model id you type. - Configure / Use - writes
providers.ollama.apiBasewhen missing (http://localhost:11434/v1), creates a model preset for the chosen model, and can make that preset active. A customapiBaseyou already set (LAN host, non-default port) is preserved.
After Use, open Settings → Models if you want to review the active preset, then send a chat message.
Manual CLI path
If you prefer the terminal:
# Install (Linux example - see ollama.com for macOS/Windows)
curl -fsSL https://ollama.com/install.sh | sh
ollama serve
ollama pull llama3.2
curl -sS http://localhost:11434/v1/models
Merge this into ~/.navin/config.json:
{
"providers": {
"ollama": {
"apiBase": "http://localhost:11434/v1"
}
},
"modelPresets": {
"local": {
"label": "Local",
"provider": "ollama",
"model": "llama3.2",
"maxTokens": 4096,
"contextWindowTokens": 32768,
"temperature": 0.2
}
},
"agents": {
"defaults": {
"modelPreset": "local"
}
}
}
Then:
navin agent -m "Hello!"
Most Ollama setups do not need an API key. OLLAMA_API_KEY is optional.
Recommended models
| Model id | Role | Approx. size |
|---|---|---|
llama3.2 | General chat and light coding | ~2 GB |
qwen2.5-coder:7b | Local coding | ~4.7 GB |
mistral | Fast general-purpose | ~4.1 GB |
gemma3:4b | Small everyday tasks | ~3.3 GB |
nomic-embed-text | Free local embeddings / semantic search | ~274 MB |
Pull only what your GPU or RAM can hold. Start with llama3.2 if unsure.
Provider resolution notes
- Pin
provider: "ollama"in the preset. Generic names such asllama3.2do not always auto-route without a configured localapiBase. - An empty
providers.ollamablock is not treated as configured. SetapiBase(the WebUI panel does this) or use an explicitollama/<model>model id. - NVIDIA cloud
nemotronmodels route to NVIDIA NIM when that key is present. Local Nemotron weights on Ollama useprovider: "ollama"orollama/<model>.
Embeddings / semantic search
Point semantic search at Ollama for a free local index:
{
"tools": {
"semanticSearch": {
"provider": "ollama",
"model": "nomic-embed-text"
}
}
}
Pull nomic-embed-text first (ollama pull nomic-embed-text).
Image generation
Ollama image models use the native /api surface. Chat still uses /v1.
When providers.ollama.apiBase ends with /v1, the image client rewrites it
to /api automatically. See Image generation.
Troubleshooting
| Symptom | Likely cause |
|---|---|
connection refused | Daemon not running, or wrong host/port in apiBase |
| Model not found | Model not pulled; run ollama pull <id> or use the panel Pull button |
| Very slow replies | Model too large for the machine; try a smaller tag |
| Install button unavailable | Platform needs a manual download from ollama.com |
| Navin still on a cloud model | Active preset is not the Ollama preset; open Settings → Models |