Local-first email: an open-source, clean-room alternative to Microsoft Outlook, written in Rust.
By Zinadin Zidan and the MailCraft contributors.
mailcraft.dev · Download · Changelog · Roadmap
![]() |
![]() |
MailCraft gives you the everyday Outlook mail workflow with your own mail servers. It keeps a copy of your mail on your computer, so it works offline.
- Familiar: three panes, a ribbon and the usual Outlook shortcuts. Drag messages onto folders.
- Accounts: IMAP or POP with SMTP, JMAP, and Exchange Online (Graph) or on-premises (EWS). Sign in with Gmail or Microsoft 365, see All Inboxes, and open or export
.pstfiles. - Works offline: every folder is kept on disk and synced in the background. Changes you make offline go to the server when you reconnect.
- Reading and writing: conversations, formatted HTML, picture thumbnails, rich-text replies, signatures, drafts, an Outbox, Print and Save as PDF.
- Organising: archive, flag, pin, snooze, categories, Focused and Other, rules, and Undo.
- Search: works offline, with
from:,subject:,has:attachment,is:unreadand more. - Calendar and people: day, week and month views, meeting invitations, tasks, a To-Do Bar beside the mail, an address book, and CalDAV/CardDAV, with a mail account or on their own, from any such server (Nextcloud, Baïkal, SOGo, Radicale and others).
- Private and secure: MailCraft talks only to your servers, always over TLS. Passwords stay in the system keychain. Remote pictures load only when you ask. S/MIME and OpenPGP sign and encrypt, and the message you're writing says whether everyone in it can receive it encrypted.
- Everywhere: Windows, macOS, Linux and the browser (JMAP accounts only), in 15 interface languages.
- Scriptable: every action is a command with an id. The ribbon, shortcuts, the CLI and
--cmdall run the same commands.
Download an installer from mailcraft.dev, which offers the file for your system, or from the Releases page:
- Windows:
.msi, or a portable zip. - macOS:
.dmg. - Linux: AppImage,
.deb,.rpm, Flatpak or.tar.gz. - FreeBSD: a tarball.
To run MailCraft portably, put a portable.txt file beside the app. It then keeps its data in a MailCraftData folder next to it.
cargo run --release -p mailcraft -- --sample # local sample mailbox; drop --sample to add an account
cargo run -p mailcraft-cli -- commands # CLI: add, sync, list, read, search, send, run
cd apps/mailcraft-web && trunk serve # browser: http://127.0.0.1:8774/?sample- The CLI reads your password from
MAILCRAFT_PASSWORD, or asks for it. It never stores it. - MailCraft keeps its data in
%APPDATA%\MailCraft(Windows),~/Library/Application Support/MailCraft(macOS) or~/.local/share/mailcraft(Linux). To use another folder, pass--data DIRor setMAILCRAFT_DATA. - To put the web build on your own site, see hosting the web build.
- Setting up your email account
- Switching from Outlook
- Opening a
.pstfile without Outlook - Running MailCraft from a USB stick
- What each version added
- What comes next
- What's still missing
- How MailCraft is built
- How sync works
- How test builds update themselves
- Microsoft and Google sign-in
- Hosting the web build
- Start with how MailCraft is built.
- Follow the project rules in CLAUDE.md: no crashes, no Microsoft assets, clean room.
- Run
cargo xtask cibefore every commit. - To fuzz the parsers, see fuzzing.
- The installer scripts live in
packaging/. TheReleaseworkflow (release.yml) runs them and publishes a release.
MailCraft is dual-licensed under MIT OR Apache-2.0.
It is built on mail-parser, mail-builder, imap-proto, lettre, rustls, html2text, hayro and egui. .pst files go through MailCraft's own crate, written from Microsoft's published specification.
Microsoft Outlook is a trademark of Microsoft. MailCraft is not affiliated with Microsoft and uses none of its code, icons or assets.


