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:
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¶
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:
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:
api_keyin the effective profile config (${ENV_VAR}reference)- If
api_keyis unset, the provider's standard environment variable inferred from the model name (e.g.GEMINI_API_KEYforgemini-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:
OAuth authentication¶
OpenAI also supports OAuth authentication, which authenticates via your ChatGPT account instead of an API key.
To set up OAuth:
Select OAuth when prompted. Then set auth_mode in your settings:
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:
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 |