Providers & Models
Kanna supports three providers — Claude, Codex (OpenAI), and OpenRouter — switchable per-chat from the composer.
Provider switcher
Section titled “Provider switcher”The composer’s provider button picks between Claude, Codex, and OpenRouter. Each provider exposes its own model list and reasoning controls.

Claude
Section titled “Claude”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
codexCLI. Kanna spawnscodex app-serverwith its own environment inherited, and injects no credentials of its own. Ifcodexworks in your shell it works in Kanna, whether that is acodex loginsession or anOPENAI_API_KEYyou 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.
Codex also has no compaction request of its own, so /compact on a Codex chat
is summarised by Kanna itself.
OpenRouter
Section titled “OpenRouter”- 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; anyANTHROPIC_API_KEYis cleared). - Live model catalog — the OpenRouter model picker populates dynamically
from OpenRouter’s public
/api/v1/modelsendpoint, filtered to tool-capable models and cached for ~1 hour. - Billed by OpenRouter per token, independently of your Claude plan.
Switching mid-chat
Section titled “Switching mid-chat”Provider and model can change mid-chat. The new turn uses the picked provider; previous turns stay exactly as they are.
Editing the model catalog
Section titled “Editing the model catalog”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.