Use ChatGPT, Google Gemini, Claude or Ollama to enhance your emails!
ThunderAI is a Thunderbird add-on that brings AI directly into your mailbox: analyse, write, correct, translate, summarize, tag and optimize your emails, and turn them into calendar events or tasks — without leaving Thunderbird.
You can connect it to a cloud provider (ChatGPT, OpenAI, Google Gemini, Claude) or keep everything local with Ollama or an OpenAI-compatible server.
You can also define, export and import your own custom prompts, and use additional data placeholders in any of them.
Install ThunderAI from the Thunderbird Add-on site, or download the last release from the release page.
Note
Requirements: Thunderbird 140.0 or later.
On first run a Setup Wizard guides you through choosing an AI provider, testing the connection and enabling the automatic features, no manual configuration needed. You can launch it again at any time from the welcome page, the toolbar popup or the settings page.
The Calendar event and Task actions also require the companion add-on ThunderAI Sparks.
Using an API integration, ThunderAI can work on incoming mail on its own:
Drafts, templates, outbox and sent messages are skipped, so a draft is never processed while you are writing it. Several emails can be processed in parallel, and the same feature never runs twice on the same email. When the AI server is temporarily unavailable a request is repeated automatically, and the automatic processing stops by itself when the provider's rate limit or quota is exceeded.
- Custom prompts — create, edit, export and import your own prompts in a list with a detail editor, or review all of them and their options in a table view, with
{%placeholder%}highlighting, autocomplete and validation while you type. Every change is saved immediately - Custom data placeholders — define your own reusable data tokens
- Menu order — drag and drop to choose which prompts appear in the popup and in the context menu, and in which order
- Per-prompt and per-feature integration — any prompt, and any feature such as Summarize, Translate or the Spam filter, can use a different AI provider, model and advanced options than the global one
- AI chat window — conversation turns, the API and model in use, light/dark theme following Thunderbird, per-answer actions, thinking/reasoning blocks and, optionally, the tokens used by each answer
- Quick access — search box in the popup and the
Ctrl+Alt+Ashortcut - Batch processing — run a prompt on many emails, with a progress counter and a stop button
- Many interface languages, check here the list
ThunderAI supports the Thunderbird Enterprise Policies: with policies.json an administrator can pre-configure or enforce any setting, including the AI connections, provide organization prompts, turn off prompt management, hide the built-in prompts and disable the setup wizard. See the Enterprise Configuration guide for where policies.json goes, a worked example and the full key reference.
| Provider | API key | Notes |
|---|---|---|
| ChatGPT Web | not needed | Works with a free account: the prompt is sent through a ChatGPT window. Supports a specific model, a Project, a Custom GPT and temporary chats. An optional extended model check makes sure the requested model is selected before sending |
| OpenAI API | required | Model, developer messages, temperature, Top P, max output tokens, verbosity, output format (JSON schema), truncation, prompt cache key, service tier, safety identifier and conversation storage. On reasoning models you can set the reasoning summary and the effort, and send extra JSON parameters with every request. The options adapt to the selected model |
| Google Gemini | required | Model, temperature, Top P, Top K, max output tokens, System Instructions, extra body data and thinking budget — leave the budget empty to let the model decide |
| Claude API | required | Model, system prompt, max tokens, temperature, Top P, Top K, stop sequences, extended thinking budget and effort. The request adapts to the selected model, so the options that a model rejects are disabled instead of failing. Requires the permission "Access your data for sites in the https://anthropic.com domain" |
| Ollama | optional | Runs fully locally: model, context size, temperature, reasoning level, system prompt, keep model loaded, extra options and forced JSON output, adapting to the selected model. The API key is needed only for the hosted API at ollama.com or for a server behind an authenticating proxy. The server must accept requests from the add-on, adding OLLAMA_ORIGINS = moz-extension://* to its environment variables — more info about CORS |
| OpenAI Compatible | optional | Any OpenAI-compatible server, local or remote, such as LM Studio. Ready-made configurations for DeepSeek, Grok, Mistral, OpenRouter and Perplexity, or set the host by hand. The "v1" compatibility segment can be turned off, the model name typed manually when the server exposes no models list, and extra JSON parameters sent with every request |
- ThunderAI home page — features and guides
- Setup Guides — step-by-step guides to connect ThunderAI to the AI backend of your choice, from ChatGPT to local models with Ollama
- Enterprise Configuration — deploy ThunderAI across an organization: pre-configure or enforce settings and distribute a shared set of prompts with the Thunderbird Enterprise Policies
- Custom Prompt Tutorial — learn how to build your first custom prompt from scratch, combining placeholders and user input to automate your email replies
- ThunderAI Prompt Architect — let ChatGPT help you crafting your custom prompts. Thanks to Paweł for this tool!
- Changelog — all of the changes of ThunderAI
Before opening an issue or a pull request, please read the contributing guidelines: they explain how to report issues, help with translations and which branch to target with a pull request.
- Found a bug, or have an idea? Open an issue using the bug report or feature request templates.
- Do you want to help translate this add-on? Find out how! Translations are managed on Weblate — please do not edit the locale files directly, only
_locales/en/messages.jsonis edited by hand.
The add-on itself has no build step and no dependencies: it is plain JavaScript loaded as it is by Thunderbird. ThunderAI has an automated test suite in tests/, covering one area at a time — the enterprise managed configuration, the prompts and placeholders, the API integrations, the settings pages, the AI chat window, what the add-on reads from and writes into a mail, the background, ChatGPT Web and more — in two levels, both run from the repository root with Node's built-in test runner:
# Level 1 - the modules. Node 22 or later, nothing to install
node --test "tests/**/*.test.mjs"
# Everything, including the DOM tests (the pages loaded in jsdom).
# Node 22.22+ or 24.15+
npm ci
npm testnpm is used for development tooling only: jsdom is the one development dependency, and nothing in package.json or node_modules is part of the add-on or ends up in the XPI. The tests run in CI on demand only — manually from the Actions tab, or by adding the run-tests label to a pull request — not on every commit. How they work, and how to add a scenario or a page, is explained in tests/README.md.
You can find all the information on this page.
Are you using this addon in your Thunderbird?
Consider supporting the development with a small donation. Click here!
ThunderAI is released under the GNU General Public License v3.0. See LICENSE for the full text.
- Brazilian Portuguese - Português Brasileiro (pt-br): Bruno Scatolin, Bruno Pereira de Souza, Generated automatically
- Chinese (Simplified) - Jiǎntǐ Zhōngwén (简体中文) (zh_Hans): jeklau, Min9X1n, Evereasy
- Chinese (Traditional) - Fántǐ Zhōngwén (繁體中文) (zh_Hant): Evereasy
- Croatian - Hrvatski (hr): Maurizio Domba Cerin, Petar Jedvaj
- Czech - Čeština (cs): Jaroslav Staněk, Fjuro
- French - Français (fr): Noam, Generated automatically
- German - Deutsch (de): Generated automatically
- Greek - Elliniká (Ελληνικά) (el): ChristosK.
- Hungarian - Magyar (hu): Roland S, Benedek Vigh (冯白诺)
- Indonesian - Bahasa Indonesia (id): Arif Budiman
- Italian - Italiano (it): Mic
- Japanese - Nihongo (日本語) (ja): Taichi Ito, Generated automatically
- Polish - Polski (pl): Michał Stankiewicz, makkacprzak, LukaszJal, neexpl, Generated automatically
- Portuguese - Português (pt): Silvério Santos, Afonso Nóbrega, Antonio Lucena de Faria
- Russian - Russkiy (русский) (ru): Maksim_220 Кабанов, G S (TAra), Konstantin Spirin
- Spanish - Español (es): Gerardo Sobarzo, Andrés Rendón Hernández, Erick Limon
- Swedish - Svenska (sv): Andreas Pettersson, Luna Jernberg
Do you want to help translate this addon? Find out how!
The language status represents the percentage of translated strings in the latest stable release.
- ChatGPT-4 for the help with the addon icon ;-)
- loading.io for the loading SVGs
- Fluent Design System for the Custom Prompts table sorting icons
- JessiGue for the show/hide icon for api key fields
- Iconka.com for various context menu icons
- Icojam for various context menu icons
- Roundicons for the summarize context menu icon
- HideMau for the ai summarize icon
- Hilmy Abiyyu A. for various context menu icons
- bearicons for the empty context menu icon
- meaicon for the add task context menu icon
- chatgpt.js for providing methods to interact with the ChatGPT web frontend
- Julian Harris for his project chatgpt-frontend-nobuild, that has been used as a starting point for the API Web Interface
- Hosted Weblate for managing the localization
- Thunderbird Addon Options Manager as the basis for the preference handling










