Local-first
Local-first isn't a marketing posture, it's a design constraint. The default state of Soriku is offline. Cloud is opt-in, per prompt and per model.
What local-first means in practice
- Inference can run entirely on your machine through Ollama. No internet required after the initial model pull.
- Agent memory, capability map, routing logs, persona definitions all live in
data/on your machine. Nothing is shipped to a server. - API keys for remote providers live in
data/keystore.json, encrypted with a local key. They're decrypted at request time, used, then dropped from memory. - Cloud is opt-in per prompt: even if you have remote providers configured, every routing decision still picks local when local is good enough.
Why it matters
- Privacy: your prompts don't leave your machine unless you explicitly route them out.
- Compliance: local-first turns the EU AI Act from a configuration headache into the default state. See EU AI Act.
- Cost: local inference has zero per-token cost after the install. You pay in electricity and hardware, not API fees.
- Resilience: Soriku keeps working when your internet drops, when an API provider has an outage, or when a model gets deprecated.
- No vendor lock-in: you can swap providers, fork the engine, or run it on different hardware without losing your setup.
When the cloud does make sense
Local-first doesn't mean local-only. For specific tasks, remote providers are clearly better: hard reasoning with Claude Opus, long-context summarisation with Gemini, ultra-fast inference with Groq. Soriku routes to them when the capability map says they win, and only when your constraints allow it.