About termmail
termmail exists because a terminal is a good place to read mail, but it is usually a bad place to drive one. The project adds the small set of controls people expect from a mail client without pretending that a terminal should run a calendar and a browser engine.
Why it exists
Terminal mail clients are remarkably capable. mutt, neomutt, alpine and aerc can handle decades of mail, and they do it in a few megabytes. Their interfaces, however, grew up in a different era: navigation is a set of commands, settings live in an rc file, and the folder list is not always where a newcomer looks for it.
termmail was written to close that specific gap. It keeps IMAP and SMTP as the protocols and puts a normal mail layout around them: folders on the left, messages beside them, a reading pane below, and a toolbar with Compose, Reply, Forward, Delete, Attach, Account, Search and Refresh. The result is small enough to audit and familiar enough to hand to someone who has never used a terminal mail client.
How it is built
- Language: Python 3.6+, one file of about 52 KB.
- Interface: the standard
cursesmodule, with colour pairs and optional mouse events. - Protocols:
imaplibfor reading andsmtplibfor sending, with SSL or STARTTLS. - HTML rendering: lynx is called as an external process; multipart messages use their text part when one exists.
- Storage: accounts live in
~/.config/termmail/config.jsonwith mode 600. No database, no cache daemon. - Dependencies: Python and lynx. No third-party Python packages, no build step, no service.
This design is deliberate. A mail synchronisation engine is a decades-long project; a good interface around the standard library is something a single author can maintain and a single reader can understand.
Author and maintenance
termmail is written and maintained by Eelke Greven. Bug reports, patches and questions are welcome by email at computerproblematiek@gmail.com. The current release is version 0.2, published on 2026-10-23.
License
termmail is released under the MIT license. You may use, copy, modify and redistribute it, including commercially, provided the copyright notice and permission notice are kept. lynx is a separate program under the GNU GPL version 2; it is not included in the termmail download and is installed by your package manager.
Privacy
This website has no accounts, no comment forms and no cookies for tracking. Aggregate traffic statistics are collected with self-hosted Umami at analytics.dunno.my; the script records page views and referrers without profiling individuals across sites. Server logs exist for security and are retained for a limited period.
Advertising on this site is house advertising for related projects in the same network (coom.im and DUNNO). There is no third-party ad network, no behavioural targeting and no data sale.
The termmail program itself contains no telemetry. It connects to the IMAP and SMTP servers you configure and, during first-run detection, to your domain’s SRV, autoconfig and MX records.
Editorial note
This page and the rest of the site are written in English for an international audience. The documentation is checked against the released source. If you find an error, email the address above and it will be corrected; the date below records the last review.
Last reviewed: 2026-10-23.