Most terminal mail clients make you learn a command for everything. termmail gives you the parts of a desktop mail client you actually use — folders, a message list, a reading pane and buttons — and keeps the mail itself as plain, fast text.
It is a single Python script built on ncurses. Mail is read over IMAP and sent over SMTP, HTML is converted to readable text with lynx, and the layout puts three panes on one screen. What changes compared with mutt or alpine is not the protocol; it is the interface. You can see where you are, click Compose, add an attachment and switch accounts without memorising a key sequence.
Six conveniences a terminal usually makes you build yourself
Folders, messages and a reading pane
Three panes on one screen: the folder list on the left, the message list beside it and the selected message below. Tab moves between them.
More than one account
Each account keeps its own IMAP and SMTP settings. Switch from the toolbar or with A; the active mailbox is opened per account.
HTML mail as readable text
Multipart messages are reduced to the text part, or converted with lynx when only HTML is available. No images and no CSS, just the message.
Attachments in both directions
Attachments are listed with name and size and saved where you choose. When composing, Attach adds files with the right MIME type.
A compose window with visible buttons
To, Subject and body on one screen, with Send, Attach and Cancel where you can see them. F2 sends, Esc cancels.
Server settings found for you
On first run termmail tries presets, SRV records, autoconfig, MX records and a host guess. The method used is shown in the dialog title.
What it is — and what it deliberately is not
It is
- A real IMAP and SMTP client
- A three-pane terminal interface with a toolbar
- A single readable Python script under the MIT license
- Comfortable over SSH, in tmux or on a console
- Happy to reuse the lynx you already have
It is not
- A calendar, contacts or task manager
- A rules engine with server-side filters
- An OAuth client — use app passwords
- A PGP or S/MIME signing tool
- A service or an account you have to create
Those limits are deliberate. termmail reads and sends mail, saves attachments and searches a mailbox. Everything that would need a daemon, a keychain or a plugin system was left out, which is why the whole program fits in about 52 KB and starts immediately.
Built for the places a GUI mail client cannot go
- Servers and SSH sessions. Read and answer mail on the machine where it matters, without forwarding a display.
- Old hardware and small VMs. A 52 KB script and a text converter use a fraction of the memory of an Electron mail app.
- Slow or metered connections. Headers and text arrive quickly; HTML decoration never does.
- Focus. No notification badges, no calendar pop-ups, no promoted inbox.
- Terminal-first workflows. Stay in tmux, keep your shell, and still have folders and a reading pane.
Install in three lines
sudo apt install python3 lynx
mkdir termmail-0.2 && tar xzf termmail-0.2.tar.gz -C termmail-0.2
cd termmail-0.2 && sudo ./install.sh
Then run termmail and answer the first-run questions. The full requirements, checksum and uninstall steps are on the download page; setup, keys and troubleshooting are in the guide.
Quick answers
Is termmail a full mail client?
It is a real IMAP and SMTP client with folders, a message list, a reading pane, compose, reply, forward, attachments and search. It is deliberately small: no calendar, no rules engine, no PGP or S/MIME, and no OAuth.
Does it work with Gmail?
Yes, with an app password. Enable two-step verification, create an app password, enable IMAP in Gmail and let termmail detect imap.gmail.com and smtp.gmail.com.
Can I use more than one account?
Yes. Several accounts live in ~/.config/termmail/config.json and you switch between them from the toolbar or with the A key.
Does termmail support OAuth or PGP?
No. Authentication is a username and password over IMAP/SMTP, so providers that require OAuth need an app password. PGP and S/MIME are not implemented.
What does it cost?
Nothing. termmail is MIT-licensed free software. lynx is a separate program under the GPL and is installed by your package manager.