3.6 KiB
3.6 KiB
Sortana
Sortana is an experimental Thunderbird add-on that integrates an AI-powered filter rule. It allows you to classify email messages by sending their contents to a configurable HTTP endpoint. The endpoint should respond with JSON indicating whether the message meets a specified criterion.
Features
- AI classification rule – adds the "AI classification" term with
matches
anddoesn't match
operators. - Configurable endpoint – set the classification service URL on the options page.
- Prompt templates – choose between several model formats or provide your own custom template.
- Filter editor integration – patches Thunderbird's filter editor to accept text criteria for AI classification.
- Result caching – avoids duplicate requests for already-evaluated messages.
- Packaging script –
build-xpi.ps1
builds an XPI ready for installation.
Architecture Overview
The extension relies on both WebExtension scripts and Thunderbird's experiment APIs:
background.js
loads the saved endpoint, registers the UI patching script, and listens for test messages.experiment/api.js
exposes theaiFilter
namespace. It loadsmodules/ExpressionSearchFilter.jsm
which implements the custom filter term and performs the HTTP request.experiment/DomContentScript/
registers content scripts for Thunderbird windows;content/filterEditor.js
modifies the filter editor UI.options/
contains the HTML and JavaScript for the options page._locales/
holds localized strings used throughout the UI.
Key Files
Path | Purpose |
---|---|
manifest.json |
Extension manifest and entry points. |
background.js |
Startup tasks and message handling. |
modules/ExpressionSearchFilter.jsm |
Custom filter term and AI request logic. |
experiment/api.js |
Bridges WebExtension code with privileged APIs. |
content/filterEditor.js |
Patches the filter editor interface. |
options/options.html and options.js |
Endpoint configuration UI. |
Building
- Ensure PowerShell is available (for Windows) or adapt the script for other environments.
- Run
powershell ./build-xpi.ps1
from the repository root. The script reads the version frommanifest.json
and creates an XPI in therelease
folder. - Install the generated XPI in Thunderbird via the Add-ons Manager. During development you can also load the directory as a temporary add-on.
Usage
- Open the add-on's options and set the URL of your classification service.
- Create or edit a filter in Thunderbird and choose the AI classification term. Enter the desired criterion (for example, a short description of the messages you want to match).
- When the filter runs, the add-on sends the message text to the service and checks the JSON response for a match.
License
This project is licensed under the terms of the GNU General Public License
version 3. See LICENSE
for the full text.
Acknowledgments
Sortana builds upon knowledge gained from open-source projects. In particular, FiltaQuilla and Expression-Search-NG clarified how Thunderbird's WebExtension and experiment APIs can be extended. Their code provided invaluable guidance during development.