Provider setup
Switch the default model
Three levels: global default / per-vault / per-task.
Three resolution layers
Model selection cascades: global default → per-vault → per-task, with later layers winning. You can keep Sonnet globally, switch a research vault to Opus, and momentarily flip a single task to a mini model — none of these bleed into each other.
All layers are local; syncing a vault lets teammates share the vault-level pick while each keeps their own global preference.
Global default
Open Settings → Agent → Default model — the dropdown lists every model available across attached providers. Whatever you pick becomes the starting model for any new vault.
Per-vault override
.kition/agent.json at the vault root is plain JSON you can version-control. Set defaultModel there and the vault locks to that model; remove the field to fall back to the global default.
{
"defaultModel": "claude-opus-4-7",
"subagents": {
"researcher": { "model": "gpt-5.1" },
"summarizer": { "model": "claude-haiku-4-5" }
}
}Per-task quick switch
- Top-of-panel dropdown — switches the current chat instantly
- Type
use opus/use gpt-5.1/use haikuin the prompt — natural-language switch applies on the next turn - Right-click a message → Retry with... — rerun the same prompt with a different model to compare
- Hotkey
Cmd Shift M(macOS) /Ctrl Shift M(Windows) opens the model picker
Smart routing (Pro)
Pro adds routing rules in .kition/agent.json: pick a model based on task type, context length, or tool-call count. Light chat to Haiku, long-context research auto-upgrades to Opus, code edits always go through gpt-5.1.
{
"defaultModel": "claude-sonnet-4-6",
"routing": [
{ "if": "context.tokens > 100000", "use": "claude-opus-4-7" },
{ "if": "task.kind == 'code'", "use": "gpt-5.1" },
{ "if": "task.kind == 'summary'", "use": "claude-haiku-4-5" }
]
}Troubleshooting and gotchas
- Model missing from dropdown — provider not attached or key invalid; hit Test on Providers
- Switched to a model the provider does not host — Kition falls back to that provider default and logs a warning
- Free tier attaches one provider at a time — cross-provider routing requires Pro
per-taskswitches do not write back toagent.json— they only affect the current chat- For team vaults that must pin a model, set
lockModel: truein.kition/agent.json