Skip to content
Crystal CodeDocs
ENEnglish

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.

  • /model lists 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 provider and model to config.json. CLI --provider / --model still 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.