TabMail is a Thunderbird add-on that adds:
This add-on targets Thunderbird MV3 and uses experiments sparingly for Thunderbird-specific integration points.
Thunderbird (local mail + calendars)
├─ chat/ (UI + tool orchestration + FSM workflows)
├─ agent/ (message workflows, tagging, summarization, reminders)
├─ compose/ (autocomplete + editing UX)
├─ fts/ (local search index + memory; native host required)
├─ theme/ (palette-based theming + UI tweaks)
├─ config/ (options UI)
├─ prompts/ (custom user prompts)
├─ templates/ (email templates)
├─ marketplace/ (community template marketplace)
├─ welcome/ (onboarding wizard)
└─ popup/ (browser action popup + auth)
│
│ Supabase auth (OAuth popup → `tabmail.ai/auth/tb-callback`)
▼
Cloudflare Worker backend (`api.tabmail.ai` / `dev.tabmail.ai`)
├─ Bearer token auth + consent gate
├─ Entitlements from KV + quota/throttle via usage worker
└─ LLM completions + server tools
The add-on is split into several MV3 “background modules” (see manifest.json → background.scripts):
agent/: Message workflows (processing, tagging, summaries, reminders), plus some privileged integrations via experiments.chat/: Chat window UI (chat.html/chat.js/chat.css), tool orchestration, and chat-specific modules.
chat/tools/ — Tool implementations for email, calendar, contacts, web, and knowledge base operations.chat/fsm/ — Finite state machines for multi-step workflows (compose, delete, archive, calendar CRUD, etc.).chat/modules/ — Core chat functionality (context, converse, markdown, SSE/WS tools, etc.).compose/: Composer integration for smart compose and inline edits.fts/: Local search/indexing via native FTS helper (required); see fts/README.md.theme/: Theme system + palette; see theme/README.md and theme/palette/README.md.config/: Options UI and settings modules.gui/: UI tweaks and layout helpers (some via experiments).popup/: The extension popup and auth helpers.welcome/: Onboarding wizard with multi-page setup flow.prompts/: Custom user prompts UI — allows users to define custom action, composition, and knowledge base prompts.templates/: Email templates system — user-defined email templates with variable substitution.marketplace/: Community template marketplace — browse and install shared templates.keepalive/: Keep-alive and lifecycle helpers (via experiment tmKeepAlive).icons/: SVG icons used by the add-on (tab icon, sort icons, view mode icons).Experiments are defined in manifest.json under experiment_apis and implemented under the corresponding */experiments/ folders.
Use experiments only when the Thunderbird WebExtension API cannot provide the needed integration point.
Current experiments by module:
| Module | Experiments |
|---|---|
keepalive/ | tmKeepAlive |
chat/ | tmCalendar, glodaSearch, messageSelection, tmWebFetch |
agent/ | tmMsgNotify, tmHdr |
theme/ | keyOverride, threadTooltip, tagSort, threadPaneDisplayToggle, tmTheme, tmMessageListCardView, tmMessageListTableView, tmPreviewGate, threadMessages |
gui/ | tmPrefs, tmTweaks, tmUpdates |
All colors come from the palette system:
theme/palette/palette.data.jsontheme/palette/README.mdtheme/README.mdtheme/README_ARCHITECTURE.mdFTS is implemented in fts/ and uses a native messaging host (Rust binary with bundled SQLite + FTS5) for fast local indexing.
The native FTS helper is required — it powers both email search and chat memory features.
The native FTS helper is source-available: github.com/TabMail/tabmail-native-fts
See fts/README.md for architecture and operational notes.
The add-on calls the TabMail backend at:
https://api.tabmail.aihttps://dev.tabmail.aiAuthentication is via Supabase access tokens; the add-on uses the hosted TB callback page:
https://tabmail.ai/auth/tb-callbackBackend details (routing, auth, quota/throttle, endpoints) are to be released later as API docs.
tabmail-thunderbird/manifest.jsonconfig/config.htmlmanifest.json → commands.open-chat-windowThis project is open source under the Mozilla Public License 2.0 (MPL-2.0).
Copyright © Lisem AI Ltd.
See:
We welcome contributions! This project uses the
Developer Certificate of Origin (DCO) —
sign off every commit with git commit -s.
See CONTRIBUTING.md for details.
"TabMail" is a trademark of Lisem AI Ltd. This license does not grant permission to use the TabMail name or branding.
See TRADEMARKS.md.
437 commits
JavaScript
94.6%
CSS
3.1%
HTML
2.3%
TabMail is a Thunderbird add-on that adds:
This add-on targets Thunderbird MV3 and uses experiments sparingly for Thunderbird-specific integration points.
Thunderbird (local mail + calendars)
├─ chat/ (UI + tool orchestration + FSM workflows)
├─ agent/ (message workflows, tagging, summarization, reminders)
├─ compose/ (autocomplete + editing UX)
├─ fts/ (local search index + memory; native host required)
├─ theme/ (palette-based theming + UI tweaks)
├─ config/ (options UI)
├─ prompts/ (custom user prompts)
├─ templates/ (email templates)
├─ marketplace/ (community template marketplace)
├─ welcome/ (onboarding wizard)
└─ popup/ (browser action popup + auth)
│
│ Supabase auth (OAuth popup → `tabmail.ai/auth/tb-callback`)
▼
Cloudflare Worker backend (`api.tabmail.ai` / `dev.tabmail.ai`)
├─ Bearer token auth + consent gate
├─ Entitlements from KV + quota/throttle via usage worker
└─ LLM completions + server tools
The add-on is split into several MV3 “background modules” (see manifest.json → background.scripts):
agent/: Message workflows (processing, tagging, summaries, reminders), plus some privileged integrations via experiments.chat/: Chat window UI (chat.html/chat.js/chat.css), tool orchestration, and chat-specific modules.
chat/tools/ — Tool implementations for email, calendar, contacts, web, and knowledge base operations.chat/fsm/ — Finite state machines for multi-step workflows (compose, delete, archive, calendar CRUD, etc.).chat/modules/ — Core chat functionality (context, converse, markdown, SSE/WS tools, etc.).compose/: Composer integration for smart compose and inline edits.fts/: Local search/indexing via native FTS helper (required); see fts/README.md.theme/: Theme system + palette; see theme/README.md and theme/palette/README.md.config/: Options UI and settings modules.gui/: UI tweaks and layout helpers (some via experiments).popup/: The extension popup and auth helpers.welcome/: Onboarding wizard with multi-page setup flow.prompts/: Custom user prompts UI — allows users to define custom action, composition, and knowledge base prompts.templates/: Email templates system — user-defined email templates with variable substitution.marketplace/: Community template marketplace — browse and install shared templates.keepalive/: Keep-alive and lifecycle helpers (via experiment tmKeepAlive).icons/: SVG icons used by the add-on (tab icon, sort icons, view mode icons).Experiments are defined in manifest.json under experiment_apis and implemented under the corresponding */experiments/ folders.
Use experiments only when the Thunderbird WebExtension API cannot provide the needed integration point.
Current experiments by module:
| Module | Experiments |
|---|---|
keepalive/ | tmKeepAlive |
chat/ | tmCalendar, glodaSearch, messageSelection, tmWebFetch |
agent/ | tmMsgNotify, tmHdr |
theme/ | keyOverride, threadTooltip, tagSort, threadPaneDisplayToggle, tmTheme, tmMessageListCardView, tmMessageListTableView, tmPreviewGate, threadMessages |
gui/ | tmPrefs, tmTweaks, tmUpdates |
All colors come from the palette system:
theme/palette/palette.data.jsontheme/palette/README.mdtheme/README.mdtheme/README_ARCHITECTURE.mdFTS is implemented in fts/ and uses a native messaging host (Rust binary with bundled SQLite + FTS5) for fast local indexing.
The native FTS helper is required — it powers both email search and chat memory features.
The native FTS helper is source-available: github.com/TabMail/tabmail-native-fts
See fts/README.md for architecture and operational notes.
The add-on calls the TabMail backend at:
https://api.tabmail.aihttps://dev.tabmail.aiAuthentication is via Supabase access tokens; the add-on uses the hosted TB callback page:
https://tabmail.ai/auth/tb-callbackBackend details (routing, auth, quota/throttle, endpoints) are to be released later as API docs.
tabmail-thunderbird/manifest.jsonconfig/config.htmlmanifest.json → commands.open-chat-windowThis project is open source under the Mozilla Public License 2.0 (MPL-2.0).
Copyright © Lisem AI Ltd.
See:
We welcome contributions! This project uses the
Developer Certificate of Origin (DCO) —
sign off every commit with git commit -s.
See CONTRIBUTING.md for details.
"TabMail" is a trademark of Lisem AI Ltd. This license does not grant permission to use the TabMail name or branding.
See TRADEMARKS.md.
437 commits
JavaScript
94.6%
CSS
3.1%
HTML
2.3%