# Servers and cloud models

> Using models that Ollama, LM Studio, oMLX, llama.cpp or another server runs, renting bigger models through OpenRouter, and exactly what a cloud chat sends.

Applies to Canto 1.0 beta 3 · Updated Oct 10, 2026 · https://lonelyduck.io/docs/canto/servers

Taken from the app's source for Canto 1.0 beta 3: `src/shared/servers.ts`, `src/shared/cloudModels.ts`.

Canto runs its own models on your Mac and needs nothing else. If you already run models in another app, Canto can use those too, and if you want a model bigger than your Mac can hold, you can rent one by the answer through OpenRouter on your own account. All of this is free on every plan.

Models on a server on your Mac keep everything on your Mac. Models anywhere else (OpenRouter, Ollama's cloud models, a server on another computer) are **cloud models**: they're off until you turn them on, and Canto tells you before a chat leaves your Mac.

## Servers on your Mac

Open **Settings › Models › Servers**. When the page opens, Canto asks the usual ports on your Mac (11434, 1234, 8000, 8080 and 1337) whether a model server answers. It only asks; nothing leaves your Mac. A server it finds shows with **Add**; an app you have that isn't running says **Not running** and how to start it.

To stop Canto looking, turn off **Settings › Models › Loading and context › Look for servers on this Mac** (under Advanced).

| Server            | Usual address            | To start it                                                  | Key                                   |
| ----------------- | ------------------------ | ------------------------------------------------------------ | ------------------------------------- |
| Ollama            | `http://localhost:11434` | Open Ollama, or run `ollama serve`                           | Only behind a proxy you set up        |
| LM Studio         | `http://localhost:1234`  | Developer › Start server in LM Studio, or `lms server start` | Only if Require authentication is on  |
| oMLX              | `http://localhost:8000`  | Open oMLX and start its server                               | oMLX › Settings › API key             |
| llama.cpp server  | `http://localhost:8080`  | Run `llama-server`                                           | The value you passed with `--api-key` |
| OpenAI-compatible | `http://localhost:8000`  | Depends on the server                                        | Only if the server asks for one       |

## Add a server

**Add a server ▾** offers **Look on this Mac…** and each kind of server. The sheet has three steps:

1. **Choose** what runs on this Mac, or type an address elsewhere.
2. **Connect.** Canto tests the address before it saves anything, and says in plain words what answered. If the server runs on its usual port, it offers **Use port 11434** (or the right one). A key goes in your Keychain. If the test fails, **Add anyway** saves it regardless.
3. **Pick the models** the composer offers. You can change this later.

**Servers are read, never probed.** Adding a server never loads its models or sends them a test prompt: Canto reads the list the server reports. **Check connection** and **Refresh models** in a server's **⋯** menu do the same.

## How Canto uses a server

Each server in Settings shows its state (**Running**, **Needs a key**, **Not running**), its version, and its models in groups: **Loaded now**, **On this Mac**, **Ollama Cloud** (in amber), and **Not for chat** (embedding and other models that can't chat, folded away). Each model row has its maker, its build, what it can do, its size and how much of a chat it holds.

* **Memory.** A model served from your Mac is sized to each chat and to the memory free, the way Canto sizes its own, and grows at most twice per chat. Every answer keeps room to finish: at least 2,048 tokens, 4,096 with Think. **Keep the server's context setting** in the **⋯** menu turns this off for a server.
* **Loading.** Canto unloads only models it loaded itself, when you quit or after a few idle minutes. **Let Canto load and unload models** in the **⋯** menu controls it.
* **Patience.** A server on your Mac or your network gets as long as it needs to read a long prompt before its first word, at least two minutes.
* **Think.** Think off reaches LM Studio, oMLX and llama.cpp's server, and thinking levels follow what each model offers.
* **If it isn't running at launch,** Canto keeps your choice, uses one of its built-in models until the server is back, and says so.
* **A server listening on your whole network** gets a warning, for example when "Expose Ollama to the network" is on in Ollama.

Background work never uses a server or a cloud model. Titles, tags, meetings, indexing and other jobs you didn't start run on Canto's built-in models only.

## Cloud models

These models run somewhere other than your Mac:

* **OpenRouter**, for bigger models from Anthropic, OpenAI, Google, DeepSeek and others, on your own OpenRouter account.
* **Ollama Cloud** models: Ollama models that run on ollama.com. Canto recognises them by what Ollama says about them, so a renamed copy is still labelled cloud.
* **A server on another computer**, at an address that isn't this Mac.

All of them sit under one switch: **Settings › Memory & privacy › What leaves this Mac › Cloud models**, **off** until you connect a cloud provider or add a server that isn't on your Mac. Each has its own switch under it. With Cloud models off, Canto refuses every model that isn't on your Mac, even one you set up later; the ones you set up stay set up. Turning **Ollama Cloud** off keeps your Ollama models on this Mac working.

A cloud model gets its full context, up to 262,144 tokens, and uses no memory on your Mac.

## Connect OpenRouter

In **Settings › Models › Cloud**, OpenRouter says **Not connected**: Canto contacts nothing there before you connect. **Connect…** opens a sheet that says, before anything happens:

* **What leaves this Mac**: only a chat you send to a cloud model: your question, the chat so far and the notes that chat reads. Never meetings, titles, tags or anything in the background.
* **Who sees it**: OpenRouter, then the company that runs the model.
* **What it costs**: OpenRouter's prices, shown before you send. A question about a note costs about 1–5¢; research can cost 50¢ or more.

Then choose:

* **Monthly limit**: $5, $10, $25, $50 or None. It's **$10** unless you change it, and it's kept and enforced on your Mac: Canto stops at it.
* **Only hosts that keep nothing** (on, recommended). Some hosts may keep your prompts for a while; their terms say for how long.

**Continue in browser** opens openrouter.ai, where you sign in and approve a key for Canto. The key comes back to your Mac and stays in your Keychain; no part of Canto's window can read it. **Paste a key instead** works too. You pay OpenRouter directly, and LonelyDuck never sees your account, your questions or your key.

Once connected, the Cloud section lists models **Picked for Canto**; **Add to composer** offers one in Ask's model list. The row's **⋯** has **Refresh the list**, **Open activity at openrouter.ai** and **Disconnect…**, which deletes the key from your Keychain. To revoke the key itself, use openrouter.ai › Keys.

> **Note:** In this beta, OpenRouter's sign-in page names `localhost` instead of Canto. Direct Anthropic, OpenAI and Google keys aren't in this beta: use OpenRouter, or a server you add.

## What a cloud chat sends

**Before your first message** to a cloud model in a chat, Canto shows **This chat will leave your Mac**: what it sends, to whom, and about what it costs. **Send to** the model, or **Answer on this Mac** instead. You can tick a box so that chat doesn't ask again.

**While the chat's model is off your Mac**, a line inside the composer says **Leaves this Mac** and where it runs, with **Use this Mac** to switch back; **✕** hides it for that chat and model. The model chip and the toolbar show an amber cloud.

**What goes:** your question, the chat so far, and the notes and sources that chat reads, to the provider and the company that runs the model, under their terms. **What doesn't:** anything you didn't send to that chat. Canto never sends notes to a cloud model for work you didn't start.

**After each answer**, the line under it says where it ran; what it cost and this month's total are one click away.

The full list of what can leave your Mac, and every switch, is on [What leaves this Mac](https://lonelyduck.io/docs/canto/privacy).

## Ask with a server or cloud model

Choose the model from the model chip in Ask (`⇧⌘P`). The list has tabs for models on this Mac, your servers and the cloud. Choosing a model never loads it: it loads when you send. See [Ask about your notes](https://lonelyduck.io/docs/canto/ask#models-and-think) and [Models on your Mac](https://lonelyduck.io/docs/canto/models).
