Himalaya vs mu4e
Himalaya: Command-line email client written in Rust that lists, reads, sends and moves mail through shell commands with JSON output.
mu4e: Email client that runs inside GNU Emacs, built on the mu Maildir indexer and search tool.
Differences
- Himalaya is a command-line program; mu4e is a mail client that runs inside Emacs.
- Only Himalaya has built-in IMAP and JMAP.
- On Windows, Himalaya runs natively and mu4e runs through WSL.
- On BSD, Himalaya builds from source and mu4e runs natively.
- On Android, Himalaya is not available and mu4e runs through Termux.
- mu4e has mouse support; Himalaya does not.
- mu4e has calendar support; Himalaya does not.
- mu4e has OpenPGP; Himalaya does not.
- mu4e has S/MIME; Himalaya does not.
- Himalaya is written in Rust; mu4e in Emacs Lisp (mu4e), C++ (mu).
- Configuration: Himalaya uses TOML file; interactive setup wizard, and mu4e uses Emacs Lisp in init.el.
Side by side
| Himalaya | mu4e | |
|---|---|---|
| Interface | Command-line tools and prompts | Runs inside Emacs |
| Language | Rust | Emacs Lisp (mu4e), C++ (mu) |
| License | MIT or Apache 2.0 | GPL 3.0 or later |
| Latest version | 2.1.0 | 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 | No | Through a separate tool |
| SMTP | Yes | Yes |
| JMAP | Yes | No |
| Maildir | Yes | Yes |
| mbox | No | No |
| notmuch | No | No |
| OpenPGP | No | Yes |
| S/MIME | No | via Emacs MML |
| OAuth2 sign-in | via script | via script |
| Threads | through the IMAP, JMAP and Gmail subcommands | Yes |
| Search | built-in query syntax across backends; server-side for IMAP and JMAP | Xapian full-text index with mu query syntax |
| HTML mail | No | built-in, rendered with the Emacs shr library |
| Mouse | No | Yes |
| Multiple accounts | Yes | via contexts |
| Offline use | with the Maildir backend and a sync tool such as mbsync | full; reads a local Maildir synced by mbsync or OfflineIMAP |
| Calendar | No | replies to invitations with mu4e-icalendar |
| Contacts | No | address completion from indexed mail |
| Vim-style keys | No | No |
| Configuration | TOML file; interactive setup wizard | Emacs Lisp in init.el |
Which to choose
Choose Himalaya for
- Every action is a shell command with optional JSON output, suited to scripts
- Native Windows binary through Scoop and GitHub releases
- Also supports JMAP, the Gmail API and Microsoft Graph
Watch out for
- No interactive interface; himalaya-tui is still pre-release
- Composing rich MIME or PGP messages needs the separate mml tool
- Version 2 dropped the notmuch and sendmail backends
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 Himalaya and mu4e?
Himalaya is a command-line program; mu4e is a mail client that runs inside Emacs. Only Himalaya has built-in IMAP and JMAP. On Windows, Himalaya runs natively and mu4e runs through WSL.
Which runs on Windows, Himalaya or mu4e?
On Windows, Himalaya runs natively. On Windows, mu4e runs through WSL.
See also: Himalaya alternatives, mu4e alternatives.