Getting started

Configure an AI provider

Wire up an OpenAI / Anthropic / compatible key so the agent can run.

What is a provider

A provider is the channel Kition uses to reach an LLM. That can be the official OpenAI API, the official Anthropic API, or any OpenAI-compatible endpoint (self-hosted vLLM, Ollama, OpenRouter, AiApiy, Azure OpenAI, and so on). A provider is defined by a baseURL plus an API key plus a wire protocol.

On the Free tier you can configure and use one provider at a time — switching is instant. If you need multiple providers mounted simultaneously with per-task routing, see the free-vs-pro article.

Steps

Adding a new provider usually takes under 30 seconds:

  • Open Settings → Providers
  • Click Add Provider and pick OpenAI / Anthropic / Custom
  • Enter the API key (and Base URL only for compatible services)
  • Set a default model (e.g. gpt-4o-mini / claude-sonnet-4)
  • Click Test to verify connectivity
  • Save → the agent panel will show "ready"

Common providers cheat-sheet

Connection details for the common providers. The wire field tells Kition which API protocol to use — a mismatch shows up as 4xx errors.

  • OpenAI: https://api.openai.com/v1, wire = responses
  • Anthropic: https://api.anthropic.com, wire = anthropic_messages
  • AiApiy: baseURL from dashboard, wire = responses
  • OpenRouter: https://openrouter.ai/api/v1, wire = responses
  • Azure OpenAI: https://{resource}.openai.azure.com/openai, wire = responses, requires api-version query
  • Self-hosted Ollama: http://localhost:11434/v1, wire = responses
  • Self-hosted vLLM: http://your-host:8000/v1, wire = responses

Config file example

Want to edit the config file directly? Provider definitions live in .kition/providers.json, with the API key represented as a placeholder — the real key sits in the OS keychain. Quit the app before hand-editing or the sidecar will overwrite your change on save.

{
  "providers": [
    {
      "id": "openai-personal",
      "name": "OpenAI (Personal)",
      "wire": "responses",
      "baseUrl": "https://api.openai.com/v1",
      "apiKeyRef": "keychain:kition.openai.personal",
      "defaultModel": "gpt-4o-mini",
      "models": ["gpt-4o", "gpt-4o-mini", "o3-mini"]
    },
    {
      "id": "anthropic-work",
      "name": "Anthropic (Work)",
      "wire": "anthropic_messages",
      "baseUrl": "https://api.anthropic.com",
      "apiKeyRef": "keychain:kition.anthropic.work",
      "defaultModel": "claude-sonnet-4-5",
      "models": ["claude-opus-4-5", "claude-sonnet-4-5", "claude-haiku-4-5"]
    }
  ],
  "active": "openai-personal"
}

Verify + troubleshoot

Settings → Providers → Test issues a minimal ping (one-token request) for verification. When it fails, the surfaced error includes the HTTP status and a response snippet — that is usually enough to identify the cause.

  • 401 Unauthorized: bad or expired key — watch for whitespace when pasting
  • 403 Forbidden: model not enabled on the account, or unpaid Anthropic balance
  • 404 Not Found: missing /v1 on baseURL, or misspelled model ID
  • 429 Rate Limited: throttled — bump tier or swap provider
  • TLS / cert error: corporate MITM proxy — see next section
  • Connection timeout: sidecar is down — check the status dot at the bottom

Corporate proxy and custom CA

Corporate networks often run TLS interception — by default Kition only trusts the system CA store. Drop the enterprise CA cert into the vault's .kition/certs/ directory and it gets loaded on startup. Standard HTTPS_PROXY / NO_PROXY env vars are also honored.

# Tell Kition where to find the corporate CA bundle
export KITION_CA_BUNDLE=/etc/ssl/certs/corp-ca.pem

# Force everything through a corporate proxy except localhost
export HTTPS_PROXY=http://proxy.corp.example:8080
export NO_PROXY=localhost,127.0.0.1

Related articles

Ready when you are.

Kition is a local-first AI workspace. Markdown documents, structured tables, and an AI agent — running on your own machine, against the model provider you choose.