Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

Models & Customization

Select a model

Use a slash prefix or --model:

zo /sonnet 'Review this design'
zo --model opus 'Analyze the tradeoffs'
 
# Full OpenRouter IDs work without an alias
zo /openai/gpt-5.6-sol 'Explain this code'
zo --model anthropic/claude-sonnet-5 'Review this API'

Selection priority is --model, a slash-prefixed model, default_model, then the built-in sol fallback.

Alias matching is case-insensitive and tries exact, substring, then fuzzy matches. Custom models are considered before built-ins, and ambiguous top fuzzy matches produce an error instead of a silent choice.

Built-in aliases

AliasOpenRouter model ID
solopenai/gpt-5.6-sol
terraopenai/gpt-5.6-terra
lunaopenai/gpt-5.6-luna
flashgoogle/gemini-3.7-flash
geminipro~google/gemini-pro-latest
gpt4.1openai/gpt-4.1
gpt4oopenai/gpt-4o
gpt4ominiopenai/gpt-4o-mini
grokx-ai/grok-4.6
haikuanthropic/claude-3-haiku
o1openai/o1
opusanthropic/claude-opus-4.8
sonnetanthropic/claude-sonnet-5
bananagoogle/gemini-3-pro-image-preview

sol is the default text model. Image mode has a separate default, google/gemini-2.5-flash-image.

List the aliases active after applying your configuration with:

zo +list-models

Reasoning effort

zo --reasoning-effort low 'Summarize this proposal'
zo --chat --reasoning-effort xhigh 'Help me analyze this design'

Supported values are auto, max, xhigh, high, medium, low, minimal, and none. auto leaves the setting to OpenRouter and the selected model; none explicitly requests no reasoning.

Priority is CLI flag, custom-model setting, global config, then the built-in high default. Reasoning effort applies to text and chat requests, not image mode.

reasoning_effort = "medium"

Add or replace aliases

The [models] table maps short names to model IDs. It can add aliases, override built-ins, or disable a built-in with an empty value:

[models]
fast = "google/gemini-3.7-flash"
sonnet = "provider/other-sonnet"
opus = ""

Custom models

Custom models add an optional system prompt and reasoning setting:

[[custom_models]]
name = "reviewer"
model = "anthropic/claude-sonnet-5"
system_prompt = "Review code concisely. Prioritize correctness, security, and concrete fixes."
reasoning_effort = "high"
git diff | zo /reviewer 'Review these changes'
zo --chat /reviewer 'Help me review this project'

Custom model names can override any alias with the same name. Omitting their reasoning setting inherits the global value; setting it to auto explicitly restores the provider/model default.

Use --verbose to print the resolved alias and model ID without pausing, or --debug to inspect and confirm the complete request settings.

Configuration → · Image Generation →