Run a fully local, private AI
The outcome: the @b button in your Thunderbird compose toolbar works exactly like it does with OpenAI or Anthropic — Improve this draft, Summarise this thread, custom prompts — but the model that generates the reply is running on your own laptop. Nothing about the email goes to a third-party AI provider — the model that reads and writes it runs entirely on your own machine.
If “let me use AI on email I’d never paste into ChatGPT” describes how you feel, this is the recipe.
Why pick this
Section titled “Why pick this”- Privacy. The full email content + your prompt is processed locally. Ollama doesn’t have a privacy policy because there’s nothing to log — the model is a file on your disk, talking to a process on your machine.
- No per-call cost. Free model, free inference, free everything. Use it as much as you want.
- No API key shuffle. Skip the “create OpenAI account, get a key,
paste it” dance. Ollama runs on
localhost; @bridge AI Chat points at it directly.
What it costs in tradeoffs
Section titled “What it costs in tradeoffs”- Slower than cloud models. A laptop running Llama 3.1 8B is ~5–20 seconds per “improve this draft” call, vs ~2 seconds for GPT-4o-mini. Use a smaller model + a beefier machine to close the gap.
- Lower quality than GPT-4o or Claude Sonnet 4.6. Llama 3.1 8B is solid for most email work, but it won’t match the frontier models on nuanced tone or multi-paragraph editing.
- Costs you laptop battery + RAM. Running a local model is real compute. If you’re on battery, expect a 20–40% draw while the model is generating.
Set it up
Section titled “Set it up”1. Install Ollama
Section titled “1. Install Ollama”Get Ollama from ollama.com/download. Available for macOS, Linux, Windows.
After install, Ollama runs as a background service on
http://127.0.0.1:11434. You don’t need to do anything to start it —
it’s running.
2. Pull a model
Section titled “2. Pull a model”In a terminal:
ollama pull llama3.1:latestThis downloads about 5 GB. The first call after install is a one-time wait; after that the model is on disk.
If you have a beefy machine (16+ GB RAM, fast CPU or any GPU), try a larger model — quality scales well:
ollama pull llama3.1:70b3. Activate it in @bridge AI Chat
Section titled “3. Activate it in @bridge AI Chat”Open Thunderbird → atbridge.ai addon Settings → @bridge AI Chat section.
- Provider: pick
ollama (local — private)from the dropdown - API key: leave empty (Ollama runs without auth on localhost)
- Click Activate
@bridge generates the encrypted device key locally, asks our backend
to wrap it under the per-environment master, and writes the wrap to
~/.atbridge/connect-wrapped.bin. Even though your LLM is local,
the @bridge AI Chat activation is still server-mediated — that’s
how we prevent a cracked client from spoofing Pro entitlement. The
server does not see your Ollama traffic or your model output;
it only mediates the unwrap step at invoke time.
4. Use the @b button
Section titled “4. Use the @b button”Open a compose window in Thunderbird. Click the @b button on the compose toolbar. The popover appears.
- Click Improve this draft — your draft text is sent to your local
Ollama, the polished version is injected back into the compose
window. Roundtrip: ~5–10 seconds for
llama3.1:lateston a recent laptop. - Or type a custom instruction in the prompt box: “translate this to Spanish”, “make it more formal”, etc.
That’s it. Your email content never crossed your local network interface, let alone the public internet.
Confirm nothing’s leaking
Section titled “Confirm nothing’s leaking”If you want to verify, run a packet capture (tcpdump, Wireshark)
while you click the @b button. You should see:
- A short HTTPS request to
atbridge.aifor the unwrap call (no email content — just{email, license_key, device_id, wrapped_b64}) - A TCP connection to
127.0.0.1:11434(your Ollama, local) - No other outbound traffic
That’s the entire privacy footprint.
- Ollama with auth in front of it (e.g. remote, reverse proxy): paste your Bearer token in the API key field. The OpenAI-compat adapter forwards it.
- Want to point at a non-standard Ollama port? Use the
openai-compatiblepreset instead and paste your custom base URL. - Other local LLM runners (LM Studio, llama.cpp’s server,
vLLM) also speak the OpenAI-compatible API. Use the
openai-compatiblepreset and point at their endpoint.
Was this page helpful?
Thanks for the feedback!