English
Getting started
Swanmail is a desktop email client for macOS, Windows and Linux, with a Go backend, a React interface shown in the system's own WebView, and a local SQLite database. It is telemetry-free and AI-ready.
Download and install
Swanmail runs on macOS 11 or later (release builds are for Apple silicon), on 64-bit Windows 10 and 11 with the Microsoft Edge WebView2 Runtime (part of Windows 11; the installer adds it where it is missing), and on Linux with GTK 4 and WebKitGTK 6.0 (Debian 13, Ubuntu 26.04 or later).
Releases are published on swanmail.app/download:
| Platform | Download |
|---|---|
| macOS (Apple silicon) | .dmg |
| Windows (x64) | Swanmail-<version>-windows-x64-setup.exe |
| Linux (x86-64) | .deb, an Arch package (.pkg.tar.zst), or a .tar.gz |
On macOS, open the .dmg and move Swanmail to Applications. The app is not notarized, so remove the quarantine attribute once before the first launch:
bash
xattr -dr com.apple.quarantine /Applications/Swanmail.appOn Windows, run the installer. It installs Swanmail for your account only, in %LOCALAPPDATA%\Programs\Swanmail, without administrator rights, adds it to the Start menu and to Settings → Apps, and can put the command-line tool swanmail-cli on your PATH. The installer is not code-signed, so Microsoft Defender SmartScreen warns that it comes from an unknown publisher: choose More info, then Run anyway. Swanmail then keeps itself up to date: an update is downloaded in the background and installed when you choose Restart to Update.
On Linux, install the package with your package manager, or unpack the tarball into / or ~/.local. The app installs as swanmail and the command-line tool as swanmail-cli.
Arch Linux
On Arch Linux, Omarchy included, add swanmail.app's package repository instead, and Swanmail is updated with the rest of the system. Trust the repository's signing key once, then add the repository and install:
bash
curl -fsSO https://swanmail.app/arch/swanmail.asc
sudo pacman-key --add swanmail.asc
sudo pacman-key --lsign-key 8BD26B8D30E97BAA2E1A7061ED15FAAF27DEFEA3
printf '\n[swanmail]\nSigLevel = Required DatabaseOptional\nServer = https://swanmail.app/arch/$arch\n' | sudo tee -a /etc/pacman.conf
sudo pacman -Syu swanmailAfter that, sudo pacman -Syu (or your desktop's system update) installs each new version. pacman checks every package against the key's signature and refuses one without it. When a new version is out, Settings → About and the update window give the command to run.
First-run setup
On first launch Swanmail shows a welcome screen with an Add Account button; later accounts are added from Settings → Accounts. Swanmail supports:
- Gmail, with Continue with Google
- Outlook.com, Hotmail and Microsoft 365, with Continue with Microsoft (over IMAP, or over Microsoft Graph when the organization has turned IMAP off)
- Yahoo, with an app password
- Fastmail, with an API token (synced and sent over JMAP) or an app password (IMAP and SMTP)
- QQ Mail, Tencent Exmail and NetEase (163, 126), with an authorization code
- Generic IMAP/SMTP
- POP3 (receive only), with SMTP for sending
- On-premises Exchange Server over Exchange Web Services (EWS)
A release build comes with the Google and Microsoft sign-in clients built in, so those two buttons need no setup. A build of your own has them only when it is given them; otherwise, or to use your own OAuth app, provide the client ID (and secret, for Google) through the app's config.json. See the Accounts page for details. Sign-in opens in your web browser.
If you prefer not to use OAuth at all, use Generic IMAP/SMTP with your email password or app-specific password.
Daily use
- Read mail: select a folder or mailbox from the sidebar. Conversations, remote images, calendar invitations, unsubscribe and message source are covered in Reading mail.
- Unread view: select Unread from the sidebar to see unread Inbox messages across accounts. All Mail and user-label copies are excluded. Messages you open are marked as read (the blue dot disappears) but stay in the list until you leave the view, so you do not lose your place while reading.
- Search: the search bar runs full-text queries across subjects, bodies, and addresses, with operators such as
from:,has:attachmentandbefore:. For every account type but POP3, Swanmail also searches the server for messages that have not been synced locally. See Organizing mail. - Organize: folders, tags, rules, snooze, muting and pinning conversations, and undo are in Organizing mail.
- Write: aliases, templates, inline images, send later and read receipts are in Composing.
- AI features: after adding an AI agent in Settings → AI Agents, you can summarize, translate, classify, or run custom filters on messages.
- Encryption: OpenPGP in Settings → GPG Encryption (guide) and S/MIME in Settings → S/MIME (guide).
- Keyboard shortcuts: press
?at any time to see the shortcut reference. - Remote images: Images are blocked by default. You can allow them once, or allow a sender/domain from the message banner; rules are stored per account.
- Menu bar: the menu-bar icon shows the unread count and opens a menu with All Inboxes, each account, Compose Email, Settings… and Quit Swanmail. See Reading mail.
Notifications
Enable Settings → General → Notifications → New mail notifications to receive desktop alerts when new messages arrive. Use the Notification sound option to choose between the system sound and silent notifications. With notifications on, 4 more options appear:
- Notification buttons — a notification for a single message offers Archive, Mark as read and Reply. macOS shows them on the banner (the first inline, the rest under Options), Windows on the notification; on Linux they appear where the desktop's notification service shows actions. Clicking the notification opens the message everywhere. When a new message holds a one-time code, such as a sign-in code, the notification shows the code and offers Copy Code first. Swanmail offers it only when it is sure of the code, so some messages with a code get a plain notification. Copying does not mark the message as read.
- Show the receiving account — the notification shows the address of the account that received the mail under its title. This is on by default. Turn it off for a shorter notification.
- Quiet hours — a daily window, on the days you choose, with no banner and no sound. The unread badge still counts up and mail still syncs. The window may run past midnight.
- VIP senders — addresses, or whole domains written
@example.com, whose mail notifies even during quiet hours and from a muted account (a conversation you muted stays silent). Notify only for VIPs silences everyone else. Add or remove a VIP from a message's…menu or the command palette; VIP mail carries a small mark in the list.