Terminal Email

nmh vs Sup

nmh: The MH message handling system: separate shell commands to read, file, search and send mail stored one file per message.
Sup: Curses email client in Ruby built around threads, labels and fast full-text search over local mail.

Differences

Side by side

nmhSup
InterfaceCommand-line tools and promptsFull-screen terminal interface
LanguageCRuby
LicenseBSD 3-ClauseGPL 2.0 or later
Latest version1.81.4
LinuxNativeNative
macOSNativeNative
WindowsThrough WSLThrough WSL
BSDNativeBuild from source
AndroidThrough TermuxNo
IMAPThrough a separate toolNo
POP3YesNo
SMTPYesThrough a separate tool
JMAPNoNo
MaildirYesYes
mboxYesYes
notmuchNoNo
OpenPGPNoYes
S/MIMENoNo
OAuth2 sign-inNoNo
ThreadsNoYes
Searchpick command matches header fields and message textXapian full-text index with a query language
HTML mailvia mhshow with an external converter such as w3mvia the mime-decode hook and an external viewer such as w3m
MouseNoNo
Multiple accountsvia per-command switches or separate profilesYes
Offline usefull; messages are stored as local filesreads local Maildir or mbox; sync with isync or OfflineIMAP
Calendarreplies to invitations with mhicalNo
Contactsaliases via MailAliases and the ali commandtracks recent contacts automatically
Vim-style keysNoYes
Configuration~/.mh_profile and mts.conf text files~/.sup/config.yaml and ~/.sup/sources.yaml, plus Ruby hooks

Which to choose

Choose nmh for

  • Every action is a shell command, so mail handling is easy to script.
  • One file per message lets grep, find and other Unix tools work on mail.
  • Built-in POP3 and SMTP with TLS and SASL; reads mbox and Maildir drops.

Watch out for

  • No IMAP; IMAP mail must be synced to a Maildir first and then incorporated.
  • No built-in OpenPGP or S/MIME, and no thread view.
  • SMTP authentication needs nmh built with Cyrus SASL and its PLAIN or LOGIN plugin.

Install nmh

Choose Sup for

  • Fast full-text search over large archives
  • Gmail-style labels, archiving and muting of threads
  • Ruby hooks for custom behavior

Watch out for

  • No built-in IMAP or SMTP; needs isync (or similar) and msmtp
  • Changes sync back to Maildir only with the optional sync-back setting
  • Packaged by Debian and Ubuntu (and the AUR); elsewhere installed as a Ruby gem with native Xapian bindings

Install Sup

Questions

What is the difference between nmh and Sup?

nmh is a command-line program; Sup is a full-screen terminal client. Only nmh has built-in POP3 and SMTP. On BSD, nmh runs natively and Sup builds from source.

Which runs on Windows, nmh or Sup?

On Windows, nmh runs through WSL. On Windows, Sup runs through WSL.

See also: nmh alternatives, Sup alternatives.