Bring your own models
Akili's models are included, but nothing forces you to use them. Point Akili Code at your own provider account, or at a model running on your own hardware.
Your own provider account
Open Settings → Add a provider and pick a preset. It fills in the API shape and endpoint; you add the key and choose a model.
| Preset | API shape |
|---|---|
| Anthropic | Messages API |
| OpenAI | Chat Completions |
| Kimi (Moonshot) | Chat Completions |
| z.ai / GLM | Chat Completions |
Keys you bring are yours. They are stored in your per-user config directory — ~/.config/akili-code/settings.toml on Linux and macOS, %APPDATA%\akili-code\settings.toml on Windows — and never written into a project, because projects get committed.
The model field is free text as well as a dropdown, so a model released after your build still works: type its id.
A model on your own machine
Any server speaking the OpenAI-compatible Chat Completions shape works — llama.cpp's server, Ollama, LM Studio. A loopback endpoint needs no API key and none is demanded:
# ~/.config/akili-code/settings.toml
active_provider = "local"
[providers.local]
kind = "openai"
base_url = "http://127.0.0.1:8080/v1"
api_key = ""
model = "your-model-name"
Only loopback is exempt from the key requirement, and the whole host has to be loopback — 127.0.0.1.example.com is somebody else's server.
Akili Code asks your server how big its window really is rather than guessing from the model name. llama.cpp publishes this at /props; if yours does not, the gauge falls back to a conservative table. A wrong guess here is how an agent packs a prompt eight times too large and fails a minute in.
Expectations for local models
Small models follow multi-clause instructions unreliably and many do not emit tool calls at all. Akili Code recovers a call the model wrote as prose rather than reading the silence as "nothing to do", and it trims its own tool list on a small window so the first turn does not spend minutes in prefill. Local is for privacy and cost, not for speed.