Skip to content

Models and Auth

The reviewer runs on a separate AI model that you choose. Zwischen supports models from Anthropic, Google, OpenAI, and DeepSeek.

Choosing a model

Set the reviewer model in your defaults or in a profile:

defaults:
  model: gpt-5.4

Different models behave differently as reviewers. Zwischen Labs runs continuous test suites across providers and models to understand these differences, and applies provider-specific and model-specific prompt adjustments automatically. You can disable these adjustments with model_tuning: false if you want the base reviewer prompt only.

See Supported Models for the full list.

A different model per profile

model is not a defaults-only setting. Any profile can carry its own, which is how you run a heavier reviewer on the work that warrants it and a faster one everywhere else:

defaults:
  model: gpt-5.5

profiles:
  quant:
    agents: [market-quant]
    adversary: research
    model: gemini-3.1-pro-preview

Credentials sort themselves out. If the profile's model belongs to a provider that does not support the auth_mode inherited from defaults – OAuth is OpenAI-only – Zwischen falls back to API key authentication for that profile rather than failing.

Which models you can pick

zwischen models

This lists the reviewer models available to you, grouped by provider and filtered to providers you have usable credentials for. The list comes from the Zwischen server, so it is always current – the client keeps no hardcoded copy, and a model the server does not list is rejected up front when you try to switch to it rather than failing inside the provider call.

The /z model picker and the setup wizard both read this same list.

API key authentication

The default authentication method is API key. The recommended way to set up provider credentials is zwischen auth:

zwischen auth

This walks you through selecting a provider, entering your API key with hidden input, and persisting it as an OS environment variable. The key is stored in the Windows registry (on Windows) or in managed shell startup files (on macOS/Linux). Keys are not stored in settings.yaml.

You can also configure credentials manually by setting the provider's standard environment variable: OPENAI_API_KEY, ANTHROPIC_API_KEY, GEMINI_API_KEY, or DEEPSEEK_API_KEY.

Resolution order: When Zwischen needs a provider API key, it checks in this order:

  1. api_key in the effective profile config (${ENV_VAR} reference)
  2. If api_key is unset, the provider's standard environment variable inferred from the model name (e.g. GEMINI_API_KEY for gemini-3.1-pro-preview)

At each step, a variable that is not present in the current process environment is also looked up in persistent OS storage – the Windows registry, or your managed shell startup files. This is why a key you just saved with zwischen auth works without opening a new terminal.

This means you can often omit api_key entirely – just set the right environment variable and Zwischen will find it automatically.

The API key is never sent to the Zwischen server. It is held in process memory on your machine only and passed directly to the model provider.

To check which providers have usable credentials:

zwischen providers

OAuth authentication

OpenAI also supports OAuth authentication, which authenticates via your ChatGPT account instead of an API key.

To set up OAuth:

zwischen auth --provider openai

Select OAuth when prompted. Then set auth_mode in your settings:

defaults:
  model: gpt-5.4
  auth_mode: oauth

OAuth is currently supported for OpenAI only. Other providers require API key authentication.

Model tuning

When model_tuning is true (the default), Zwischen applies provider-specific and model-specific prompt adjustments tuned by Zwischen Labs. These adjustments account for behavioral differences between models – an OpenAI model reviewing code may react very differently to the same event stream than a Gemini model.

Set model_tuning: false to disable these adjustments and use the base reviewer prompt only.

Switching models mid-session

You can change the reviewer's model without restarting your session:

/z model gemini-3.1-pro-preview

Switching models always cycles the reviewer's session – the reviewer writes a handoff summary, then a new session starts on the target model with that summary plus a tail of recent events. Your cycle settings (tail_depth, etc.) govern how much context carries over. The reviewer's behavioral profile stays the same; only the model changes.

If you omit the model ID, the skill shows a model picker filtered to providers with usable credentials. See Slash Commands for details.

Configuration reference

Key Type Default Description
model string Model ID for the reviewer
api_key string Provider API key as ${ENV_VAR} reference
auth_mode string "api_key" "api_key" or "oauth" (OpenAI only)
model_tuning boolean true Apply provider-specific prompt adjustments