Skip to content

Providers & Models

Kanna supports three providers — Claude, Codex (OpenAI), and OpenRouter — switchable per-chat from the composer.

The composer’s provider button picks between Claude, Codex, and OpenRouter. Each provider exposes its own model list and reasoning controls.

Composer provider/model picker

Register one or more Claude OAuth tokens in Settings → Providers → “Claude OAuth tokens”. Kanna rotates across them per chat and falls over automatically when one hits a rate limit — see OAuth Pool Setup.

Model Reasoning efforts Context window
Fable 5 low / medium / high / xhigh / max 200k or 1M
Opus 5 low / medium / high / xhigh / max 200k or 1M
Sonnet 5 low / medium / high / xhigh / max 200k or 1M
Opus 4.8 low / medium / high / xhigh / max 200k or 1M
Opus 4.7 low / medium / high / xhigh / max 200k or 1M
Sonnet 4.6 (default) low / medium / high / max 200k or 1M
Haiku 4.5 low / medium / high 200k

The 1M context window is a per-chat toggle, not a separate model. Pick the model, then pick its window; Kanna appends the [1m] suffix the API expects when you choose 1M. A model that offers only 200k shows no toggle.

If a chat is quietly compacting far below the window you expected, the window probably fell back to 200k — Kanna logs a warning whenever the requested window is not the one it resolved.

  • Auth — handled entirely by the codex CLI. Kanna spawns codex app-server with its own environment inherited, and injects no credentials of its own. If codex works in your shell it works in Kanna, whether that is a codex login session or an OPENAI_API_KEY you export before starting Kanna.

  • Models — GPT-5.5 (default), GPT-5.4, GPT-5.3 Codex, GPT-5.3 Codex Spark.

  • No reasoning-effort selector. Codex models carry no effort options in Kanna’s catalog; the picker shows models only.

  • Plan progress — Kanna turns on Codex’s update_plan tool and tells the model to publish its plan through it. Each time Codex updates the plan, the steps and their status (pending, in progress, completed) show up in the chat as a task list, the same way Claude’s task list does, so you can follow a long Codex turn.

Codex also has no compaction request of its own, so /compact on a Codex chat is summarised by Kanna itself.

  • API key auth — set the LLM provider to OpenRouter and paste an OpenRouter API key in Settings. Turns run against OpenRouter’s Anthropic-compatible endpoint (the key is injected as ANTHROPIC_AUTH_TOKEN; any ANTHROPIC_API_KEY is cleared).
  • Live model catalog — the OpenRouter model picker populates dynamically from OpenRouter’s public /api/v1/models endpoint, filtered to tool-capable models and cached for ~1 hour.
  • Billed by OpenRouter per token, independently of your Claude plan.

Provider and model can change mid-chat. The new turn uses the picked provider; previous turns stay exactly as they are.

Settings → Models is full CRUD over the Claude and Codex model lists, so a model that ships before Kanna knows about it is one form away from usable.

  • Every built-in appears as an editable copy, so you can adjust a label or the offered efforts without waiting for a release.
  • Adding an entry whose id matches a built-in merges over it field by field — fields you did not set keep their built-in values.
  • Adding a new id appends it to that provider’s list.
  • Deleting an edited built-in reverts to the built-in. Deleting a purely custom id removes it.

Built-ins are never destroyed, so the catalog cannot end up empty.