Configure models
Axiomate is not tied to one model provider. Configure at least one main model first, then optionally add cheaper or faster auxiliary models.
First setup
Run:
/model add
For most setups, only the API base URL, API key, Model ID, and matching API protocol need to be provided. Axiomate infers context window, output limit, vendor / model template, and similar fields from the Model ID, so the remaining options can be left at their defaults.
The wizard asks for the following fields:
| Field | What it sets | How to choose |
|---|---|---|
| API protocol | The interface format used by the model service. | Required. OpenAI-compatible services usually use OpenAI Chat Completions; services that support Responses API use OpenAI Responses API; Anthropic or Anthropic-compatible services use Anthropic-compatible. |
| API base URL | The endpoint address requests are sent to. | Required. Different providers have different addresses; local model services also have their own local endpoint. |
| API key | The secret used to call the model service. | Required. Usually created in the provider console; do not share it publicly. |
| Model ID | The model name sent in the provider's model field. | Required. Use a specific model version (such as a dated or codenamed ID). Axiomate uses it to derive defaults for the fields below. |
contextWindow | The maximum context length the model can receive in one request. | Prefilled when the model name is recognized; usually keep the default. |
maxOutputTokens | The maximum tokens the model can output in one response. | Prefilled when the model name is recognized; usually keep the default. |
| Image input support | Whether the model can read images, screenshots, or visual content. | Supported for vision-capable models, unsupported for text-only models. Pre-selected when the model name is recognized. |
| Vendor / model template | Templates Axiomate uses to adapt provider and model behavior. | Keep auto; Axiomate will match by Model ID. |
| Reasoning depth | The model's default thinking effort. | Default is now High; reasoning models can keep it, normal chat or small models can switch to Off. |
| Usage | Whether to use the model as main, add it to fallback, or save it only. | For the first model, usually choose Use as main model. |
When unsure about a field, keep the suggested default.
The configuration is saved to ~/.axiomate.json.
Switch models
The most common way to switch models is to open the model picker:
/model
It opens a TUI list. Use the up/down arrow keys to choose a model. If the model supports effort, use the left/right arrow keys to adjust thinking effort. Press Enter to confirm.
After confirmation, Axiomate sets the selected model as the main model for the current default route. Normal conversations will use that model afterwards.
You can also open the model picker with the default Alt+P / Meta+P shortcut.
Edit an existing model
Use:
/model edit <model-id>
This edits the models[model-id] entry and validates the saved JSON.
Useful command:
/model show
Reasoning depth
The /model add wizard's Reasoning depth controls the model's default thinking config:
Off: nothinkingfield is written.Low/Medium/High/Max: writes a neutral config such as{ "enabled": true, "effort": "high" }.
Axiomate translates this neutral config to the provider-specific wire fields.
Change effort at runtime
In the model picker, use the left/right arrow keys to adjust the selected model's thinking effort. After confirmation, the selected effort is saved per model in user settings.
The default Alt+T / Meta+T shortcut opens the thinking control from the input box.