A Thunderbird WebExtension that lets you read and write Slack messages without leaving your email client.
| Feature | Details |
|---|---|
| Channel list | All Slack channels you are a member of appear in the left panel. |
| Unread badges | Channels with unread messages are shown in bold (Thunderbird style). |
| Message thread | Click a channel to see its messages in the right panel, newest at the bottom. |
| Compose & send | Type in the box at the bottom; press Enter to send (Shift+Enter for a new line). |
| Reply in thread | Every message has a Reply button. Replies are sent as Slack threads and are also broadcast to the channel. |
| Live updates | The extension polls Slack every 30 seconds to refresh messages and unread counts. |
| Tool | Version | Install |
|---|---|---|
zip |
any | sudo apt install zip |
python3 |
≥ 3.6 | sudo apt install python3 |
git |
any | sudo apt install git |
No Node.js or Rust toolchain is required. The extension is pure JavaScript / HTML / CSS.
Minimum Thunderbird version: 128.0 (the Supernova UI rework and the stable Spaces API both require Thunderbird 128+).
# Clone the repository
git clone https://github.com/gortazar/thunderbird-slack-provider.git
cd thunderbird-slack-provider
# Extract the version number from the manifest
VERSION=$(python3 -c "import json; print(json.load(open('src/manifest.json'))['version'])")
# Package all source files into an .xpi file (a renamed .zip)
mkdir -p dist
cd src
zip -r "../dist/thunderbird-slack-provider-${VERSION}.xpi" .
cd ..
echo "Built: dist/thunderbird-slack-provider-${VERSION}.xpi"The resulting .xpi file contains everything needed for installation.
The extension uses the Slack Web API with a Bot or User OAuth token.
- Go to https://api.slack.com/apps and click Create New App → From scratch.
- Give it a name (e.g. Thunderbird Slack Provider) and choose your workspace.
Navigate to OAuth & Permissions → Scopes.
Add the following Bot Token Scopes:
| Scope | Purpose |
|---|---|
channels:read |
List public channels |
groups:read |
List private channels |
channels:history |
Read public channel messages |
groups:history |
Read private channel messages |
chat:write |
Post messages |
users:read |
Resolve display names and avatars |
channels:manage (optional) |
Mark channels as read |
- Click Install to Workspace on the OAuth & Permissions page.
- Authorise the permissions.
- Copy the Bot User OAuth Token (starts with
xoxb-).
- Open Thunderbird and navigate to the Slack space (Slack icon in the left toolbar).
- If not yet configured, click Open Settings.
Alternatively: Tools → Add-ons and Themes → Thunderbird Slack Provider → Preferences. - Paste your token and click Save Token.
- Click Test Connection to verify everything works.
Tip – User Token vs Bot Token
A Bot Token (xoxb-) only sees channels the bot has been invited to.
A User Token (xoxp-) sees all channels the human user can access.
For personal use, a User Token with the same scopes is often more convenient.
- Download the latest
.xpifrom the Releases page. - Follow Option B → Step 3 below.
# Open Thunderbird
thunderbird &- In Thunderbird open Tools → Add-ons and Themes (or press
Ctrl+Shift+A). - Click the ⚙️ gear icon → Install Add-on From File….
- Browse to
dist/thunderbird-slack-provider-<version>.xpiand click Open. - Click Add on the confirmation dialog.
- The Slack icon will appear in the Spaces toolbar on the left side of the Thunderbird window.
Snap packages use strict confinement and mount the application in a read-only filesystem.
Install the add-on through the Thunderbird UI in exactly the same way:
# Launch the snap version
snap run thunderbird &Then follow steps 1–5 from the standard installation above.
The Add-on Manager is identical regardless of how Thunderbird was installed.
Note: Thunderbird requires add-ons to be signed by Mozilla for automatic installation in release builds.
To install an unsigned add-on locally:
- Go to
about:configin a Thunderbird compose window (or open it via the URL bar in a tab).- Set
xpinstall.signatures.requiredtofalse.- Restart Thunderbird.
Alternatively, use the Developer Edition of Thunderbird, which has signature enforcement disabled by default.
For development and testing without repackaging after every change:
- Navigate to
about:debuggingin Thunderbird. - Click This Thunderbird.
- Click Load Temporary Add-on….
- Select
src/manifest.jsonfrom the cloned repository.
The extension will be active until Thunderbird restarts.
Every pull request and push to main triggers the Build and Release workflow (.github/workflows/build.yml):
- Validate – checks that
manifest.jsonis well-formed and contains all required fields. - Package – zips the
src/directory into a.xpifile. - Upload artifact – attaches the
.xpito the workflow run for inspection. - Publish release (main branch only) – creates (or replaces) a GitHub Release tagged
v<version>with the.xpias the downloadable binary.
Pull requests are welcome. To run the development version, see Option C above.
Please keep the version field in src/manifest.json updated for any release you intend to ship — the CI pipeline derives the release tag from it.