Matcha vs mu4e
Matcha: Terminal email client written in Go with the Bubble Tea TUI library, with IMAP, JMAP and POP3 support.
mu4e: Email client that runs inside GNU Emacs, built on the mu Maildir indexer and search tool.
Differences
- Matcha is a full-screen terminal client; mu4e is a mail client that runs inside Emacs.
- Only Matcha has built-in IMAP, POP3 and JMAP.
- On Windows, Matcha runs natively and mu4e runs through WSL.
- On BSD, Matcha builds from source and mu4e runs natively.
- On Android, Matcha is not available and mu4e runs through Termux.
- Matcha has Vim-style keys; mu4e does not.
- Matcha is written in Go; mu4e in Emacs Lisp (mu4e), C++ (mu).
- Configuration: Matcha uses ~/.config/matcha/config.json plus in-app settings, and mu4e uses Emacs Lisp in init.el.
Side by side
| Matcha | mu4e | |
|---|---|---|
| Interface | Full-screen terminal interface | Runs inside Emacs |
| Language | Go | Emacs Lisp (mu4e), C++ (mu) |
| License | MIT | GPL 3.0 or later |
| Latest version | v1.0.1 | 1.14.3 |
| Linux | Native | Native |
| macOS | Native | Native |
| Windows | Native | Through WSL |
| BSD | Build from source | Native |
| Android | No | Through Termux |
| IMAP | Yes | Through a separate tool |
| POP3 | Yes | Through a separate tool |
| SMTP | Yes | Yes |
| JMAP | Yes | No |
| Maildir | Yes | Yes |
| mbox | No | No |
| notmuch | No | No |
| OpenPGP | Yes | Yes |
| S/MIME | Yes | via Emacs MML |
| OAuth2 sign-in | Yes | via script |
| Threads | Yes | Yes |
| Search | built-in search and filter | Xapian full-text index with mu query syntax |
| HTML mail | built-in rendering, with inline images in supported terminals | built-in, rendered with the Emacs shr library |
| Mouse | Yes | Yes |
| Multiple accounts | Yes | via contexts |
| Offline use | local cache of message lists and bodies | full; reads a local Maildir synced by mbsync or OfflineIMAP |
| Calendar | shows .ics invites and sends RSVP replies | replies to invitations with mu4e-icalendar |
| Contacts | address book built from sent and received mail | address completion from indexed mail |
| Vim-style keys | Yes | No |
| Configuration | ~/.config/matcha/config.json plus in-app settings | Emacs Lisp in init.el |
Which to choose
Choose Matcha for
- Supports IMAP, JMAP, POP3 and Maildir in one client
- PGP (including YubiKey) and S/MIME signing and encryption
- Prebuilt packages for Linux (Snap, Flatpak), macOS (Homebrew tap) and Windows (winget)
Watch out for
- Young project; v1.0 shipped only after a long series of 0.x releases
- JSON config is less readable to hand-edit than muttrc-style files
- Binary name clashes with an unrelated tool also called matcha
Choose mu4e for
- Full-text search over all local mail through mu's Xapian index.
- Works offline, since all mail lives in a local Maildir.
- Uses Emacs message mode, so PGP/MIME, S/MIME and Org mode links are available.
Watch out for
- No built-in IMAP; needs mbsync or a similar sync tool, so setup spans several config files.
- Requires Emacs and some Emacs Lisp to configure.
- No native Windows build, and Arch packages it only in the AUR.
Questions
What is the difference between Matcha and mu4e?
Matcha is a full-screen terminal client; mu4e is a mail client that runs inside Emacs. Only Matcha has built-in IMAP, POP3 and JMAP. On Windows, Matcha runs natively and mu4e runs through WSL.
Which runs on Windows, Matcha or mu4e?
On Windows, Matcha runs natively. On Windows, mu4e runs through WSL.
See also: Matcha alternatives, mu4e alternatives.