AI Providers (LiteLLM)
Gemini is the bundled default (GEMINI_API_KEY). Use OpenAI, Anthropic, Mistral, Groq, Ollama or any LiteLLM-compatible model.
Configuration (`.loki/config.yaml`)
By default, LOKI uses Gemini (gemini/gemini-flash-latest) and reads GEMINI_API_KEY from your environment. You can override the provider, model, endpoint, or API key variable in .loki/config.yaml:
.loki/config.yaml
ai:provider: gemini # Default provider (prefixes model if it has no "/")model: gemini-flash-latest # Default model, or any LiteLLM id (e.g. openai/gpt-4o, ollama/llama3)api_base: https://host/v1 # Optional: custom or local OpenAI-compatible endpointapi_key_env: MY_PROVIDER_KEY # Optional: environment variable holding the API keyapi_key: AIza... # Optional: inline API key (prefer api_key_env for shared repos)
Model Profiles (`.loki/models.json`)
LOKI also maintains a registry of named AI profiles in .loki/models.json (editable via /model inside loki chat). The active profile takes priority over .loki/config.yaml across every AI feature (chat, business rules evaluation, fix, and --auto-heal).
.loki/models.json
{"active": "local-llama","profiles": [{"name": "local-llama","model": "ollama/llama3","api_base": "http://localhost:11434/v1"},{"name": "work-mistral","model": "mistral/mistral-large-latest","api_key_env": "MISTRAL_API_KEY"}]}
Resolution Priority
- 1. Explicit
--modelCLI flag - 2. Active profile in
.loki/models.json(managed with/modelinloki chat) - 3.
ai:section in.loki/config.yaml - 4. Bundled default (
gemini/gemini-flash-latest)
API keys
bash
# Default provider (Gemini)export GEMINI_API_KEY=AIza...# Or on Windows PowerShell:$env:GEMINI_API_KEY="AIza..."
Avoid committing plain-text api_key values in .loki/config.yaml or .loki/models.json to public repositories. Prefer environment variables (api_key_env).
