Model
/model changes the configured provider and model for the next idle
turn. Crystal ChatRequest has no model field; adapters bake the name
and sampling into client options, so the session rebuilds
IStreamingChatClient. A compaction model that is on keeps its own
client; otherwise the summarizer uses the new session client. An
approval model that is on keeps its own Review client. The transcript
stays the same conversation.
/modellists catalog models grouped by provider and marks the current selection./model <model>selects a model on the current provider. If that provider does not list the name, a unique catalog match is used. A provider name with one model selects that model./model <provider> <model>selects across providers. The model id is the remainder after the first space and may contain/.- Models that are not listed cannot be selected. A missing API key leaves the current client unchanged.
- The command is refused while a turn is running.
- A successful switch writes
providerandmodeltoconfig.json. CLI--provider/--modelstill override only that process start. - Thinking follows the existing rule: switching models never fails. Unsupported thinking is omitted; an unsupported stored gear uses the provider default and is not rewritten.
- Reasoning history follows “switching never fails” too. An adapter replays opaque reasoning state only where its protocol and profile can carry it. Every other block keeps its readable text, as assistant text or the protocol’s readable reasoning field (Ollama thinking), and drops the state; a block with no readable text is omitted.
- Compaction is not run as part of the switch. The next turn uses the new context window.