← Resources

Bring your own model

AI in Tundra is off until you turn it on. Connect a cloud key or LM Studio or Ollama, pick a model per job, and see what the agent may do alone.

6 min read

Tundra ships with no AI. There is no model inside the app, no Tundra account and no AI credits to buy. On a fresh install the AI switch is off and the provider list is empty, and mail, calendar, search, snippets, undo send, send later, snooze, rules, follow-ups, Your day, meeting prep and the ⌘K instant answers all work that way.

When you want more (chat with an agent, Catch me up, Write with AI, sentence autocomplete, reading attachments, dictation), you connect a model yourself. It can be a cloud provider with your own key or a model running on your own computer. This guide covers both, how to give each job its own model, and what the agent is allowed to do without asking.

The Add provider menu

Open Settings → Models. Under Providers, an empty list reads "No providers yet. Add a local endpoint (LM Studio / Ollama) or a cloud key (OpenAI, OpenRouter). You can keep several." Click + Add provider. The menu lists:

  • OpenAI
  • Anthropic
  • Google Gemini
  • Mistral
  • OpenRouter
  • LM Studio (local)
  • Ollama (local)
  • Custom…

Each preset fills in the address. For a cloud provider, paste your key and click Save key. Keys go into your system keychain and never into Tundra's database. Click Test connection; it answers with the number of models it found, such as "● 3 models". You can keep as many providers as you like.

Anthropic connects directly to api.anthropic.com with your own key through the native Messages API. The connection supports prompt caching and structured outputs on compatible models. Previously saved Anthropic connections keep their OpenAI-compatible mode; add a new Anthropic provider in Settings → Models to use the native connection.

Custom… takes any OpenAI-compatible address; Groq, DeepSeek, llama.cpp's server and others may work that way, but we have not tested them.

Below the menu there is a separate Codex card for signing in with a ChatGPT plan. Before the browser opens it shows a plain risk review: OpenAI allows this today, it is not a partnership, and if OpenAI changes its mind the consequences land on your ChatGPT account. The card itself recommends an API key.

LM Studio, step by step

  1. Install LM Studio and download a model from its search. For the agent, choose one built for tool use; bigger models manage longer tasks.
  2. Load the model and start LM Studio's local server. It listens on port 1234.
  3. In Tundra, open Settings → Models, click + Add provider and choose LM Studio (local). The address http://localhost:1234/v1 is filled in.
  4. Click Test connection. When it reads "● {n} models", the connection works.

Tundra reads extra details from LM Studio, such as each model's context length, and waits longer for local answers than for cloud ones.

Ollama, step by step

  1. Install Ollama and pull a model, for example ollama pull gemma3:27b. The Ollama app runs its server on port 11434; ollama serve starts it by hand.
  2. In Tundra, click + Add provider and choose Ollama (local). The address http://localhost:11434/v1 is filled in.
  3. Click Test connection.

One model per job

Further down Settings → Models, Where models work gives each job its own model:

  • Agent & chat
  • Command palette (falls back to the agent model when unset)
  • Autocomplete ("A small local model is ideal")
  • Write with AI
  • Background
  • Document vision & OCR
  • Document understanding
  • Dictation transcription

Every slot can point at a local model, a cloud one, or a mix: a large model for the agent, a small fast one for autocomplete. If a provider runs out of quota, Swap a model everywhere moves every job from one model to another in one step.

If your model server runs on another machine on your network, replace localhost in the address with that machine’s address, for example http://192.168.1.20:11434/v1.

Last, switch AI on: Settings → AI & Automations, the AI features row, Enable AI features. Adding a provider does not switch it on for you.

What the agent does on its own, and what always asks

The agent reads freely: it can search your mail, open threads, check the calendar and look at contacts to answer you. When it wants to change something, it usually shows a card whose button names the verb and the count, such as "Archive 12". The card sits in the chat and in the Scratchpad, and you can approve it in either place; in the Scratchpad, Enter approves and x rejects. A draft it wants to write asks through a card of its own, with Allow once, Allow in this chat and Reject, and lands in Drafts. Approved changes land in the Journal, where you can undo them.

How often it asks is your choice, per chat, from the autonomy chip:

  • Careful asks before writing anything.
  • Balanced asks the first time, then remembers.
  • Hands-free asks for fewer approvals.
  • Read-only just looks and never changes anything.

Three rules hold in every mode. Sending an email always needs your OK. Marking mail read or unread from chat always asks. Destructive actions are never approved automatically.

Two things run without a card, and it is better to know them up front. The Scratchpad runs some instant tidy-ups right away, each with an undo. Rules you write run their exact actions unattended, the same as a mail filter would.

Work that happens without a chat has its own setting, in Settings → AI & Automations: Proactive, Balanced or Manual. Manual means nothing runs on its own, and every AI feature still works when you ask. Draft on a schedule writes reply drafts for unread mail at set times; they are parked in Drafts and never sent.

A few doors ask whatever the mode. Once private mail is in a chat, a web search waits for your permission. A call to an MCP server asks first, reads included. You can allow it once, for the rest of the chat when it came from one, or always. Letting a cloud model read your attachments is a separate switch, Allow cloud document reading, which is off by default; a model on your own machine never needs it.

What it costs

Tundra charges nothing for AI. A cloud provider bills you directly through your own key, and a local model in LM Studio or Ollama costs nothing beyond your hardware and electricity.

Tundra shows you what you spend. The agent shows today's spend and the tokens each turn used, with prices taken from the public models.dev list (Tundra refreshes it hourly, even with AI off). Background work has a daily budget with its own meter. Chats you start are never capped. With a local background model, background work is free and the budget only limits how much runs.

A word on quality

Tundra runs on local models, and it is tuned for many model families. Results still depend on the model: a small model on a laptop handles less than a large one on a desktop or a cloud model. Start with the agent on the best model you have, try Catch me up on a real morning, and move the smaller jobs to smaller models once you know what each one does well.

To try the steps on sample data first, open Run a local model on your own mail.

Try Tundra on your own mail.
Start with your noisiest sender.

Download for macOS

Free for personal use. Open beta.