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
Install NeoMuttNeoMutt alternatives
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
Install AlpineAlpine alternatives
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
Install HimalayaHimalaya alternatives
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).
Best for tags and full-text search
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.
| Client | Interface | IMAP | JMAP | notmuch | OAuth2 | Windows |
|---|---|---|---|---|---|---|
| Forward Email | TUI | API | API | API | No | Native |
| aerc | TUI | Yes | Yes | Yes | Yes | Through WSL |
| alot | TUI | Through a separate tool | No | Yes | No | Through WSL |
| Alpine | TUI | Yes | No | No | Yes | Native |
| Cone | TUI | Yes | No | No | No | Through WSL |
| Gnus | Emacs | Yes | No | Through a separate tool | via plugin | Native |
| Himalaya | CLI | Yes | Yes | No | via script | Native |
| Matcha | TUI | Yes | Yes | No | Yes | Native |
| mblaze | CLI | Through a separate tool | No | No | No | Through WSL |
| meli | TUI | Yes | Yes | Yes | via script | No |
| mu4e | Emacs | Through a separate tool | No | No | via script | Through WSL |
| Mutt | TUI | Yes | No | No | via script | Through WSL |
| NeoMutt | TUI | Yes | No | Yes | via script | Through WSL |
| nmail | TUI | Yes | No | No | Yes | No |
| nmh | CLI | Through a separate tool | No | No | No | Through WSL |
| Notmuch Emacs interface | Emacs | Through a separate tool | No | Yes | via script | Through WSL |
| S-nail | CLI | Yes | No | No | via script | Through WSL |
| Sup | TUI | No | No | No | No | Through WSL |
| Wanderlust | Emacs | Yes | No | Through a separate tool | via oauth2.el | Through 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.
- 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.
- 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.
- 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.
- 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.