Local models via localhost:11434
Ollama-Pippa runs entirely on the local machine. No API calls leave the machine. Useful for scheduled background tasks where Claude's degraded service window would otherwise drop the job, and for offline situations.
Native /api/chat
Streams via Ollama's native /api/chat endpoint. Multi-turn tool loop with {type, function: {name, ...}} schema wrapping (Ollama's quirk — flat OpenAI-style schema gets rejected) and tool call ID propagation through the loop.
Model selection is tier-scoped
The local and server tiers each keep their own sticky model choice; GET /api/ollama/models lists what is installed, and switching is one click in the brain switcher. The cloud tier is different: it has no sticky-file authority at all. A fresh cloud conversation resolves its model from a required Admin pin, and a choice made in the composer applies to that one conversation — it is never written back as the family default.
Cloud tier — bigger weights, same wire format
Ollama opened a hosted cloud tier as a preview on 2025-09-19, and cwkPippa wired it in on 2026-05-15: same wire format, same /api/chat shape, just larger weights running on Ollama's servers instead of localhost. cwkPippa exposes a tier toggle in Admin → Ollama; /cloud-models lists the cloud-available weights and the mini/full selector hides on the cloud tier (it doesn't apply). The variant doesn't fork — same adapter, same tool bridge, just a different endpoint. Cloud auth is not a key in the project environment: the host Mac's Ollama daemon is signed in, holds the credentials, and proxies to Ollama's servers, so from cwkPippa's side it is still an ordinary Ollama endpoint. Admin chooses which Mac's daemon carries the cloud traffic. And a cloud model gets the full vault, like the other subscription brains — none of the compression a small local model needs.