"All mail clients suck. This one just sucks less.", quote on mutt.org

Mutt is a highly extensible mail user agent for Unix, licensed under the GNU GPL. It is a purely text based client, like Pine or Elm, which can be a little hard for people to get used to if they are accustomed to graphical mailers like Outlook or Eudora.

Mutt is very extensible via keybindings and macros, and because you can usually have Mutt execute arbitrary programs to figure out option values, or in response to commands, you can have it do many useful things, assuming you have some proficiency with Perl, shell, or some other programming language. For example, by pressing ')' or '(', I can inform Spamassassin that a particular mail is or is not spam, to train the Bayesian filters. Note that Mutt has no idea what Spamassassin is, and out of the box it has no idea what '(' or ')' do. So it will work with basically any tool you want it to, given a little glue in your config.

Mutt's default keybindings are set rather like Elm's, but with some work you can also make it feel somewhat like Pine. In addition to customizing the interface, you can use nearly any editor you like in mutt, with most people choosing Emacs, Vim, or pico. Mutt also offers IMAP and POP3 support, nearly seamless PGP integration, threading, highlighting emails with certain subjects or senders, and all kinds of other stuff.

Mutt is non-trivial to configure; with the help and support of three coworkers who used it, and lots of examples found online, I managed to get a Mutt configuration that I wanted in about two weeks. At this point, I would never consider switching back to Pine. Many people put their muttrc configuration files online, and you can often learn a lot of neat new tricks from these.

Here are some things about Pine that annoyed me which Mutt does right. If they annoy you too, consider giving Mutt a try:

  • PGP integration: Mutt's is excellent, Pine's not so much. This was my original reason for switching.
  • MIME support in Mutt is much better.
  • Editors: Pico is not high on my list of favorite editors, and Mutt makes it easy to use whatever editor you like (even pico, if you happen to like it).
  • Custom commands / macros: these either don't exist in Pine, or are so limited that they're not really that useful.
  • Mutt has really good threading modes, which I don't use much. But if you've ever wanted good threading in Pine, take a look at Mutt.
  • Pine is not, technically, free software. In particular, the license prevents certain forms of patched distributions. Mutt is licensed under the GNU GPL. Probably not a big deal unless you are a zealot, though.
  • If you've ever tried building Pine from source code, you know how painful this is. Mutt uses GNU's autoconf, and it is trivial to install new versions.