docs / concepts / local-first

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.

Next: Atypisch ecosystem →