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
- 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.
- On Android, nmh runs through Termux and Sup is not available.
- nmh has calendar support; Sup does not.
- Sup has OpenPGP; nmh does not.
- Sup has Vim-style keys; nmh does not.
- Sup has threaded views; nmh does not.
- nmh is written in C; Sup in Ruby.
- Configuration: nmh uses ~/.mh_profile and mts.conf text files, and Sup uses ~/.sup/config.yaml and ~/.sup/sources.yaml, plus Ruby hooks.
Side by side
| nmh | Sup | |
|---|---|---|
| Interface | Command-line tools and prompts | Full-screen terminal interface |
| Language | C | Ruby |
| License | BSD 3-Clause | GPL 2.0 or later |
| Latest version | 1.8 | 1.4 |
| Linux | Native | Native |
| macOS | Native | Native |
| Windows | Through WSL | Through WSL |
| BSD | Native | Build from source |
| Android | Through Termux | No |
| IMAP | Through a separate tool | No |
| POP3 | Yes | No |
| SMTP | Yes | Through a separate tool |
| JMAP | No | No |
| Maildir | Yes | Yes |
| mbox | Yes | Yes |
| notmuch | No | No |
| OpenPGP | No | Yes |
| S/MIME | No | No |
| OAuth2 sign-in | No | No |
| Threads | No | Yes |
| Search | pick command matches header fields and message text | Xapian full-text index with a query language |
| HTML mail | via mhshow with an external converter such as w3m | via the mime-decode hook and an external viewer such as w3m |
| Mouse | No | No |
| Multiple accounts | via per-command switches or separate profiles | Yes |
| Offline use | full; messages are stored as local files | reads local Maildir or mbox; sync with isync or OfflineIMAP |
| Calendar | replies to invitations with mhical | No |
| Contacts | aliases via MailAliases and the ali command | tracks recent contacts automatically |
| Vim-style keys | No | Yes |
| 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.
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
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.