Start with the quickstart and keep the reference open.
The full reference lives at soriku.com/docs. The five-minute quickstart below covers ninety percent of what you do on day one.
Quickstart · 5 minutes
1. Install
Download the desktop app for macOS and open it. The engine ships inside.
2. Connect Ollama
Soriku auto-detects local Ollama. Or paste a remote API key.
3. Run the benchmark
Takes about 4 minutes per model. Sets up your capability map.
4. Ask anything
Open the chat or hit the OpenAI-compatible endpoint.
5. Build an agent
Create a persona, give it tools, share it with your team.
Drop-in for the OpenAI SDK.
Change the base URL and you are done. It works with any SDK that speaks the OpenAI API, from Cursor to your own scripts.
Model auto hands the choice to the capability map. Name a model instead and Soriku uses that one.
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:8765/api/v1",
api_key="local",
)
reply = client.chat.completions.create(
model="auto",
messages=[{"role": "user", "content": "Summarise this contract"}],
)Everything your code needs to know.
Soriku runs a local server on port 8765 that speaks the OpenAI API. Point your SDK at it and every request goes through the capability map, unless you ask for a specific model.
- Base URL
- http://localhost:8765/api/v1
- Authentication
- Bearer soriku-local
- Endpoints
- /chat/completions · /models · /embeddings
- Who answered
- response.model + x-soriku-route
- Privacy per request
- x-soriku-zone: local | eu | any
- Tools and MCP
- mcp://localhost:8765
On a team server, use its address in your network instead of localhost. Soriku EU has its own URL per workspace.
Locally any key works. On a server or Soriku EU you create keys per person or per app, and you can revoke them one by one.
Chat, the list of models with their measured scores, and embeddings for your own search. Streaming works as in the OpenAI API.
The response names the model that answered. The header tells you why: the category, the score and the privacy rule that applied.
Force a request to stay on this machine or in the EU, whatever the default is. A request that cannot be met is refused, not rerouted.
Soriku is also an MCP server. Tools you connected are only available to models within your allowlist, and every call lands in the log.