Terminal Email

Himalaya vs NeoMutt

Himalaya: Command-line email client written in Rust that lists, reads, sends and moves mail through shell commands with JSON output.
NeoMutt: Full-screen terminal mail reader forked from Mutt, with notmuch, NNTP, Lua scripting and a sidebar built in.

Differences

Side by side

HimalayaNeoMutt
InterfaceCommand-line tools and promptsFull-screen terminal interface
LanguageRustC
LicenseMIT or Apache 2.0GPL 2.0 or later
Latest version2.1.020260616
LinuxNativeNative
macOSNativeNative
WindowsNativeThrough WSL
BSDBuild from sourceNative
AndroidNoThrough Termux
IMAPYesYes
POP3NoYes
SMTPYesYes
JMAPYesNo
MaildirYesYes
mboxNoYes
notmuchNoYes
OpenPGPNoYes
S/MIMENoYes
OAuth2 sign-invia scriptvia script
Threadsthrough the IMAP, JMAP and Gmail subcommandsYes
Searchbuilt-in query syntax across backends; server-side for IMAP and JMAPbuilt-in patterns; notmuch for full-text
HTML mailNovia mailcap and an external viewer such as w3m or lynx
MouseNoNo
Multiple accountsYesYes
Offline usewith the Maildir backend and a sync tool such as mbsyncwith isync or OfflineIMAP; IMAP header and body cache
CalendarNoNo
ContactsNovia query_command with abook or khard
Vim-style keysNoYes
ConfigurationTOML file; interactive setup wizardneomuttrc text file

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 NeoMutt for

  • Built-in notmuch support for tag-based virtual mailboxes and full-text search
  • Reads Usenet over NNTP and supports Lua scripting
  • Reads most existing muttrc files with few or no changes

Watch out for

  • Configuration is a text file with hundreds of options and no setup wizard
  • HTML mail needs an external viewer set up in mailcap
  • OAuth2 needs an external token script such as mutt_oauth2.py

Install NeoMutt

Questions

What is the difference between Himalaya and NeoMutt?

Himalaya is a command-line program; NeoMutt is a full-screen terminal client. Only Himalaya has built-in JMAP. Only NeoMutt has built-in POP3, mbox and notmuch.

Which runs on Windows, Himalaya or NeoMutt?

On Windows, Himalaya runs natively. On Windows, NeoMutt runs through WSL.

See also: Himalaya alternatives, NeoMutt alternatives.