Terminal Email

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

Side by side

Himalayamu4e
InterfaceCommand-line tools and promptsRuns inside Emacs
LanguageRustEmacs Lisp (mu4e), C++ (mu)
LicenseMIT or Apache 2.0GPL 3.0 or later
Latest version2.1.01.14.3
LinuxNativeNative
macOSNativeNative
WindowsNativeThrough WSL
BSDBuild from sourceNative
AndroidNoThrough Termux
IMAPYesThrough a separate tool
POP3NoThrough a separate tool
SMTPYesYes
JMAPYesNo
MaildirYesYes
mboxNoNo
notmuchNoNo
OpenPGPNoYes
S/MIMENovia Emacs MML
OAuth2 sign-invia scriptvia script
Threadsthrough the IMAP, JMAP and Gmail subcommandsYes
Searchbuilt-in query syntax across backends; server-side for IMAP and JMAPXapian full-text index with mu query syntax
HTML mailNobuilt-in, rendered with the Emacs shr library
MouseNoYes
Multiple accountsYesvia contexts
Offline usewith the Maildir backend and a sync tool such as mbsyncfull; reads a local Maildir synced by mbsync or OfflineIMAP
CalendarNoreplies to invitations with mu4e-icalendar
ContactsNoaddress completion from indexed mail
Vim-style keysNoNo
ConfigurationTOML file; interactive setup wizardEmacs 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

Install Himalaya

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.

Install mu4e

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.