Terminal Email

Best terminal email clients

NeoMutt is the best all-round terminal email client for most people. The right choice depends on your system, your provider and how you like to work, so this page picks one client for each common need, with the facts behind each pick.

The picks come from the data on each client's page, which links to the sources it was checked against. Of the 19 clients on this site, 11 are full-screen (TUI), 4 are command-line and 4 run inside Emacs.

Best all-round terminal email client: NeoMutt

NeoMutt suits most people who want a keyboard-driven, full-screen client. It has IMAP, POP3, SMTP, Maildir, mbox and notmuch built in, so it works with a mail server directly or with local folders, and it reads most existing muttrc files.

Why

  • 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

Also consider: Mutt (NeoMutt vs Mutt), meli (NeoMutt vs meli).

Best for OAuth2, JMAP and mouse support: aerc

aerc signs in with OAuth2 by itself, speaks JMAP as well as IMAP, reads notmuch and Maildir, and responds to the mouse. Its embedded terminal runs your editor inside the client.

Why

  • Embedded terminal runs the editor and other commands inside aerc
  • Built-in commands for applying and reviewing git patch series
  • Supports JMAP and notmuch as well as IMAP and Maildir

Watch out for

  • No POP3 or S/MIME support
  • mbox files open read-only
  • No native Windows build

Also consider: Alpine (aerc vs Alpine), Matcha (aerc vs Matcha), nmail (aerc vs nmail).

Best for beginners: Alpine

Alpine is configured through setup screens instead of a hand-written file, and it shows the available commands at the bottom of every screen. It also runs natively on Windows.

Why

  • Command list on every screen and built-in help for each option
  • Official native Windows builds alongside Unix packages
  • Built-in XOAUTH2 for Gmail, Outlook and Yahoo, and built-in S/MIME

Watch out for

  • PGP needs external display and sending filters
  • No Maildir, notmuch or JMAP support
  • Last stable release is 2.26; newer work is in alpha builds

Also consider: Matcha (Alpine vs Matcha).

Best terminal email clients for Windows

Forward Email, Alpine, Gnus, Himalaya and Matcha run natively on Windows. 12 other clients run in Windows Subsystem for Linux (WSL). meli and nmail are not available for Windows. See terminal email on Windows for install commands.

Best for scripts and the shell: Himalaya

Himalaya turns each action, such as listing, reading or sending a message, into a shell command with optional JSON output, so it fits scripts and editor plugins.

Why

  • 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

Also consider: mblaze (Himalaya vs mblaze), nmh (Himalaya vs nmh), S-nail (Himalaya vs S-nail).

Best for Emacs users: mu4e

mu4e gives fast full-text search over a local Maildir, kept in sync by a tool such as isync. To read IMAP inside Emacs without a sync tool, Gnus and Wanderlust connect directly.

Why

  • 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.

Also consider: Gnus (mu4e vs Gnus), Notmuch Emacs interface (mu4e vs Notmuch Emacs interface), Wanderlust (mu4e vs Wanderlust).

aerc, alot, meli, NeoMutt and Notmuch Emacs interface work on a notmuch database, which adds tags, threads and fast full-text search to a local Maildir. Folders become saved searches.

Best for Android

10 clients run on Android through Termux: Forward Email, aerc, Alpine, Gnus, mu4e, Mutt, NeoMutt, nmh, Notmuch Emacs interface and Wanderlust. See terminal email on Android.

Best for mail, calendar and contacts in one app: Forward Email

Forward Email, made by the team behind this site, is the only client here with its own calendar and contact list alongside mail. It works only with Forward Email accounts; every other pick on this page works with any provider.

Why

  • Calendar, contacts and tasks in the same terminal app as mail
  • Mouse clicks, scrolling and text selection work, and the bottom row always shows the keys for the current screen
  • One self-updating executable with no setup files to write

Watch out for

  • Only works with Forward Email accounts
  • Images and video are not drawn; HTML mail is shown as text with links
  • Passkey sign-in needs a browser or the desktop app

All 19 clients at a glance

Built-in support for the protocols and sign-in methods that decide most choices. Each client page has the full list.

19 clients by interface, protocols, OAuth2 and Windows support
ClientInterfaceIMAPJMAPnotmuchOAuth2Windows
Forward EmailTUIAPIAPIAPINoNative
aercTUIYesYesYesYesThrough WSL
alotTUIThrough a separate toolNoYesNoThrough WSL
AlpineTUIYesNoNoYesNative
ConeTUIYesNoNoNoThrough WSL
GnusEmacsYesNoThrough a separate toolvia pluginNative
HimalayaCLIYesYesNovia scriptNative
MatchaTUIYesYesNoYesNative
mblazeCLIThrough a separate toolNoNoNoThrough WSL
meliTUIYesYesYesvia scriptNo
mu4eEmacsThrough a separate toolNoNovia scriptThrough WSL
MuttTUIYesNoNovia scriptThrough WSL
NeoMuttTUIYesNoYesvia scriptThrough WSL
nmailTUIYesNoNoYesNo
nmhCLIThrough a separate toolNoNoNoThrough WSL
Notmuch Emacs interfaceEmacsThrough a separate toolNoYesvia scriptThrough WSL
S-nailCLIYesNoNovia scriptThrough WSL
SupTUINoNoNoNoThrough WSL
WanderlustEmacsYesNoThrough a separate toolvia oauth2.elThrough WSL

How do I choose a terminal email client?

Answer four questions, then compare the two or three clients that are left on the comparison pages.

  1. Which system do you use? All 19 clients run on Linux. On other systems the list is shorter: macOS has 18, Windows has 17, BSD has 18 and Android has 10.
  2. Full-screen, commands or Emacs? Of the 19 clients on this site, 11 are full-screen (TUI), 4 are command-line and 4 run inside Emacs. Full-screen clients work like an app; command-line clients fit scripts; Emacs clients use Emacs buffers and keys.
  3. Does your provider need OAuth2? Gmail and Microsoft 365 accounts often sign in with OAuth2. 13 clients support it, built in or through a helper script.
  4. Do you want mail offline? Clients that read Maildir keep a full copy on disk. 5 clients read only local folders and need a sync tool such as isync.

How the picks are made

Each pick is the client whose listed facts match the need most closely, and the reason given is a fact from its page. When the data changes so that a reason no longer holds, the site does not build until the pick is updated. Forward Email makes this site. Its app is picked only for mail, calendar and contacts in one program, because no other client here has all three, and it is marked as featured wherever it appears. How the list is made.