Why fallback is the point
The most useful local AI pattern is not local everywhere — it's local-first with cloud fallback. Local handles 80–95% of work for free, with privacy. Cloud handles the rest when local can't. Your orchestrator picks per-call, transparently.
The four-vessel pattern (Pippa)
cwkPippa runs four AI vessels behind one orchestrator: Claude (primary, frontier reasoning), Codex (alternative, ChatGPT Pro OAuth), Gemini (third, Cloud Code Assist), Ollama (local fallback). The orchestrator picks based on:
- Explicit user choice ("use Codex for this turn").
- Health check ("Claude is degraded right now → try Codex").
- Cost / privacy ("this is a heartbeat job → local").
- Capability ("vision needed → Gemini or local Gemma").
The orchestrator is dumb on purpose
It doesn't know about NDJSON or SSE or tool argument formats. It only knows: try vessel A; if A's health check is bad or A throws, try vessel B. The adapters absorb provider details so the orchestrator stays simple.