AI providers and models
Choose where AI runs — a model on this computer, your own server or your own provider account — enter keys and model names, and fix connection errors.
Every AI feature in Nixt Mail uses one destination that you choose. This page covers each kind of destination, where keys are kept, how to name a model, how to check that it answers, and every message you can see while setting it up.
If the AI row shows a sentence instead of choices, AI is not available in your copy, edition or licence. See AI overview.
Open the AI settings
- Open Settings with ⌘, (Ctrl+, on Windows and Linux), or choose Settings… from the Nixt Mail menu on macOS or the File menu on Windows and Linux.
- In the System group, choose AI and services.
- Under Where AI and services run, find the row named AI.
The row shows a sentence describing the current choice, then the places AI can run:
| Choice | Use it when |
|---|---|
| Off | You do not want AI. This is the default. |
| Your own server | The model runs on this computer, or on a server you or your organisation runs. |
| Your AI provider | You have your own account and API key with Anthropic, OpenAI, Google, Azure OpenAI, or another service that accepts the OpenAI request format. |
Your edition may not offer every choice. When it holds one back, a line under the choices says which choices your edition does run AI on, and names an edition that includes the one it holds back.
The rest of the form depends on what you choose, and appears under the choices.
Use a model on this computer
A model running on this computer keeps everything on this computer. Nixt Mail does not include a model runtime: you install one yourself, and Nixt Mail finds it.
- In the AI row, choose Your own server.
- Wait for Nixt Mail to finish Looking for a model on this machine….
- Do one of the following:
- If a runtime is found, click one of the model names listed under it. Nixt Mail fills in the address and the model name for you.
- If nothing is found, click Set one up on this machine and follow the guided setup.
- Or type the address and model name yourself. See Enter the address yourself.
- Click Check it answers. See Check that it answers.
Runtimes Nixt Mail looks for
Nixt Mail looks only on this computer, at the port each runtime uses out of the box. It never looks anywhere else on your network.
| Runtime | Port checked on this computer |
|---|---|
| Ollama | 11434 |
| llama.cpp server | 8080 |
| LM Studio | 1234 |
| vLLM | 8000 |
What you may see under the choices:
| Message | What it means |
|---|---|
| Looking for a model on this machine… | Nixt Mail is checking the four ports. |
| Nothing is answering on this machine. Nixt Mail does not bundle a model runtime — install one yourself (install suggestion) and it will show up here. | No runtime answered. The brackets hold the install suggestion for your system, shown below. |
| Runtime is answering on 127.0.0.1:port. | A runtime answered. Up to eight of its models are listed as choices under it. |
| Runtime is running on 127.0.0.1:port, with no model pulled yet. Try: … | The runtime is running but has no model. The line ends with what to do for that runtime. |
| Nothing leaves this machine while AI runs here. | Shown under the runtimes that were found. |
The install suggestion depends on your system. On macOS it is:
brew install ollama
On Windows:
winget install Ollama.Ollama
On Linux:
curl -fsSL https://ollama.com/install.sh | sh
Installing a runtime is up to you. These are the commands Nixt Mail shows; check the runtime’s own site before running anything.
When a runtime is running with no model, the suggestion is:
| Runtime | What the message suggests |
|---|---|
| Ollama | ollama pull llama3.1:8b |
| llama.cpp server | Point it at a .gguf file and restart it. |
| LM Studio | Download one from its own model browser. |
| vLLM | Start it with --model. |
Set up a model with guided setup
Set one up on this machine opens a window that reads how much memory and free disk space this computer has, looks for a runtime, and walks you through getting a model. Each step says what it is about to do before it does it.
- Click Set one up on this machine.
- The window shows Looking at this machine… and then a line describing the computer, such as its memory, cores, processor type and free space.
- What happens next depends on what it finds:
| Title | What it means | What to do |
|---|---|---|
| This machine cannot hold a model | After leaving 4 GB of memory for everything else, there is not enough for the smallest model, or there is not enough free disk. The message says which. | Use a model on another server, or your own provider key. Or free some disk space. Click Close. |
| Install a model runtime first | No runtime is running or installed. Nixt Mail will not install one for you. | Install one using the command shown, then open the window again. Click Close. |
| Starting it… | Ollama is installed but not running, and this computer can hold a model. Nixt Mail starts it and waits up to 20 seconds for it to answer. | Wait. |
| Run a model on this machine | A runtime is running. The models that fit this computer are listed, largest last, and the largest that fits is already selected. | Choose a model, read the sentence under the list, and click Download size GB. Or click Not now. |
| Downloading… | The download is running. The progress bar and the runtime’s own progress line are shown. | Wait, or click Leave it running to close the window and let the download finish on its own. |
| Checking it answers… | The model is downloaded. Nixt Mail sets AI to use it and sends one line that is not your mail. | Wait. |
| Ready | The model answered. AI is now pointed at it. | Click Close. |
| That did not work | Something failed. The message says what. | Read the message, then click Close. |
Before anything is downloaded, the window shows a sentence naming the exact command it will run, the size of the download, and where it comes from — the runtime, not Nixt Mail — and confirms that nothing of yours is sent to obtain it. The download does not start until you click Download.
The models offered are:
| Model | Download | Memory it wants | Note shown |
|---|---|---|---|
qwen2.5:0.5b | 0.4 GB | 3 GB | Tiny. Good enough to prove the setup works; not good enough to trust with a thread. |
llama3.2:3b | 2.0 GB | 4 GB | The smallest that gives useful summaries. A sensible first choice on 8 GB. |
llama3.1:8b | 4.7 GB | 6 GB | Noticeably better at drafting. Wants 16 GB to sit alongside everything else. |
qwen2.5:14b | 9.0 GB | 9 GB | Better again, and the point where a laptop starts to feel it. |
A model is offered only when its memory figure fits in the computer’s total memory minus 4 GB, and its download plus 2 GB fits in the free disk space.
Other messages from guided setup:
| Message | What to do |
|---|---|
| Runtime was started but did not answer within 20 seconds. It may still be coming up. | Wait a moment and open the window again. |
| Not started, because there is nothing it could usefully run here. … | The computer cannot hold any of the models. Use another destination. |
| The download did not finish. Nothing was changed. | Check your internet connection and try again. |
A runtime Nixt Mail starts keeps running after you close the window. Nixt Mail does not stop it.
Enter the address yourself
- In the AI row, choose Your own server.
- Type the address of the model server into the address field.
- Type the model name into the model field, exactly as the server knows it.
The address must be a complete web address:
- On this computer,
http://localhost:11434,http://127.0.0.1:1234and similar addresses are allowed. - Anywhere else, the address must start with
https://. - If you give only a host and port, Nixt Mail adds
/v1/to it.
The server must accept requests in the OpenAI chat completions format, with streaming.
Use your own server
Use this for a model server run by you or your organisation somewhere other than this computer.
- In the AI row, choose Your own server.
- Type the server’s address, for example
https://ai.example.com. - Type the model name, exactly as the server knows it.
- Click Check it answers.
For a server that requires an API key, choose Your AI provider, then OpenAI-compatible, and enter the server’s address and your key there.
Messages under the address field:
| Message | What it means |
|---|---|
| Enter the address of your server. | The field is empty. |
| That is not a complete address — include https:// and a host. | The address is missing its scheme or its host. |
| Use https. Mail text must not travel over an unencrypted connection. | The address starts with http:// and is not on this computer. |
| Only https addresses are supported. | The address uses some other scheme. |
Use your AI provider
Use this when you have your own account and API key with a provider. Requests go straight from this computer to the provider, under your account and your agreement with them. Nixt Mail is not in the path and never sees the reply.
- In the AI row, choose Your AI provider.
- Under Whose model, under your own account with them., choose the provider. Until you choose, the form says Choose one. Nixt Mail will not pick a company to send your mail to.
- For Azure OpenAI or OpenAI-compatible, type the address of your deployment or service.
- Type the model name, exactly as your provider spells it.
- Type your API key into the Your API key field, then click Save key or press Return.
- Click Check it answers.
| Provider | Requests go to | How the key is sent |
|---|---|---|
| Anthropic | api.anthropic.com | In Anthropic’s own key header, using Anthropic’s Messages format. |
| OpenAI | api.openai.com | As a bearer token. |
generativelanguage.googleapis.com | As a bearer token, using Google’s OpenAI-compatible interface. | |
| Azure OpenAI | The address you enter | As a bearer token, in the OpenAI chat completions format. |
| OpenAI-compatible | The address you enter | As a bearer token, in the OpenAI chat completions format. |
The address for Azure OpenAI and OpenAI-compatible follows the same rules as your own server: https://, or http:// only on this computer. An OpenAI-compatible address on this computer keeps everything on this computer, and the row says so.
To reach Amazon Bedrock through a gateway that accepts the OpenAI format, choose OpenAI-compatible.
Where your key is kept
- The key goes straight into this device’s keychain. It is not written to settings, not put in the body of a request, and never shown again.
- On macOS, it is kept for this device only: it is not synchronised through iCloud and does not move to another Mac with a backup.
- It is kept against the destination: the provider and its address. If you switch to another provider, Nixt Mail looks for that provider’s key instead. If you switch back, the earlier key is used again.
- Once a key is stored, the field reads A key is stored. Type a new one to replace it. and the line under it reads Held in this device’s keychain, for this provider only. It is never put in a request body and never shown again.
If the key cannot be stored, a message says This device has no keychain service running, so the key could not be stored. On Linux, this means no Secret Service, such as GNOME Keyring or KWallet, is running. Start one and save the key again.
To remove stored keys, use Settings › Privacy and security › Erase everything on this device. That removes everything Nixt Mail keeps on this device, not only keys.
Choose a model
The model name is required. Nixt Mail never picks a model for you, because a small model on a laptop and a large hosted model are not the same, and only you know which your mail deserves.
- Type the name exactly as your runtime or provider spells it.
- When the name includes a size, such as
8bor14b, a line under the field estimates the memory it needs: At 4-bit this wants roughly N GB of free memory. On a machine with less, a smaller model answers rather than swaps. - Changing the model name does not end the permissions you granted. Those are tied to where requests go, not to which model answers.
Check that it answers
Check it answers sends one fixed line, “Reply with the single word: ready”, and allows a reply of one token. It contains nothing from your mail, so you can run it before granting any permission.
| Line beside the button | What it means |
|---|---|
| Not checked yet. Nothing is sent until this answers. | Nothing has been contacted since you last changed where AI runs. |
| Sending one line that is not your mail… | The check is running. The button reads Checking…. |
| host answered as model**.** | The destination answered. |
| Name the model to use. Nixt Mail does not choose one for you. | The model field is empty. |
| There is nowhere to check yet. | The form is not complete: no provider, or no valid address. |
| host accepted the request but said nothing. | The destination answered without any text. Check the model name. |
| Any message from Error messages | The destination refused or could not be reached. |
Changing the placement, the provider, or the host name in the address puts the line back to Not checked yet.
What changing the destination does
While you hold permissions for the current destination, a line in the form warns: Changing this ends N permission(s) you granted for the current destination. You will be asked again.
Changing the placement, the provider, or the host name in the address ends every permission that named the old destination, and the next request asks again. So does choosing Off. See AI permissions.
Timeouts
A request fails if the destination does not start answering within 30 seconds, or stops sending for 60 seconds in the middle of an answer. Anything that had already arrived in the Assistant is kept.
Error messages
These messages appear in the Assistant, in a snack bar under the reply box or compose window, or beside Check it answers. host is the destination’s host name.
| Message | What it means | What to do |
|---|---|---|
| host rejected the key. Check it in Settings — nothing was sent anywhere else. | The destination answered 401 or 403. The provider’s own explanation may follow after It said:. | Check the key and type it again. Check that the model name is one your account can use. |
| host is rate-limiting this key. Waiting is the only fix; Nixt Mail will not retry in a loop. | The destination answered 429. | Wait and try again. Check your plan’s limits with the provider. |
| host is having trouble at its end. | The destination answered 500, 502, 503 or 529. | Try again later. |
| host refused the request (HTTP status**).** | Any other refusal, often a wrong model name or address. | Read the explanation after It said:, if there is one. Check the model name and address. |
| host did not answer in time. Nothing was sent on anywhere else. | See Timeouts. | Check that the server is running. A large local model can be slow to start; try again. |
| Nixt Mail could not reach host — reason**.** | The connection failed: no network, wrong address, or the server is not running. | Check the address and your connection. For a local model, check that the runtime is running. |
| host accepted the request but sent nothing back. | The destination answered without any events. | Check that the address points at a streaming chat endpoint. |
| host stopped: message | Anthropic reported an error part-way through an answer. | Try again. |
| This device has no keychain service running, so the key could not be stored. | See Where your key is kept. | Start a keychain service and save the key again. |
If a provider repeats your key in an error message, Nixt Mail replaces it with [your key, hidden] before showing the message.
Something unclear or out of date on this page? Tell us.