Terminal Email

Terminal email clients for every system

Read and send email from a terminal on Linux, macOS, Windows, BSD and Android. 19 maintained clients and 7 mail tools, each with install commands for every system and a config that works with Forward Email or any other provider.

The screenshots show Forward Email's terminal app, made by the team behind this site. It is the only client here with its own calendar, contact list and task list, alongside mail.

~ $ forwardemail --demo

Clients

Programs you read and write mail in. Pick a system to see what runs there, or filter by name, language or protocol.

19 email clients
SystemsNameLanguage and license
Runs on Linux, macOS, Windows and BSD, on Android through Termux. Forward EmailFeaturedTUISource-availableForward Email's webmail in the terminal: mail, calendar, contacts and settings, with mouse support and a key hint bar. TypeScript
Business Source License 1.1
Runs on Linux, macOS and BSD, on Windows through WSL, on Android through Termux. aercTUITerminal email client written in Go with IMAP, JMAP, Maildir and notmuch backends and an embedded terminal for editing. Go
MIT
Runs on Linux, macOS and BSD, on Windows through WSL. Not available for Android. alotTUITerminal mail reader written in Python that works on a local notmuch database, with tag-based search and threads. Python
GPL 3.0 or later
Runs on Linux, macOS, Windows and BSD, on Android through Termux. AlpineTUIMenu-driven terminal email client descended from Pine, with built-in help, setup screens and native Windows builds. C
Apache 2.0
Runs on BSD, on Windows through WSL, builds from source on Linux. Not available for macOS or Android. ConeTUIFull-screen console mail client and newsreader from the Courier mail server project. C++
GPL 3.0
Runs on Linux, macOS, Windows and BSD, on Android through Termux. GnusEmacsMail and news reader built into GNU Emacs, with back ends for IMAP, POP3, local mail folders and NNTP. Emacs Lisp
GPL 3.0 or later
Runs on Linux, macOS and Windows, builds from source on BSD. Not available for Android. HimalayaCLICommand-line email client written in Rust that lists, reads, sends and moves mail through shell commands with JSON output. Rust
MIT or Apache 2.0
Runs on Linux, macOS and Windows, builds from source on BSD. Not available for Android. MatchaTUITerminal email client written in Go with the Bubble Tea TUI library, with IMAP, JMAP and POP3 support. Go
MIT
Runs on Linux, macOS and BSD, on Windows through WSL. Not available for Android. mblazeCLISet of small Unix utilities for reading, searching, threading and composing mail stored in Maildir folders. C
CC0 1.0 and MIT
Runs on Linux, macOS and BSD. Not available for Windows or Android. meliTUITerminal email client written in Rust with IMAP, JMAP, notmuch, Maildir, mbox and NNTP backends and TOML configuration. Rust
EUPL 1.2 or GPL 3.0 or later
Runs on Linux, macOS and BSD, on Windows through WSL, on Android through Termux. mu4eEmacsEmail client that runs inside GNU Emacs, built on the mu Maildir indexer and search tool. Emacs Lisp (mu4e), C++ (mu)
GPL 3.0 or later
Runs on Linux, macOS and BSD, on Windows through WSL, on Android through Termux. MuttTUILong-running text-mode email client with IMAP, POP3 and SMTP support, configured through a muttrc file. C
GPL 2.0 or later
Runs on Linux, macOS and BSD, on Windows through WSL, on Android through Termux. NeoMuttTUIFull-screen terminal mail reader forked from Mutt, with notmuch, NNTP, Lua scripting and a sidebar built in. C
GPL 2.0 or later
Runs on Linux and macOS. Not available for Windows, BSD or Android. nmailTUITerminal email client for Linux and macOS with an Alpine-like interface and built-in IMAP and SMTP. C++
MIT
Runs on Linux, macOS and BSD, on Windows through WSL, on Android through Termux. nmhCLIThe MH message handling system: separate shell commands to read, file, search and send mail stored one file per message. C
BSD 3-Clause
Runs on Linux, macOS and BSD, on Windows through WSL, on Android through Termux. Notmuch Emacs interfaceEmacsEmacs front end for notmuch that reads, searches, tags and composes mail from a local Maildir. Emacs Lisp
GPL 3.0 or later
Runs on Linux, macOS and BSD, on Windows through WSL. Not available for Android. S-nailCLICommand-line mail program that implements POSIX mailx, with MIME, IMAP, POP3, SMTP, Maildir and S/MIME support. C
ISC and BSD 2-Clause and BSD 3-Clause and BSD 4-Clause
Runs on Linux and macOS, on Windows through WSL, builds from source on BSD. Not available for Android. SupTUICurses email client in Ruby built around threads, labels and fast full-text search over local mail. Ruby
GPL 2.0 or later
Runs on Linux, macOS and BSD, on Windows through WSL, on Android through Termux. WanderlustEmacsMail and news reader for Emacs, written in Emacs Lisp, with built-in IMAP, POP3, NNTP and SMTP support. Emacs Lisp
GPL 2.0 or later

Mail tools

Programs that sync, send, fetch or index mail for the clients above. A Maildir client such as alot or mu4e needs a sync tool like isync, and many clients send through msmtp.

7 mail tools
SystemsNameLanguage and license
Runs on Linux, macOS and BSD, on Windows through WSL. Not available for Android. getmail6CLIMail retriever that downloads messages over POP3 or IMAP into Maildir, mbox or an external delivery program. Python
GPL 2.0
Runs on Linux, macOS and BSD, on Windows through WSL, on Android through Termux. isyncCLICommand line program (mbsync) that syncs IMAP mailboxes with local Maildir folders in both directions. C
GPL 2.0 or later
Runs on Linux, macOS, Windows and BSD, on Android through Termux. msmtpCLISMTP client with a sendmail-compatible interface that terminal mail clients use to send mail. C
GPL 3.0 or later
Runs on Linux and BSD, on Windows through WSL, builds from source on macOS. Not available for Android. mutt-wizardCLIShell script that sets up NeoMutt, isync and msmtp for an email account, with passwords stored in pass. Shell
GPL 3.0
Runs on Linux, macOS and BSD, on Windows through WSL, on Android through Termux. notmuchCLICommand-line mail indexer that adds fast full-text search, threading and tags to a local Maildir. C, C++
GPL 3.0 or later
Runs on Linux, macOS and BSD, on Windows through WSL. Not available for Android. OfflineIMAPCLIPython program that syncs IMAP mailboxes with local Maildir folders in both directions. Python
GPL 2.0 or later
Runs on Linux, macOS, Windows and BSD. Not available for Android. PopTUISend-only email tool from Charm with a terminal form for composing and a command-line mode for scripts. Go
MIT

By system

By feature

Questions

What is a terminal email client?

A program that reads and sends email inside a terminal window, with text instead of graphics. Full-screen ones (TUIs) such as NeoMutt, aerc and Forward Email work like an app inside the terminal. Command-line ones such as Himalaya and s-nail are commands you run and script.

Which terminal email clients run natively on Windows?

Forward Email, Alpine, Gnus, Himalaya and Matcha run directly 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.

Can I use Gmail or Outlook?

Yes, over IMAP and SMTP. Google and Microsoft require OAuth2 sign-in for most accounts: aerc, Alpine, Matcha and nmail handle it themselves, and Gnus, Himalaya, meli, mu4e, Mutt, NeoMutt, Notmuch Emacs interface, S-nail and Wanderlust need extra setup, such as a token helper script or an Emacs package.

Can terminal clients show HTML email?

Most show the plain-text part of a message and pass HTML to a text browser such as w3m or lynx, which turns it into readable text with numbered links. Images are not shown in the terminal; most clients can open a message in a graphical browser when needed.

Which clients support JMAP?

aerc, Himalaya, Matcha and meli support JMAP, the JSON protocol some providers offer instead of IMAP. The other clients use IMAP, POP3 or local folders, and Forward Email's app uses Forward Email's own API.

Which clients work with a mouse?

Forward Email, aerc, alot, Alpine, Gnus, Matcha, meli, mu4e, Notmuch Emacs interface and Wanderlust respond to clicks and scrolling. The others are keyboard-only.

Are they open source?

All of them except Forward Email, whose code is public under the Business Source License 1.1, a source-available license. Each page links to the project's repository and license.

How do I use a terminal client with Forward Email?

Point the client at imap.forwardemail.net (port 993) and smtp.forwardemail.net (port 465), with your alias address as the username and a generated password. Every client page has a ready-made config, and the setup page collects them all. Forward Email's own terminal app needs no config: run forwardemail and sign in.