Skip to content

Models & providers

Model settings

  1. Open Settings → Models → Add model (or the model menu in the top bar → Add a model…).
  2. Pick a preset. A green key found badge means Moka already sees the right environment variable.
  3. Adjust the model name — or click Fetch models to list everything your key can access.
  4. Click Test. Moka sends a tiny prompt and shows the reply and latency.

The first model you add becomes the default for the active workspace. Switch models any time from the top bar.

PresetProvider typeKey variableBase URL
OpenAIopenaiOPENAI_API_KEYdefault
AnthropicanthropicANTHROPIC_API_KEYdefault
Google GeminigoogleGOOGLE_GENERATIVE_AI_API_KEY or GEMINI_API_KEYdefault
Azure OpenAIazureAZURE_API_KEY + AZURE_RESOURCE_NAMEfrom resource name
Ollamaollama—http://localhost:11434/v1
LM Studioopenai-compatible—http://localhost:1234/v1
OpenRouteropenai-compatibleOPENROUTER_API_KEYhttps://openrouter.ai/api/v1
Groqopenai-compatibleGROQ_API_KEYhttps://api.groq.com/openai/v1
DeepSeekopenai-compatibleDEEPSEEK_API_KEYhttps://api.deepseek.com/v1
Mistralopenai-compatibleMISTRAL_API_KEYhttps://api.mistral.ai/v1
xAIopenai-compatibleXAI_API_KEYhttps://api.x.ai/v1
Together AIopenai-compatibleTOGETHER_API_KEYhttps://api.together.xyz/v1
Custom / Enterpriseopenai-compatibleyour choiceyour gateway

On first run, Moka creates a profile for every key it finds in your environment, plus Ollama if it’s running.

You can paste a key or reference an environment variable:

ValueMeaning
sk-live-…A literal key, saved to your config file (with 0600 permissions)
env:OPENAI_API_KEYRead from the environment at request time — never written to disk
Bearer ${TOKEN}Interpolate a variable inside a string (works in headers too)

Anything that speaks the OpenAI Chat Completions API works: vLLM, LiteLLM, Portkey, Kong, Azure APIM, AWS Bedrock Access Gateway, or your in-house proxy.

moka.json
{
"id": "gateway",
"name": "Company gateway",
"provider": "openai-compatible",
"baseURL": "https://llm.internal.example.com/v1",
"model": "llama-3.3-70b",
"apiKey": "env:GATEWAY_KEY",
"headers": { "X-Team": "platform", "X-Request-Source": "moka" }
}

Native providers accept a baseURL override too, so you can route OpenAI or Anthropic traffic through a proxy while keeping their full feature set.

Toggle Advanced in the model form:

  • Temperature and Max output tokens — leave unset for provider defaults.
  • Custom headers — sent with every request; values support env: and ${VAR}.
  • Use Chat Completions API (OpenAI only) — Moka uses the Responses API by default; switch for older models or proxies.
  • Provider options (JSON) — passed straight through as AI SDK providerOptions:
{ "openai": { "reasoningEffort": "low" } }

Reasoning output from models that support it appears in a collapsible Reasoning block in the chat.

Set the model field to your deployment name, and fill in the resource name (the xyz in https://xyz.openai.azure.com) or reference env:AZURE_RESOURCE_NAME. Optionally set an API version.