{
  "name": "Terminal Email",
  "url": "https://terminalemail.com/",
  "license": "CC BY-SA 4.0",
  "generated": "2026-10-01T17:59:17.739Z",
  "systems": [
    {
      "id": "linux",
      "name": "Linux"
    },
    {
      "id": "macos",
      "name": "macOS"
    },
    {
      "id": "windows",
      "name": "Windows"
    },
    {
      "id": "bsd",
      "name": "BSD"
    },
    {
      "id": "android",
      "name": "Android"
    }
  ],
  "clients": [
    {
      "name": "Forward Email",
      "slug": "forward-email",
      "type": "client",
      "interface": "tui",
      "featured": true,
      "url": "https://terminalemail.com/clients/forward-email/",
      "summary": "Forward Email's webmail in the terminal: mail, calendar, contacts and settings, with mouse support and a key hint bar.",
      "description": "The forwardemail command runs the same application as Forward Email's webmail inside a terminal, drawn as text. Mail, calendar, contacts, tasks and settings all work, with keyboard shortcuts, mouse clicks and scrolling, and plain-text reading and writing by default. It installs as one standalone executable on Linux, macOS and Windows, or from npm anywhere Node.js 22 runs. It signs in to Forward Email accounts, including self-hosted servers.",
      "website": "https://forwardemail.net/",
      "repo": "https://github.com/forwardemail/mail.forwardemail.net",
      "docs": "https://github.com/forwardemail/mail.forwardemail.net/blob/main/cli/README.md",
      "license": "BUSL-1.1",
      "open_source": false,
      "language": "TypeScript",
      "maintained": true,
      "latest_version": "0.14.16",
      "lineage": "The webmail at mail.forwardemail.net, built for the terminal",
      "backend": "Forward Email API over HTTPS, with new mail over WebSocket",
      "platforms": {
        "linux": {
          "support": "native",
          "note": "Standalone builds for x64 and arm64 need glibc. On musl systems such as Alpine Linux, install with npm.",
          "install": [
            {
              "via": "install script",
              "cmd": "curl -fsSL https://github.com/forwardemail/mail.forwardemail.net/releases/latest/download/install.sh | sh"
            },
            {
              "via": "npm",
              "cmd": "npm install -g forwardemail"
            }
          ]
        },
        "macos": {
          "support": "native",
          "note": "Standalone builds for Apple Silicon and Intel.",
          "install": [
            {
              "via": "install script",
              "cmd": "curl -fsSL https://github.com/forwardemail/mail.forwardemail.net/releases/latest/download/install.sh | sh"
            },
            {
              "via": "npm",
              "cmd": "npm install -g forwardemail"
            }
          ]
        },
        "windows": {
          "support": "native",
          "note": "Signed standalone builds for x64 and arm64. Windows Terminal is recommended over the legacy console.",
          "install": [
            {
              "via": "PowerShell",
              "cmd": "irm https://github.com/forwardemail/mail.forwardemail.net/releases/latest/download/install.ps1 | iex"
            },
            {
              "via": "npm",
              "cmd": "npm install -g forwardemail"
            }
          ]
        },
        "bsd": {
          "support": "native",
          "note": "Through npm, which runs anywhere Node.js 22 or later does.",
          "install": [
            {
              "via": "npm",
              "cmd": "npm install -g forwardemail"
            }
          ]
        },
        "android": {
          "support": "termux",
          "note": "Through npm in Termux, which packages Node.js 24 and later. Not tested by the project.",
          "install": [
            {
              "via": "Termux",
              "cmd": "pkg install nodejs && npm install -g forwardemail"
            }
          ]
        }
      },
      "protocols": {
        "imap": false,
        "pop3": false,
        "smtp": false,
        "jmap": false,
        "maildir": false,
        "mbox": false,
        "notmuch": false
      },
      "features": {
        "pgp": true,
        "smime": false,
        "oauth2": false,
        "threads": true,
        "search": "built-in, across messages, contacts and events",
        "html": "shown as formatted text with links; plain text by default",
        "mouse": true,
        "multiple_accounts": true,
        "offline": "drafts and changes made offline are sent when the connection returns",
        "calendar": true,
        "contacts": true,
        "vim_keys": false,
        "config": "settings screens, keyboard shortcut editor and an optional user.css"
      },
      "pros": [
        "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"
      ],
      "cons": [
        "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"
      ],
      "forward_email": {
        "config": "# macOS and Linux\ncurl -fsSL https://github.com/forwardemail/mail.forwardemail.net/releases/latest/download/install.sh | sh\n\n# Windows (PowerShell)\nirm https://github.com/forwardemail/mail.forwardemail.net/releases/latest/download/install.ps1 | iex\n\n# Any system with Node.js 22 or later\nnpm install -g forwardemail\n\nforwardemail            # sign in and read your mail\nforwardemail --demo     # try it with sample data, no account needed\n",
        "file": null
      },
      "sources": [
        "https://github.com/forwardemail/mail.forwardemail.net/blob/main/cli/README.md",
        "https://github.com/forwardemail/mail.forwardemail.net/blob/main/LICENSE.md",
        "https://www.npmjs.com/package/forwardemail",
        "https://forwardemail.net/en/pricing",
        "https://github.com/termux/termux-packages/tree/master/packages/nodejs"
      ],
      "updated": "2026-10-01T12:54:22-05:00"
    },
    {
      "name": "aerc",
      "slug": "aerc",
      "type": "client",
      "interface": "tui",
      "featured": false,
      "url": "https://terminalemail.com/clients/aerc/",
      "summary": "Terminal email client written in Go with IMAP, JMAP, Maildir and notmuch backends and an embedded terminal for editing.",
      "description": "aerc is a full-screen terminal email client with tabs, vim-style keybindings and an embedded terminal that runs the editor and other programs inside the interface. It reads IMAP, JMAP, Maildir and notmuch mailboxes, opens mbox files read-only, and sends over SMTP or a sendmail command. It suits developers who review patches by email, with built-in commands for applying and replying to patch series.",
      "website": "https://aerc-mail.org/",
      "repo": "https://git.sr.ht/~rjarry/aerc",
      "docs": "https://man.sr.ht/~rjarry/aerc/",
      "license": "MIT",
      "open_source": true,
      "language": "Go",
      "maintained": true,
      "latest_version": "0.22.0",
      "lineage": "Continuation of the original aerc by Drew DeVault",
      "backend": null,
      "platforms": {
        "linux": {
          "support": "native",
          "install": [
            {
              "via": "apt",
              "cmd": "sudo apt install aerc"
            },
            {
              "via": "dnf",
              "cmd": "sudo dnf install aerc"
            },
            {
              "via": "pacman",
              "cmd": "sudo pacman -S aerc"
            }
          ]
        },
        "macos": {
          "support": "native",
          "install": [
            {
              "via": "Homebrew",
              "cmd": "brew install aerc"
            }
          ]
        },
        "windows": {
          "support": "wsl",
          "note": "No native Windows build; runs in WSL.",
          "install": [
            {
              "via": "WSL",
              "cmd": "sudo apt install aerc"
            }
          ]
        },
        "bsd": {
          "support": "native",
          "install": [
            {
              "via": "FreeBSD pkg",
              "cmd": "pkg install aerc"
            },
            {
              "via": "OpenBSD",
              "cmd": "pkg_add aerc"
            }
          ]
        },
        "android": {
          "support": "termux",
          "install": [
            {
              "via": "Termux",
              "cmd": "pkg install aerc"
            }
          ]
        }
      },
      "protocols": {
        "imap": true,
        "pop3": false,
        "smtp": true,
        "jmap": true,
        "maildir": true,
        "mbox": true,
        "notmuch": true
      },
      "features": {
        "pgp": true,
        "smime": false,
        "oauth2": true,
        "threads": true,
        "search": "built-in; server-side for IMAP and JMAP; notmuch queries",
        "html": "via filters, w3m by default",
        "mouse": true,
        "multiple_accounts": true,
        "offline": "with mbsync or OfflineIMAP through the Maildir backend; IMAP header cache",
        "calendar": true,
        "contacts": "via address-book-cmd, e.g. khard or the bundled carddav-query",
        "vim_keys": true,
        "config": "INI-style files: accounts.conf, aerc.conf, binds.conf"
      },
      "pros": [
        "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"
      ],
      "cons": [
        "No POP3 or S/MIME support",
        "mbox files open read-only",
        "No native Windows build"
      ],
      "forward_email": {
        "config": "# Forward Email: IMAP over SSL/TLS (993), SMTP over SSL/TLS (465)\n# The @ in the username is URL-encoded as %40\n[Forward Email]\nsource            = imaps://you%40example.com@imap.forwardemail.net:993\nsource-cred-cmd   = pass show email/forwardemail\noutgoing          = smtps://you%40example.com@smtp.forwardemail.net:465\noutgoing-cred-cmd = pass show email/forwardemail\nfrom              = Your Name <you@example.com>\ndefault           = INBOX\ncopy-to           = Sent Mail\npostpone          = Drafts\n",
        "file": "~/.config/aerc/accounts.conf (macOS: ~/Library/Preferences/aerc/accounts.conf)"
      },
      "sources": [
        "https://aerc-mail.org/",
        "https://git.sr.ht/~rjarry/aerc",
        "https://git.sr.ht/~rjarry/aerc/tree/master/item/LICENSE",
        "https://git.sr.ht/~rjarry/aerc/tree/master/item/README.md",
        "https://git.sr.ht/~rjarry/aerc/tree/master/item/doc/aerc-accounts.5.scd",
        "https://git.sr.ht/~rjarry/aerc/tree/master/item/doc/aerc-imap.5.scd",
        "https://git.sr.ht/~rjarry/aerc/tree/master/item/doc/aerc-smtp.5.scd",
        "https://git.sr.ht/~rjarry/aerc/tree/master/item/doc/aerc-mbox.5.scd",
        "https://git.sr.ht/~rjarry/aerc/tree/master/item/doc/aerc-config.5.scd",
        "https://git.sr.ht/~rjarry/aerc/tree/master/item/doc/aerc.1.scd",
        "https://man.sr.ht/~rjarry/aerc/",
        "https://formulae.brew.sh/formula/aerc",
        "https://sources.debian.org/src/aerc/",
        "https://packages.fedoraproject.org/pkgs/aerc/aerc/",
        "https://archlinux.org/packages/extra/x86_64/aerc/",
        "https://www.freshports.org/mail/aerc/",
        "https://github.com/openbsd/ports/tree/master/mail/aerc",
        "https://github.com/termux/termux-packages/tree/master/packages/aerc",
        "https://github.com/forwardemail/forwardemail.net/blob/master/helpers/ensure-default-mailboxes.js"
      ],
      "updated": "2026-10-01T12:54:22-05:00"
    },
    {
      "name": "alot",
      "slug": "alot",
      "type": "client",
      "interface": "tui",
      "featured": false,
      "url": "https://terminalemail.com/clients/alot/",
      "summary": "Terminal mail reader written in Python that works on a local notmuch database, with tag-based search and threads.",
      "description": "alot is a full-screen terminal front end for the notmuch mail indexer, offered as an alternative to the notmuch Emacs mode. It reads mail from a local notmuch database, so remote mail must first be synced into a Maildir with a tool such as mbsync or OfflineIMAP, and it sends through a sendmail-compatible command such as msmtp. It suits users who organize mail with tags and searches instead of folders, and it can be extended with Python hooks.",
      "website": "https://alot.readthedocs.io/",
      "repo": "https://github.com/pazz/alot",
      "docs": "https://alot.readthedocs.io/en/latest/",
      "license": "GPL-3.0-or-later",
      "open_source": true,
      "language": "Python",
      "maintained": true,
      "latest_version": "0.12",
      "lineage": null,
      "backend": null,
      "platforms": {
        "linux": {
          "support": "native",
          "install": [
            {
              "via": "apt",
              "cmd": "sudo apt install alot"
            },
            {
              "via": "dnf",
              "cmd": "sudo dnf install alot"
            },
            {
              "via": "pacman",
              "cmd": "sudo pacman -S alot"
            }
          ]
        },
        "macos": {
          "support": "native",
          "install": [
            {
              "via": "Homebrew",
              "cmd": "brew install alot"
            }
          ]
        },
        "windows": {
          "support": "wsl",
          "note": "No native Windows build; runs in WSL.",
          "install": [
            {
              "via": "WSL",
              "cmd": "sudo apt install alot"
            }
          ]
        },
        "bsd": {
          "support": "native",
          "note": "The FreeBSD port is an older release (0.9).",
          "install": [
            {
              "via": "FreeBSD pkg",
              "cmd": "pkg install mail/py-alot"
            }
          ]
        },
        "android": {
          "support": "none",
          "install": []
        }
      },
      "protocols": {
        "imap": "external",
        "pop3": "external",
        "smtp": "external",
        "jmap": false,
        "maildir": true,
        "mbox": false,
        "notmuch": true
      },
      "features": {
        "pgp": true,
        "smime": false,
        "oauth2": false,
        "threads": true,
        "search": "notmuch queries",
        "html": "via mailcap, e.g. w3m -dump",
        "mouse": true,
        "multiple_accounts": true,
        "offline": "always; reads a local notmuch database",
        "calendar": false,
        "contacts": "via an external lookup command such as abook, khard or notmuch address",
        "vim_keys": true,
        "config": "INI-style config file plus optional Python hooks"
      },
      "pros": [
        "Tag-based searches through notmuch instead of folders",
        "Full PGP/MIME signing and encryption",
        "Python hooks for custom behavior and formatting"
      ],
      "cons": [
        "Needs separate tools to fetch mail (mbsync) and send it (msmtp)",
        "No direct IMAP, POP3 or SMTP support",
        "No S/MIME support"
      ],
      "forward_email": {
        "config": "# alot reads a local notmuch database. Sync Forward Email over IMAP\n# into a Maildir with mbsync, index it with notmuch, and send with msmtp.\n\n# ~/.mbsyncrc (isync 1.5+; older versions use SSLType instead of TLSType)\nIMAPAccount forwardemail\nHost imap.forwardemail.net\nPort 993\nTLSType IMAPS\nUser you@example.com\nPassCmd \"pass show email/forwardemail\"\n\nIMAPStore forwardemail-remote\nAccount forwardemail\n\nMaildirStore forwardemail-local\nPath ~/Mail/forwardemail/\nInbox ~/Mail/forwardemail/INBOX\nSubFolders Verbatim\n\nChannel forwardemail\nFar :forwardemail-remote:\nNear :forwardemail-local:\nPatterns *\nCreate Both\nSyncState *\n\n# Then run: mbsync forwardemail && notmuch setup && notmuch new\n\n# ~/.config/msmtp/config\naccount forwardemail\nhost smtp.forwardemail.net\nport 465\ntls on\ntls_starttls off\nauth on\nuser you@example.com\npasswordeval \"pass show email/forwardemail\"\nfrom you@example.com\n\n# ~/.config/alot/config\n[accounts]\n    [[forwardemail]]\n        realname = Your Name\n        address = you@example.com\n        sendmail_command = msmtp --account=forwardemail -t\n        sent_box = maildir://~/Mail/forwardemail/Sent Mail\n        draft_box = maildir://~/Mail/forwardemail/Drafts\n",
        "file": "~/.config/alot/config (plus ~/.mbsyncrc and ~/.config/msmtp/config)"
      },
      "sources": [
        "https://github.com/pazz/alot",
        "https://github.com/pazz/alot/blob/master/COPYING",
        "https://github.com/pazz/alot/blob/master/pyproject.toml",
        "https://github.com/pazz/alot/blob/master/README.md",
        "https://alot.readthedocs.io/en/latest/",
        "https://alot.readthedocs.io/en/latest/installation.html",
        "https://alot.readthedocs.io/en/latest/configuration/accounts.html",
        "https://alot.readthedocs.io/en/latest/configuration/config_options.html",
        "https://formulae.brew.sh/formula/alot",
        "https://sources.debian.org/src/alot/",
        "https://packages.fedoraproject.org/pkgs/alot/alot/",
        "https://archlinux.org/packages/extra/any/alot/",
        "https://www.freshports.org/mail/py-alot/",
        "https://manpages.debian.org/trixie/isync/mbsync.1.en.html",
        "https://github.com/forwardemail/forwardemail.net/blob/master/helpers/ensure-default-mailboxes.js"
      ],
      "updated": "2026-10-01T12:54:22-05:00"
    },
    {
      "name": "Alpine",
      "slug": "alpine",
      "type": "client",
      "interface": "tui",
      "featured": false,
      "url": "https://terminalemail.com/clients/alpine/",
      "summary": "Menu-driven terminal email client descended from Pine, with built-in help, setup screens and native Windows builds.",
      "description": "Alpine is a full-screen email and news client that shows available commands at the bottom of every screen and is configured through built-in setup menus instead of a hand-written file. It reads IMAP, POP3 and NNTP, keeps local mail in mbox-style folders, sends over SMTP, and includes the Pico editor, S/MIME and XOAUTH2 for Gmail, Outlook and Yahoo. It suits users who prefer menus and on-screen command hints over memorized keybindings. The maintained version is developed by Eduardo Chappa.",
      "website": "https://alpineapp.email/",
      "repo": "https://repo.or.cz/alpine.git",
      "docs": "https://alpineapp.email/alpine/alpine-info/",
      "license": "Apache-2.0",
      "open_source": true,
      "language": "C",
      "maintained": true,
      "latest_version": "2.26",
      "lineage": "Successor of Pine, continued from the University of Washington Alpine",
      "backend": null,
      "platforms": {
        "linux": {
          "support": "native",
          "install": [
            {
              "via": "apt",
              "cmd": "sudo apt install alpine"
            },
            {
              "via": "dnf",
              "cmd": "sudo dnf install alpine"
            }
          ]
        },
        "macos": {
          "support": "native",
          "install": [
            {
              "via": "Homebrew",
              "cmd": "brew install alpine"
            }
          ]
        },
        "windows": {
          "support": "native",
          "note": "Official 64-bit and 32-bit Windows builds (PC-Alpine) are published as ZIP files.",
          "install": [
            {
              "via": "Official ZIP",
              "cmd": "Download alpine-2.26.zip from https://alpineapp.email/alpine/release/"
            }
          ]
        },
        "bsd": {
          "support": "native",
          "install": [
            {
              "via": "FreeBSD pkg",
              "cmd": "pkg install alpine"
            },
            {
              "via": "OpenBSD",
              "cmd": "pkg_add alpine"
            }
          ]
        },
        "android": {
          "support": "termux",
          "install": [
            {
              "via": "Termux",
              "cmd": "pkg install alpine"
            }
          ]
        }
      },
      "protocols": {
        "imap": true,
        "pop3": true,
        "smtp": true,
        "jmap": false,
        "maildir": false,
        "mbox": true,
        "notmuch": false
      },
      "features": {
        "pgp": "via plugin",
        "smime": true,
        "oauth2": true,
        "threads": true,
        "search": "built-in search and message selection; server-side for IMAP",
        "html": "built-in HTML-to-text rendering",
        "mouse": true,
        "multiple_accounts": true,
        "offline": false,
        "calendar": true,
        "contacts": "built-in address book; LDAP lookup",
        "vim_keys": false,
        "config": "built-in setup screens, stored in .pinerc"
      },
      "pros": [
        "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"
      ],
      "cons": [
        "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"
      ],
      "forward_email": {
        "config": "# Forward Email: IMAP over SSL/TLS (993), SMTP over SSL/TLS (465)\n# Set these in Setup > Config, or edit ~/.pinerc while Alpine is closed.\n# Alpine has no password command; it prompts and can save passwords\n# in its encrypted password file.\npersonal-name=Your Name\nuser-domain=example.com\ncustomized-hdrs=From: Your Name <you@example.com>\ninbox-path={imap.forwardemail.net:993/ssl/user=you@example.com}INBOX\nfolder-collections=ForwardEmail {imap.forwardemail.net:993/ssl/user=you@example.com}[]\ndefault-fcc={imap.forwardemail.net:993/ssl/user=you@example.com}Sent Mail\npostponed-folder={imap.forwardemail.net:993/ssl/user=you@example.com}Drafts\nsmtp-server=smtp.forwardemail.net:465/ssl/user=you@example.com\n",
        "file": "~/.pinerc"
      },
      "sources": [
        "https://alpineapp.email/",
        "https://alpineapp.email/alpine/release/",
        "https://alpineapp.email/alpine/alpine-info/",
        "https://alpineapp.email/alpine/alpine-info/misc/xoauth2.html",
        "https://repo.or.cz/alpine.git",
        "https://repo.or.cz/alpine.git/blob/HEAD:/LICENSE",
        "https://repo.or.cz/alpine.git/blob/HEAD:/pith/pine.hlp",
        "https://formulae.brew.sh/formula/alpine",
        "https://sources.debian.org/src/alpine/",
        "https://packages.fedoraproject.org/pkgs/alpine/alpine/",
        "https://www.freshports.org/mail/alpine/",
        "https://github.com/openbsd/ports/tree/master/mail/alpine",
        "https://github.com/termux/termux-packages/tree/master/packages/alpine",
        "https://github.com/forwardemail/forwardemail.net/blob/master/helpers/ensure-default-mailboxes.js"
      ],
      "updated": "2026-10-01T12:54:22-05:00"
    },
    {
      "name": "Cone",
      "slug": "cone",
      "type": "client",
      "interface": "tui",
      "featured": false,
      "url": "https://terminalemail.com/clients/cone/",
      "summary": "Full-screen console mail client and newsreader from the Courier mail server project.",
      "description": "Cone (COnsole Newsreader And Emailer) is a curses mail client for IMAP, POP3, local mbox and Maildir folders, and Usenet newsgroups. It has a built-in editor with spell checking, address books that can live in an IMAP folder or LDAP, and OpenPGP signing and encryption through GnuPG. It sends through an SMTP server with optional SSL and authentication, or through the local sendmail command. It shares code with the Courier mail server, and most Linux users build it from source with the RPM or DEB scripts upstream provides.",
      "website": "https://www.courier-mta.org/cone/",
      "repo": "https://github.com/svarshavchik/courier",
      "docs": "https://www.courier-mta.org/cone/",
      "license": "GPL-3.0-only",
      "open_source": true,
      "language": "C++",
      "maintained": true,
      "latest_version": "2.5",
      "lineage": "Part of the Courier mail server project; built on the LibMAIL C++ library",
      "backend": null,
      "platforms": {
        "linux": {
          "support": "source",
          "note": "No distribution packages in Debian, Fedora or Arch; upstream documents building RPM packages with rpmbuild and DEB packages with courier-debuild.",
          "install": [
            {
              "via": "rpmbuild",
              "cmd": "rpmbuild -ta cone-2.5.tar.bz2"
            },
            {
              "via": "courier-debuild",
              "cmd": "./courier-debuild -us -uc"
            }
          ]
        },
        "macos": {
          "support": "none",
          "note": "No Homebrew formula and no documented macOS build.",
          "install": []
        },
        "windows": {
          "support": "wsl",
          "note": "No native build; build it from source inside WSL.",
          "install": []
        },
        "bsd": {
          "support": "native",
          "install": [
            {
              "via": "FreeBSD pkg",
              "cmd": "pkg install cone"
            }
          ]
        },
        "android": {
          "support": "none",
          "note": "No Termux package.",
          "install": []
        }
      },
      "protocols": {
        "imap": true,
        "pop3": true,
        "smtp": true,
        "jmap": false,
        "maildir": true,
        "mbox": true,
        "notmuch": false
      },
      "features": {
        "pgp": true,
        "smime": false,
        "oauth2": false,
        "threads": true,
        "search": "built-in folder search; server-side on IMAP",
        "html": "built-in HTML renderer",
        "mouse": false,
        "multiple_accounts": true,
        "offline": false,
        "calendar": false,
        "contacts": "built-in address books, stored locally, in an IMAP folder, or on LDAP",
        "vim_keys": false,
        "config": "interactive setup screens; settings saved under ~/.cone"
      },
      "pros": [
        "Handles IMAP, POP3, local mbox and Maildir folders, and newsgroups in one folder tree.",
        "Built-in OpenPGP signing and encryption with per-account keys.",
        "Optional master password encrypts saved server passwords."
      ],
      "cons": [
        "Not packaged by Debian, Fedora, Arch or Homebrew; usually built from source.",
        "No offline mode for IMAP accounts and no OAuth2.",
        "No S/MIME support."
      ],
      "forward_email": {
        "config": "# Cone is configured from its menus; settings are saved under ~/.cone.\n# IMAP account: Main menu > N (New account) > I (IMAP account)\n#   Server: imap.forwardemail.net   (port 993 is the default with encryption on)\n#   Login: you@example.com\n#   [x] Use an encrypted connection\n#   Enter the alias' generated password when prompted.\n# (POP3 instead: N > P (POP3 account), Server: pop3.forwardemail.net, encrypted connection on (port 995))\n#\n# Outgoing mail: Main menu > S (Setup)\n#   Outgoing SMTP Server: smtp.forwardemail.net\n#   SMTP userid (optional): you@example.com\n#   [ ] Send mail via main acct (if available)\n#   [x] Use SMTP tunneled over SSL      (uses port 465)\n#\n# Optional: Main menu > P (Master password) to encrypt the saved passwords.\n",
        "file": "~/.cone (written by the setup screens)"
      },
      "sources": [
        "https://www.courier-mta.org/cone/",
        "https://www.courier-mta.org/cone/INSTALL.html",
        "https://github.com/svarshavchik/courier/tree/master/cone",
        "https://github.com/svarshavchik/courier/blob/master/cone/ChangeLog",
        "https://github.com/svarshavchik/courier/blob/master/cone/cone.spec.in",
        "https://github.com/svarshavchik/courier/blob/master/cone/cone/configscreen.C",
        "https://github.com/svarshavchik/courier/blob/master/cone/cone/mainmenu.C",
        "https://github.com/svarshavchik/courier/blob/master/cone/cone/cone.C",
        "https://github.com/svarshavchik/courier/blob/master/cone/cone/sgml/mail-open.sgml",
        "https://github.com/svarshavchik/courier-libs/blob/master/common/COPYING",
        "https://sourceforge.net/projects/courier/files/cone/2.5/",
        "https://github.com/freebsd/freebsd-ports/blob/main/mail/cone/Makefile",
        "https://packages.debian.org/sid/cone",
        "https://aur.archlinux.org/packages/cone",
        "https://formulae.brew.sh/api/formula.json"
      ],
      "updated": "2026-10-01T12:54:22-05:00"
    },
    {
      "name": "getmail6",
      "slug": "getmail6",
      "type": "tool",
      "interface": "cli",
      "featured": false,
      "url": "https://terminalemail.com/tools/getmail6/",
      "summary": "Mail retriever that downloads messages over POP3 or IMAP into Maildir, mbox or an external delivery program.",
      "description": "getmail6 is the Python 3 continuation of getmail. It fetches mail one way from POP3 or IMAP servers and delivers it to a Maildir, an mboxrd file or a program such as procmail or maildrop, with optional filtering. Each account has its own rc file. It suits users who want a simple download into local storage rather than a two-way IMAP sync.",
      "website": "https://getmail6.org/",
      "repo": "https://github.com/getmail6/getmail6",
      "docs": "https://getmail6.org/configuration.html",
      "license": "GPL-2.0-only",
      "open_source": true,
      "language": "Python",
      "maintained": true,
      "latest_version": "6.20.01",
      "lineage": "Python 3 fork of getmail 5 by Charles Cazabon",
      "backend": null,
      "platforms": {
        "linux": {
          "support": "native",
          "install": [
            {
              "via": "apt",
              "cmd": "sudo apt install getmail6"
            },
            {
              "via": "dnf",
              "cmd": "sudo dnf install getmail6"
            },
            {
              "via": "pip",
              "cmd": "pip install getmail6"
            }
          ]
        },
        "macos": {
          "support": "native",
          "install": [
            {
              "via": "Homebrew",
              "cmd": "brew install getmail6"
            },
            {
              "via": "MacPorts",
              "cmd": "sudo port install getmail6"
            }
          ]
        },
        "windows": {
          "support": "wsl",
          "note": "No native Windows package; use WSL.",
          "install": [
            {
              "via": "WSL",
              "cmd": "sudo apt install getmail6"
            }
          ]
        },
        "bsd": {
          "support": "native",
          "install": [
            {
              "via": "FreeBSD pkg",
              "cmd": "pkg install py312-getmail6"
            }
          ]
        },
        "android": {
          "support": "none",
          "install": []
        }
      },
      "protocols": {
        "imap": true,
        "pop3": true,
        "smtp": false,
        "jmap": false,
        "maildir": true,
        "mbox": true,
        "notmuch": false
      },
      "features": {
        "pgp": false,
        "smime": false,
        "oauth2": true,
        "threads": false,
        "search": false,
        "html": false,
        "mouse": false,
        "multiple_accounts": true,
        "offline": "downloads mail to a local Maildir or mbox",
        "calendar": false,
        "contacts": false,
        "vim_keys": false,
        "config": "one getmailrc INI file per account in ~/.config/getmail/"
      },
      "pros": [
        "Supports both POP3 and IMAP, including SSL variants",
        "Delivers to Maildir, mboxrd or an external MDA with filters",
        "password_command reads the password from an external program"
      ],
      "cons": [
        "One-way download only; changes are not synced back to the server",
        "Needs one rc file per account",
        "No sending; pair it with an SMTP tool such as msmtp"
      ],
      "forward_email": {
        "config": "# IMAP over SSL into a Maildir (create it first: mkdir -p ~/Mail/forwardemail/INBOX/{cur,new,tmp})\n[retriever]\ntype = SimpleIMAPSSLRetriever\nserver = imap.forwardemail.net\nport = 993\nusername = you@example.com\npassword_command = (\"pass\", \"show\", \"forwardemail/you@example.com\")\n\n[destination]\ntype = Maildir\npath = ~/Mail/forwardemail/INBOX/\n\n[options]\nread_all = false\ndelete = false\n\n# For POP3 instead: type = SimplePOP3SSLRetriever, server = pop3.forwardemail.net, port = 995\n",
        "file": "~/.config/getmail/getmailrc"
      },
      "sources": [
        "https://getmail6.org/",
        "https://getmail6.org/configuration.html",
        "https://github.com/getmail6/getmail6",
        "https://github.com/getmail6/getmail6/blob/master/README",
        "https://github.com/getmail6/getmail6/blob/master/docs/configuration.txt",
        "https://github.com/getmail6/getmail6/blob/master/docs/getmailrc-examples",
        "https://packages.debian.org/search?keywords=getmail6&searchon=names&exact=1",
        "https://packages.ubuntu.com/getmail6",
        "https://mdapi.fedoraproject.org/rawhide/pkg/getmail6",
        "https://formulae.brew.sh/formula/getmail6",
        "https://ports.macports.org/port/getmail6/",
        "https://www.freshports.org/mail/getmail6/"
      ],
      "updated": "2026-10-01T12:54:22-05:00"
    },
    {
      "name": "Gnus",
      "slug": "gnus",
      "type": "client",
      "interface": "emacs",
      "featured": false,
      "url": "https://terminalemail.com/clients/gnus/",
      "summary": "Mail and news reader built into GNU Emacs, with back ends for IMAP, POP3, local mail folders and NNTP.",
      "description": "Gnus ships with GNU Emacs, so it needs no separate install once Emacs is present. It treats mail folders, IMAP mailboxes and Usenet newsgroups alike as groups, and can talk to IMAP directly or work on local Maildir, MH and mbox stores. Sending goes through Emacs message mode and smtpmail. It suits Emacs users who want one program for mail, newsgroups and feeds and are willing to learn its group and summary model.",
      "website": "https://www.gnus.org/",
      "repo": "https://git.savannah.gnu.org/cgit/emacs.git/tree/lisp/gnus",
      "docs": "https://www.gnu.org/software/emacs/manual/gnus.html",
      "license": "GPL-3.0-or-later",
      "open_source": true,
      "language": "Emacs Lisp",
      "maintained": true,
      "latest_version": "5.13 (bundled with Emacs 31.1)",
      "lineage": "Rewrite of GNUS, the earlier Emacs newsreader; part of GNU Emacs",
      "backend": null,
      "platforms": {
        "linux": {
          "support": "native",
          "install": [
            {
              "via": "apt",
              "cmd": "sudo apt install emacs"
            },
            {
              "via": "dnf",
              "cmd": "sudo dnf install emacs"
            },
            {
              "via": "pacman",
              "cmd": "sudo pacman -S emacs"
            }
          ]
        },
        "macos": {
          "support": "native",
          "install": [
            {
              "via": "Homebrew",
              "cmd": "brew install emacs"
            },
            {
              "via": "Homebrew Cask",
              "cmd": "brew install --cask emacs-app"
            }
          ]
        },
        "windows": {
          "support": "native",
          "note": "Gnus runs in native Windows builds of GNU Emacs.",
          "install": [
            {
              "via": "winget",
              "cmd": "winget install GNU.Emacs"
            },
            {
              "via": "Scoop",
              "cmd": "scoop bucket add extras && scoop install extras/emacs"
            }
          ]
        },
        "bsd": {
          "support": "native",
          "install": [
            {
              "via": "FreeBSD pkg",
              "cmd": "pkg install emacs"
            },
            {
              "via": "OpenBSD",
              "cmd": "pkg_add emacs"
            }
          ]
        },
        "android": {
          "support": "termux",
          "install": [
            {
              "via": "Termux",
              "cmd": "pkg install emacs"
            }
          ]
        }
      },
      "protocols": {
        "imap": true,
        "pop3": true,
        "smtp": true,
        "jmap": false,
        "maildir": true,
        "mbox": true,
        "notmuch": "external"
      },
      "features": {
        "pgp": true,
        "smime": true,
        "oauth2": "via plugin",
        "threads": true,
        "search": "gnus-search: IMAP SEARCH, or notmuch, mu, mairix and other local indexers",
        "html": "built-in, rendered with the Emacs shr library",
        "mouse": true,
        "multiple_accounts": true,
        "offline": "via the Gnus agent or local Maildir back ends",
        "calendar": "replies to invitations with gnus-icalendar",
        "contacts": "via BBDB or EUDC",
        "vim_keys": false,
        "config": "Emacs Lisp in init.el or ~/.gnus.el"
      },
      "pros": [
        "Included with every GNU Emacs install, including native Windows builds.",
        "Reads IMAP directly, plus local Maildir, MH and mbox stores and NNTP newsgroups.",
        "Scoring, splitting and the Gnus agent allow detailed filtering and offline reading."
      ],
      "cons": [
        "The group, summary and article model takes time to learn.",
        "IMAP access runs inside Emacs, so large mailboxes can make Emacs wait.",
        "Configuration is Emacs Lisp spread across many variables."
      ],
      "forward_email": {
        "config": ";; ~/.emacs.d/init.el (or ~/.gnus.el)\n(setq user-mail-address \"you@example.com\"\n      user-full-name \"Your Name\"\n      gnus-select-method\n      '(nnimap \"forwardemail\"\n               (nnimap-address \"imap.forwardemail.net\")\n               (nnimap-server-port 993)\n               (nnimap-stream tls)\n               (nnimap-user \"you@example.com\"))\n      gnus-message-archive-group \"nnimap+forwardemail:Sent Mail\"\n      message-send-mail-function 'smtpmail-send-it\n      smtpmail-smtp-server \"smtp.forwardemail.net\"\n      smtpmail-smtp-service 465\n      smtpmail-stream-type 'ssl\n      smtpmail-smtp-user \"you@example.com\")\n\n;; Passwords in ~/.authinfo.gpg (read by Emacs auth-source):\n;; machine imap.forwardemail.net login you@example.com port 993 password YOUR-GENERATED-PASSWORD\n;; machine smtp.forwardemail.net login you@example.com port 465 password YOUR-GENERATED-PASSWORD\n;; Start with M-x gnus\n",
        "file": "~/.emacs.d/init.el"
      },
      "sources": [
        "https://www.gnus.org/",
        "https://gnus.org/manual.html",
        "https://gnus.org/history.html",
        "https://www.gnu.org/software/emacs/manual/gnus.html",
        "https://github.com/emacs-mirror/emacs/blob/emacs-31/lisp/gnus/gnus.el",
        "https://github.com/emacs-mirror/emacs/blob/emacs-31/lisp/gnus/nnimap.el",
        "https://github.com/emacs-mirror/emacs/blob/emacs-31/lisp/gnus/gnus-search.el",
        "https://github.com/emacs-mirror/emacs/blob/emacs-31/lisp/gnus/gnus-icalendar.el",
        "https://github.com/emacs-mirror/emacs/blob/emacs-31/lisp/gnus/nnmaildir.el",
        "https://github.com/emacs-mirror/emacs/blob/emacs-31/lisp/gnus/mml-smime.el",
        "https://github.com/emacs-mirror/emacs/blob/emacs-31/lisp/mail/smtpmail.el",
        "https://ftp.gnu.org/gnu/emacs/",
        "https://packages.debian.org/trixie/emacs",
        "https://mdapi.fedoraproject.org/rawhide/pkg/emacs",
        "https://archlinux.org/packages/extra/x86_64/emacs/",
        "https://formulae.brew.sh/formula/emacs",
        "https://formulae.brew.sh/cask/emacs-app",
        "https://github.com/microsoft/winget-pkgs/tree/master/manifests/g/GNU/Emacs",
        "https://github.com/ScoopInstaller/Extras/blob/master/bucket/emacs.json",
        "https://github.com/freebsd/freebsd-ports/blob/main/editors/emacs/Makefile",
        "https://github.com/openbsd/ports/blob/master/editors/emacs/Makefile",
        "https://github.com/termux/termux-packages/blob/master/packages/emacs/build.sh",
        "https://github.com/forwardemail/forwardemail.net/blob/master/helpers/ensure-default-mailboxes.js"
      ],
      "updated": "2026-10-01T12:54:22-05:00"
    },
    {
      "name": "Himalaya",
      "slug": "himalaya",
      "type": "client",
      "interface": "cli",
      "featured": false,
      "url": "https://terminalemail.com/clients/himalaya/",
      "summary": "Command-line email client written in Rust that lists, reads, sends and moves mail through shell commands with JSON output.",
      "description": "Himalaya is a stateless command-line email client: each action, such as listing envelopes or sending a message, is a separate shell command, so it fits scripts, editor plugins and other tools. It talks to IMAP, SMTP, JMAP, the Gmail API and Microsoft Graph, and reads Maildir and m2dir folders. Version 2 moved composing, PGP and OAuth token handling into separate Pimalaya tools (mml and ortie); a full-screen interface, himalaya-tui, is developed separately and is still pre-release.",
      "website": "https://pimalaya.org/",
      "repo": "https://github.com/pimalaya/himalaya",
      "docs": "https://github.com/pimalaya/himalaya#readme",
      "license": "MIT OR Apache-2.0",
      "open_source": true,
      "language": "Rust",
      "maintained": true,
      "latest_version": "2.1.0",
      "lineage": null,
      "backend": null,
      "platforms": {
        "linux": {
          "support": "native",
          "install": [
            {
              "via": "pacman",
              "cmd": "sudo pacman -S himalaya"
            },
            {
              "via": "Nix",
              "cmd": "nix profile install github:pimalaya/himalaya"
            },
            {
              "via": "cargo",
              "cmd": "cargo install --locked --git https://github.com/pimalaya/himalaya.git"
            },
            {
              "via": "Install script",
              "cmd": "curl -sSL https://raw.githubusercontent.com/pimalaya/himalaya/master/install.sh | PREFIX=~/.local sh"
            }
          ]
        },
        "macos": {
          "support": "native",
          "install": [
            {
              "via": "Homebrew",
              "cmd": "brew install himalaya"
            },
            {
              "via": "cargo",
              "cmd": "cargo install --locked --git https://github.com/pimalaya/himalaya.git"
            }
          ]
        },
        "windows": {
          "support": "native",
          "note": "Prebuilt x86_64 Windows binary on GitHub releases.",
          "install": [
            {
              "via": "Scoop",
              "cmd": "scoop install himalaya"
            }
          ]
        },
        "bsd": {
          "support": "source",
          "note": "No BSD package or prebuilt binary.",
          "install": [
            {
              "via": "cargo",
              "cmd": "cargo install --locked --git https://github.com/pimalaya/himalaya.git"
            }
          ]
        },
        "android": {
          "support": "none",
          "install": []
        }
      },
      "protocols": {
        "imap": true,
        "pop3": false,
        "smtp": true,
        "jmap": true,
        "maildir": true,
        "mbox": false,
        "notmuch": false
      },
      "features": {
        "pgp": false,
        "smime": false,
        "oauth2": "via script",
        "threads": "through the IMAP, JMAP and Gmail subcommands",
        "search": "built-in query syntax across backends; server-side for IMAP and JMAP",
        "html": false,
        "mouse": false,
        "multiple_accounts": true,
        "offline": "with the Maildir backend and a sync tool such as mbsync",
        "calendar": false,
        "contacts": false,
        "vim_keys": false,
        "config": "TOML file; interactive setup wizard"
      },
      "pros": [
        "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"
      ],
      "cons": [
        "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"
      ],
      "forward_email": {
        "config": "# Forward Email: IMAP over SSL/TLS (993), SMTP over SSL/TLS (465)\n[accounts.forwardemail]\ndefault = true\nemail = \"you@example.com\"\ndisplay-name = \"Your Name\"\n\nimap.server = \"imaps://imap.forwardemail.net:993\"\nimap.sasl.plain.username = \"you@example.com\"\nimap.sasl.plain.password.command = \"pass show email/forwardemail\"\n\nsmtp.server = \"smtps://smtp.forwardemail.net:465\"\nsmtp.sasl.plain.username = \"you@example.com\"\nsmtp.sasl.plain.password.command = \"pass show email/forwardemail\"\n\n# IMAP reports only the inbox role, so map the other folders by name\nmailbox.alias.sent = \"Sent Mail\"\nmailbox.alias.drafts = \"Drafts\"\nmailbox.alias.trash = \"Trash\"\n",
        "file": "~/.config/himalaya/config.toml"
      },
      "sources": [
        "https://pimalaya.org/",
        "https://github.com/pimalaya/himalaya",
        "https://github.com/pimalaya/himalaya/blob/master/README.md",
        "https://github.com/pimalaya/himalaya/blob/master/MIGRATION.md",
        "https://github.com/pimalaya/himalaya/blob/master/CHANGELOG.md",
        "https://github.com/pimalaya/himalaya/blob/v2.1.0/config.sample.toml",
        "https://github.com/pimalaya/himalaya/blob/v2.1.0/Cargo.toml",
        "https://github.com/pimalaya/himalaya/blob/master/install.sh",
        "https://github.com/pimalaya/himalaya-tui",
        "https://crates.io/crates/himalaya",
        "https://formulae.brew.sh/formula/himalaya",
        "https://archlinux.org/packages/extra/x86_64/himalaya/",
        "https://github.com/ScoopInstaller/Main/blob/master/bucket/himalaya.json",
        "https://github.com/forwardemail/forwardemail.net/blob/master/helpers/ensure-default-mailboxes.js"
      ],
      "updated": "2026-10-01T12:54:22-05:00"
    },
    {
      "name": "isync",
      "slug": "isync",
      "type": "tool",
      "interface": "cli",
      "featured": false,
      "url": "https://terminalemail.com/tools/isync/",
      "summary": "Command line program (mbsync) that syncs IMAP mailboxes with local Maildir folders in both directions.",
      "description": "isync is the project name; the program is called mbsync. It keeps a local Maildir copy of IMAP folders and propagates new messages, deletions and flag changes both ways, using one state file per mailbox pair. It is a common companion to Maildir-based clients such as NeoMutt, aerc, mu4e and notmuch. Sending mail is out of scope; pair it with an SMTP tool such as msmtp.",
      "website": "https://isync.sourceforge.io/",
      "repo": "https://sourceforge.net/p/isync/isync/",
      "docs": "https://isync.sourceforge.io/mbsync.html",
      "license": "GPL-2.0-or-later",
      "open_source": true,
      "language": "C",
      "maintained": true,
      "latest_version": "1.5.1",
      "lineage": null,
      "backend": null,
      "platforms": {
        "linux": {
          "support": "native",
          "install": [
            {
              "via": "apt",
              "cmd": "sudo apt install isync"
            },
            {
              "via": "dnf",
              "cmd": "sudo dnf install isync"
            },
            {
              "via": "pacman",
              "cmd": "sudo pacman -S isync"
            },
            {
              "via": "apk",
              "cmd": "sudo apk add isync"
            }
          ]
        },
        "macos": {
          "support": "native",
          "install": [
            {
              "via": "Homebrew",
              "cmd": "brew install isync"
            },
            {
              "via": "MacPorts",
              "cmd": "sudo port install isync"
            }
          ]
        },
        "windows": {
          "support": "wsl",
          "note": "No native Windows build; use WSL.",
          "install": [
            {
              "via": "WSL",
              "cmd": "sudo apt install isync"
            }
          ]
        },
        "bsd": {
          "support": "native",
          "install": [
            {
              "via": "FreeBSD pkg",
              "cmd": "pkg install isync"
            },
            {
              "via": "OpenBSD",
              "cmd": "pkg_add isync"
            }
          ]
        },
        "android": {
          "support": "termux",
          "install": [
            {
              "via": "Termux",
              "cmd": "pkg install isync"
            }
          ]
        }
      },
      "protocols": {
        "imap": true,
        "pop3": false,
        "smtp": false,
        "jmap": false,
        "maildir": true,
        "mbox": false,
        "notmuch": false
      },
      "features": {
        "pgp": false,
        "smime": false,
        "oauth2": "via a Cyrus SASL XOAUTH2 plugin and PassCmd",
        "threads": false,
        "search": false,
        "html": false,
        "mouse": false,
        "multiple_accounts": true,
        "offline": "keeps a full local Maildir copy",
        "calendar": false,
        "contacts": false,
        "vim_keys": false,
        "config": "~/.mbsyncrc or ~/.config/isyncrc text file"
      },
      "pros": [
        "Two-way sync of messages, deletions and flags between IMAP and Maildir",
        "PassCmd reads the password from any command, such as pass or gpg",
        "Packaged for nearly every Linux distribution, macOS, the BSDs and Termux"
      ],
      "cons": [
        "Version 1.5 renamed options (SSLType to TLSType), so older guides need edits",
        "Only IMAP and Maildir; no POP3 and no sending",
        "No built-in daemon or IDLE watch; runs from cron, a timer or the mail client"
      ],
      "forward_email": {
        "config": "# Sync a Forward Email mailbox to ~/Mail/forwardemail (run: mkdir -p ~/Mail/forwardemail)\n# TLSType needs isync 1.5 or newer; on 1.4 write \"SSLType IMAPS\" instead.\nIMAPAccount forwardemail\nHost imap.forwardemail.net\nPort 993\nUser you@example.com\nPassCmd \"pass show forwardemail/you@example.com\"\nTLSType IMAPS\n\nIMAPStore forwardemail-remote\nAccount forwardemail\n\nMaildirStore forwardemail-local\nSubFolders Verbatim\nPath ~/Mail/forwardemail/\nInbox ~/Mail/forwardemail/INBOX\n\nChannel forwardemail\nFar :forwardemail-remote:\nNear :forwardemail-local:\nPatterns *\nCreate Both\nExpunge Both\nSyncState *\n\n# Then run: mbsync forwardemail\n",
        "file": "~/.mbsyncrc"
      },
      "sources": [
        "https://isync.sourceforge.io/",
        "https://sourceforge.net/p/isync/isync/ci/master/tree/",
        "https://sourceforge.net/p/isync/isync/ci/master/tree/NEWS",
        "https://sourceforge.net/p/isync/isync/ci/master/tree/src/mbsync.1.in",
        "https://sourceforge.net/p/isync/isync/ci/master/tree/src/mbsyncrc.sample",
        "https://sourceforge.net/p/isync/isync/ci/master/tree/LICENSES/",
        "https://packages.debian.org/search?keywords=isync&searchon=names&exact=1",
        "https://packages.ubuntu.com/isync",
        "https://mdapi.fedoraproject.org/rawhide/pkg/isync",
        "https://archlinux.org/packages/extra/x86_64/isync/",
        "https://pkgs.alpinelinux.org/packages?name=isync",
        "https://formulae.brew.sh/formula/isync",
        "https://ports.macports.org/port/isync/",
        "https://www.freshports.org/mail/isync/",
        "https://openports.pl/path/mail/isync",
        "https://github.com/termux/termux-packages/tree/master/packages/isync"
      ],
      "updated": "2026-10-01T12:54:22-05:00"
    },
    {
      "name": "Matcha",
      "slug": "matcha",
      "type": "client",
      "interface": "tui",
      "featured": false,
      "url": "https://terminalemail.com/clients/matcha/",
      "summary": "Terminal email client written in Go with the Bubble Tea TUI library, with IMAP, JMAP and POP3 support.",
      "description": "Matcha is a full-screen terminal email client by Floatpane. It talks to IMAP, JMAP, POP3 or a local Maildir and sends over SMTP, with multiple accounts, PGP and S/MIME, threaded view, inline images in terminals that support image protocols, and Lua plugins. Accounts and settings live in a JSON file, and a background daemon handles new mail notifications. It suits users who want a modern, mouse-capable client with presets for Gmail, iCloud and Outlook.",
      "website": "https://matcha.email/",
      "repo": "https://github.com/floatpane/matcha",
      "docs": "https://docs.matcha.email/",
      "license": "MIT",
      "open_source": true,
      "language": "Go",
      "maintained": true,
      "latest_version": "v1.0.1",
      "lineage": null,
      "backend": null,
      "platforms": {
        "linux": {
          "support": "native",
          "install": [
            {
              "via": "Snap",
              "cmd": "sudo snap install matcha"
            },
            {
              "via": "Flatpak",
              "cmd": "flatpak install https://matcha.email/matcha.flatpakref"
            },
            {
              "via": "Nix",
              "cmd": "nix profile install github:floatpane/matcha"
            }
          ]
        },
        "macos": {
          "support": "native",
          "install": [
            {
              "via": "Homebrew",
              "cmd": "brew install --cask floatpane/matcha/matcha"
            }
          ]
        },
        "windows": {
          "support": "native",
          "install": [
            {
              "via": "winget",
              "cmd": "winget install --id=floatpane.matcha"
            }
          ]
        },
        "bsd": {
          "support": "source",
          "note": "No ports package; build with Go.",
          "install": [
            {
              "via": "Go",
              "cmd": "git clone https://github.com/floatpane/matcha && cd matcha && go build ."
            }
          ]
        },
        "android": {
          "support": "none",
          "install": []
        }
      },
      "protocols": {
        "imap": true,
        "pop3": true,
        "smtp": true,
        "jmap": true,
        "maildir": true,
        "mbox": false,
        "notmuch": false
      },
      "features": {
        "pgp": true,
        "smime": true,
        "oauth2": true,
        "threads": true,
        "search": "built-in search and filter",
        "html": "built-in rendering, with inline images in supported terminals",
        "mouse": true,
        "multiple_accounts": true,
        "offline": "local cache of message lists and bodies",
        "calendar": "shows .ics invites and sends RSVP replies",
        "contacts": "address book built from sent and received mail",
        "vim_keys": true,
        "config": "~/.config/matcha/config.json plus in-app settings"
      },
      "pros": [
        "Supports IMAP, JMAP, POP3 and Maildir in one client",
        "PGP (including YubiKey) and S/MIME signing and encryption",
        "Prebuilt packages for Linux (Snap, Flatpak), macOS (Homebrew tap) and Windows (winget)"
      ],
      "cons": [
        "Young project; v1.0 shipped only after a long series of 0.x releases",
        "JSON config is less readable to hand-edit than muttrc-style files",
        "Binary name clashes with an unrelated tool also called matcha"
      ],
      "forward_email": {
        "config": "{\n  \"accounts\": [\n    {\n      \"id\": \"forwardemail\",\n      \"name\": \"Your Name\",\n      \"email\": \"you@example.com\",\n      \"service_provider\": \"custom\",\n      \"imap_server\": \"imap.forwardemail.net\",\n      \"imap_port\": 993,\n      \"smtp_server\": \"smtp.forwardemail.net\",\n      \"smtp_port\": 465,\n      \"pass_cmd\": \"pass show forwardemail/you@example.com\"\n    }\n  ]\n}\n",
        "file": "~/.config/matcha/config.json"
      },
      "sources": [
        "https://matcha.email/",
        "https://github.com/floatpane/matcha",
        "https://github.com/floatpane/matcha/blob/master/LICENSE",
        "https://github.com/floatpane/matcha/releases/tag/v1.0.1",
        "https://github.com/floatpane/matcha/blob/master/docs/docs/installation.md",
        "https://github.com/floatpane/matcha/blob/master/docs/docs/Configuration.md",
        "https://github.com/floatpane/matcha/blob/master/docs/docs/Features/PassCmd.md",
        "https://github.com/floatpane/matcha/blob/master/docs/docs/Features/Keybinds.md",
        "https://github.com/floatpane/matcha/blob/master/docs/docs/Features/CALENDAR.md",
        "https://github.com/floatpane/matcha/blob/master/backend/README.md",
        "https://github.com/floatpane/matcha/blob/master/config/config.go",
        "https://github.com/floatpane/matcha/blob/master/fetcher/fetcher.go",
        "https://github.com/floatpane/matcha/blob/master/sender/sender.go",
        "https://github.com/floatpane/homebrew-matcha",
        "https://github.com/microsoft/winget-pkgs/tree/master/manifests/f/floatpane/matcha",
        "https://snapcraft.io/matcha",
        "https://docs.matcha.email/"
      ],
      "updated": "2026-10-01T12:54:22-05:00"
    },
    {
      "name": "mblaze",
      "slug": "mblaze",
      "type": "client",
      "interface": "cli",
      "featured": false,
      "url": "https://terminalemail.com/clients/mblaze/",
      "summary": "Set of small Unix utilities for reading, searching, threading and composing mail stored in Maildir folders.",
      "description": "mblaze is a collection of commands such as mlist, mscan, mshow, mthread, mpick and mcom that are combined in shell pipes. It works directly on Maildir folders with no database or cache, and can import and export mbox files; its design is inspired by MH but written from scratch. It has no networking of its own: a sync tool such as mbsync fetches mail and a sendmail-compatible program such as msmtp sends it. It suits users who want to script mail handling with standard Unix tools.",
      "website": "https://github.com/leahneukirchen/mblaze",
      "repo": "https://github.com/leahneukirchen/mblaze",
      "docs": "https://github.com/leahneukirchen/mblaze/blob/master/README",
      "license": "CC0-1.0 AND MIT",
      "open_source": true,
      "language": "C",
      "maintained": true,
      "latest_version": "1.4",
      "lineage": "Inspired by MH; written from scratch",
      "backend": null,
      "platforms": {
        "linux": {
          "support": "native",
          "install": [
            {
              "via": "apt",
              "cmd": "sudo apt install mblaze"
            },
            {
              "via": "xbps",
              "cmd": "sudo xbps-install mblaze"
            },
            {
              "via": "AUR",
              "cmd": "yay -S mblaze"
            }
          ]
        },
        "macos": {
          "support": "native",
          "note": "No Homebrew formula; available through Nix or by building from source with GNU make.",
          "install": [
            {
              "via": "Nix",
              "cmd": "nix profile install nixpkgs#mblaze"
            }
          ]
        },
        "windows": {
          "support": "wsl",
          "note": "No native build; upstream lists Cygwin as tested, and the Debian package works in WSL.",
          "install": [
            {
              "via": "WSL",
              "cmd": "sudo apt install mblaze"
            }
          ]
        },
        "bsd": {
          "support": "native",
          "install": [
            {
              "via": "FreeBSD pkg",
              "cmd": "pkg install mblaze"
            },
            {
              "via": "OpenBSD",
              "cmd": "pkg_add mblaze"
            }
          ]
        },
        "android": {
          "support": "none",
          "note": "No Termux package.",
          "install": []
        }
      },
      "protocols": {
        "imap": "external",
        "pop3": "external",
        "smtp": "external",
        "jmap": false,
        "maildir": true,
        "mbox": false,
        "notmuch": false
      },
      "features": {
        "pgp": "via contrib scripts",
        "smime": false,
        "oauth2": false,
        "threads": true,
        "search": "mpick and magrep filter messages by headers, flags and content",
        "html": "via a filter command in ~/.mblaze/filter used by mshow",
        "mouse": false,
        "multiple_accounts": "via separate Maildirs and profile settings",
        "offline": "full; works only on local Maildir",
        "calendar": false,
        "contacts": false,
        "vim_keys": false,
        "config": "~/.mblaze/profile (header-style key: value lines)"
      },
      "pros": [
        "Each command does one job, so mail handling is easy to combine in pipes and scripts.",
        "Works directly on Maildir with no index or database to maintain.",
        "Small C programs with no external library dependencies."
      ],
      "cons": [
        "No built-in IMAP, POP3 or SMTP; needs mbsync and msmtp or similar tools.",
        "Command-line only, with no full-screen interface.",
        "OpenPGP and S/MIME handling relies on unsupported contrib scripts."
      ],
      "forward_email": {
        "config": "# 1) ~/.mbsyncrc: sync to ~/Mail/forwardemail (isync 1.5+ syntax)\nIMAPAccount forwardemail\nHost imap.forwardemail.net\nPort 993\nUser you@example.com\nPassCmd \"pass show email/forwardemail\"\nTLSType IMAPS\n\nIMAPStore forwardemail-remote\nAccount forwardemail\n\nMaildirStore forwardemail-local\nSubFolders Verbatim\nPath ~/Mail/forwardemail/\nInbox ~/Mail/forwardemail/INBOX\n\nChannel forwardemail\nFar :forwardemail-remote:\nNear :forwardemail-local:\nPatterns *\nCreate Both\nSyncState *\n\n# 2) ~/.config/msmtp/config (chmod 600)\naccount forwardemail\nhost smtp.forwardemail.net\nport 465\ntls on\ntls_starttls off\nauth on\nuser you@example.com\npasswordeval \"pass show email/forwardemail\"\nfrom you@example.com\naccount default : forwardemail\n\n# 3) ~/.mblaze/profile\nLocal-Mailbox: Your Name <you@example.com>\nMaildir: ~/Mail/forwardemail\nOutbox: ~/Mail/forwardemail/Sent Mail\nSendmail: msmtp\n\n# Usage: mbsync forwardemail; mlist ~/Mail/forwardemail/INBOX | mthread | mscan\n",
        "file": "~/.mbsyncrc, ~/.config/msmtp/config and ~/.mblaze/profile"
      },
      "sources": [
        "https://github.com/leahneukirchen/mblaze",
        "https://github.com/leahneukirchen/mblaze/blob/master/README",
        "https://github.com/leahneukirchen/mblaze/blob/master/COPYING",
        "https://github.com/leahneukirchen/mblaze/blob/master/INSTALL.md",
        "https://github.com/leahneukirchen/mblaze/blob/master/man/mblaze-profile.5",
        "https://github.com/leahneukirchen/mblaze/tree/master/contrib",
        "https://leahneukirchen.org/releases/",
        "https://packages.debian.org/trixie/mblaze",
        "https://github.com/void-linux/void-packages/blob/master/srcpkgs/mblaze/template",
        "https://aur.archlinux.org/packages/mblaze",
        "https://github.com/NixOS/nixpkgs/blob/master/pkgs/by-name/mb/mblaze/package.nix",
        "https://github.com/freebsd/freebsd-ports/blob/main/mail/mblaze/Makefile",
        "https://github.com/openbsd/ports/blob/master/mail/mblaze/Makefile",
        "https://formulae.brew.sh/api/formula.json",
        "https://sourceforge.net/p/isync/isync/ci/master/tree/src/mbsync.1.in",
        "https://git.marlam.de/gitweb/?p=msmtp.git;a=blob;f=doc/msmtp.texi"
      ],
      "updated": "2026-10-01T12:54:22-05:00"
    },
    {
      "name": "meli",
      "slug": "meli",
      "type": "client",
      "interface": "tui",
      "featured": false,
      "url": "https://terminalemail.com/clients/meli/",
      "summary": "Terminal email client written in Rust with IMAP, JMAP, notmuch, Maildir, mbox and NNTP backends and TOML configuration.",
      "description": "meli is a full-screen terminal email client for Linux, macOS and the BSDs. It supports several accounts at once over IMAP, JMAP, notmuch, Maildir, read-only mbox and NNTP, sends through its built-in SMTP client or a shell command, and can run the editor inside an embedded terminal. Configuration is a single TOML file, and most settings can be overridden per account or per mailbox.",
      "website": "https://meli-email.org/",
      "repo": "https://git.meli-email.org/meli/meli",
      "docs": "https://meli-email.org/documentation.html",
      "license": "EUPL-1.2 OR GPL-3.0-or-later",
      "open_source": true,
      "language": "Rust",
      "maintained": true,
      "latest_version": "0.8.13",
      "lineage": null,
      "backend": null,
      "platforms": {
        "linux": {
          "support": "native",
          "install": [
            {
              "via": "apt",
              "cmd": "sudo apt install meli"
            },
            {
              "via": "cargo",
              "cmd": "cargo install meli"
            }
          ]
        },
        "macos": {
          "support": "native",
          "install": [
            {
              "via": "Homebrew",
              "cmd": "brew install meli"
            },
            {
              "via": "MacPorts",
              "cmd": "sudo port install meli"
            },
            {
              "via": "cargo",
              "cmd": "cargo install meli"
            }
          ]
        },
        "windows": {
          "support": "none",
          "note": "No Windows build; the project lists BSD, Linux and macOS.",
          "install": []
        },
        "bsd": {
          "support": "native",
          "install": [
            {
              "via": "OpenBSD",
              "cmd": "pkg_add meli"
            },
            {
              "via": "NetBSD pkgsrc",
              "cmd": "pkgin install meli"
            }
          ]
        },
        "android": {
          "support": "none",
          "install": []
        }
      },
      "protocols": {
        "imap": true,
        "pop3": false,
        "smtp": true,
        "jmap": true,
        "maildir": true,
        "mbox": true,
        "notmuch": true
      },
      "features": {
        "pgp": true,
        "smime": false,
        "oauth2": "via script",
        "threads": true,
        "search": "built-in; sqlite3 index by default; notmuch queries",
        "html": "via filter command, w3m by default",
        "mouse": true,
        "multiple_accounts": true,
        "offline": "IMAP header cache in sqlite3; full offline use with Maildir and mbsync",
        "calendar": false,
        "contacts": "built-in contact list; reads vCard and mutt alias files",
        "vim_keys": true,
        "config": "TOML file (config.toml)"
      },
      "pros": [
        "Supports JMAP, notmuch, IMAP, Maildir and NNTP in one client",
        "Single TOML file with per-account and per-mailbox overrides",
        "Embedded terminal runs the editor inside the compose view"
      ],
      "cons": [
        "No POP3 or S/MIME support",
        "mbox support is read-only",
        "No Windows or Termux packages"
      ],
      "forward_email": {
        "config": "# Forward Email: IMAP over SSL/TLS (993), SMTP over SSL/TLS (465)\n[accounts.\"forwardemail\"]\nformat = \"imap\"\nroot_mailbox = \"INBOX\"\nsubscribed_mailboxes = [\"*\"]\nidentity = \"you@example.com\"\ndisplay_name = \"Your Name\"\nserver_hostname = \"imap.forwardemail.net\"\nserver_port = 993\nuse_tls = true\nserver_username = \"you@example.com\"\nserver_password_command = \"pass show email/forwardemail\"\nsend_mail = { hostname = \"smtp.forwardemail.net\", port = 465, auth = { type = \"auto\", username = \"you@example.com\", password = { type = \"command_eval\", value = \"pass show email/forwardemail\" } }, security = { type = \"TLS\" } }\n",
        "file": "~/.config/meli/config.toml"
      },
      "sources": [
        "https://meli-email.org/",
        "https://meli-email.org/documentation.html",
        "https://git.meli-email.org/meli/meli",
        "https://github.com/meli/meli",
        "https://github.com/meli/meli/blob/master/COPYING",
        "https://github.com/meli/meli/blob/master/README.md",
        "https://github.com/meli/meli/blob/v0.8.13/meli/docs/meli.conf.5",
        "https://github.com/meli/meli/blob/master/meli/src/version_migrations/v0_9_0.rs",
        "https://crates.io/crates/meli",
        "https://formulae.brew.sh/formula/meli",
        "https://ports.macports.org/port/meli/",
        "https://sources.debian.org/src/meli/",
        "https://github.com/openbsd/ports/tree/master/mail/meli",
        "https://cdn.netbsd.org/pub/pkgsrc/current/pkgsrc/mail/meli/Makefile",
        "https://github.com/forwardemail/forwardemail.net/blob/master/helpers/ensure-default-mailboxes.js"
      ],
      "updated": "2026-10-01T12:54:22-05:00"
    },
    {
      "name": "msmtp",
      "slug": "msmtp",
      "type": "tool",
      "interface": "cli",
      "featured": false,
      "url": "https://terminalemail.com/tools/msmtp/",
      "summary": "SMTP client with a sendmail-compatible interface that terminal mail clients use to send mail.",
      "description": "msmtp takes a message on standard input and hands it to an SMTP server. Its command line options and exit codes match sendmail, so clients such as NeoMutt, sup, mu4e and git send-email can call it in place of /usr/sbin/sendmail. It supports several accounts, TLS, many authentication methods and reading the password from a command. The bundled msmtpq script queues mail while offline.",
      "website": "https://marlam.de/msmtp/",
      "repo": "https://git.marlam.de/gitweb/?p=msmtp.git",
      "docs": "https://marlam.de/msmtp/msmtp.html",
      "license": "GPL-3.0-or-later",
      "open_source": true,
      "language": "C",
      "maintained": true,
      "latest_version": "1.8.34",
      "lineage": null,
      "backend": null,
      "platforms": {
        "linux": {
          "support": "native",
          "install": [
            {
              "via": "apt",
              "cmd": "sudo apt install msmtp"
            },
            {
              "via": "dnf",
              "cmd": "sudo dnf install msmtp"
            },
            {
              "via": "pacman",
              "cmd": "sudo pacman -S msmtp"
            },
            {
              "via": "apk",
              "cmd": "sudo apk add msmtp"
            }
          ]
        },
        "macos": {
          "support": "native",
          "install": [
            {
              "via": "Homebrew",
              "cmd": "brew install msmtp"
            }
          ]
        },
        "windows": {
          "support": "native",
          "note": "Native builds through MSYS2 and Cygwin.",
          "install": [
            {
              "via": "MSYS2",
              "cmd": "pacman -S mingw-w64-ucrt-x86_64-msmtp"
            },
            {
              "via": "Cygwin",
              "cmd": "setup-x86_64.exe -q -P msmtp"
            }
          ]
        },
        "bsd": {
          "support": "native",
          "install": [
            {
              "via": "FreeBSD pkg",
              "cmd": "pkg install msmtp"
            },
            {
              "via": "OpenBSD",
              "cmd": "pkg_add msmtp"
            }
          ]
        },
        "android": {
          "support": "termux",
          "install": [
            {
              "via": "Termux",
              "cmd": "pkg install msmtp"
            }
          ]
        }
      },
      "protocols": {
        "imap": false,
        "pop3": false,
        "smtp": true,
        "jmap": false,
        "maildir": false,
        "mbox": false,
        "notmuch": false
      },
      "features": {
        "pgp": false,
        "smime": false,
        "oauth2": "via passwordeval with a token command (oauthbearer, xoauth2)",
        "threads": false,
        "search": false,
        "html": false,
        "mouse": false,
        "multiple_accounts": true,
        "offline": "queues mail with the bundled msmtpq script",
        "calendar": false,
        "contacts": false,
        "vim_keys": false,
        "config": "~/.msmtprc or ~/.config/msmtp/config text file"
      },
      "pros": [
        "Drop-in sendmail replacement that most terminal clients can call",
        "passwordeval reads the password from pass, gpg or a keyring",
        "Small, with packages on every major platform including Windows and Termux"
      ],
      "cons": [
        "Send only; needs a separate tool or client to read mail",
        "Offline queueing needs the separate msmtpq script",
        "OAuth2 tokens must be fetched and refreshed by an external program"
      ],
      "forward_email": {
        "config": "defaults\nauth           on\ntls            on\n# Debian/Ubuntu path; omit this line to use the system default trust store\ntls_trust_file /etc/ssl/certs/ca-certificates.crt\nlogfile        ~/.msmtp.log\n\naccount        forwardemail\nhost           smtp.forwardemail.net\nport           465\ntls_starttls   off\nfrom           you@example.com\nuser           you@example.com\npasswordeval   pass show forwardemail/you@example.com\n\naccount default : forwardemail\n\n# Test: printf 'Subject: test\\n\\nhello\\n' | msmtp you@example.com\n",
        "file": "~/.msmtprc"
      },
      "sources": [
        "https://marlam.de/msmtp/",
        "https://marlam.de/msmtp/download/",
        "https://marlam.de/msmtp/msmtp.html",
        "https://github.com/marlam/msmtp",
        "https://github.com/marlam/msmtp/blob/master/doc/msmtp.texi",
        "https://github.com/marlam/msmtp/tree/master/scripts/msmtpq",
        "https://packages.debian.org/search?keywords=msmtp&searchon=names&exact=1",
        "https://mdapi.fedoraproject.org/rawhide/pkg/msmtp",
        "https://archlinux.org/packages/extra/x86_64/msmtp/",
        "https://pkgs.alpinelinux.org/packages?name=msmtp",
        "https://formulae.brew.sh/formula/msmtp",
        "https://packages.msys2.org/base/mingw-w64-msmtp",
        "https://cygwin.com/packages/summary/msmtp.html",
        "https://www.freshports.org/mail/msmtp/",
        "https://openports.pl/path/mail/msmtp",
        "https://github.com/termux/termux-packages/tree/master/packages/msmtp"
      ],
      "updated": "2026-10-01T12:54:22-05:00"
    },
    {
      "name": "mu4e",
      "slug": "mu4e",
      "type": "client",
      "interface": "emacs",
      "featured": false,
      "url": "https://terminalemail.com/clients/mu4e/",
      "summary": "Email client that runs inside GNU Emacs, built on the mu Maildir indexer and search tool.",
      "description": "mu4e reads mail from a local Maildir that mu indexes with Xapian, and its views are search queries rather than folders. Mail is fetched by a separate program such as mbsync (isync), and sent through Emacs smtpmail or an external sendmail-compatible program. It reuses the Gnus message and article modes, so signing, encryption and HTML rendering come from Emacs. It suits Emacs users who keep mail offline and want fast full-text search.",
      "website": "https://www.djcbsoftware.nl/code/mu/mu4e.html",
      "repo": "https://github.com/djcb/mu",
      "docs": "https://www.djcbsoftware.nl/code/mu/mu4e/",
      "license": "GPL-3.0-or-later",
      "open_source": true,
      "language": "Emacs Lisp (mu4e), C++ (mu)",
      "maintained": true,
      "latest_version": "1.14.3",
      "lineage": "Emacs front end of the mu project",
      "backend": null,
      "platforms": {
        "linux": {
          "support": "native",
          "install": [
            {
              "via": "apt",
              "cmd": "sudo apt install mu4e isync"
            },
            {
              "via": "dnf",
              "cmd": "sudo dnf install maildir-utils isync emacs"
            },
            {
              "via": "AUR",
              "cmd": "yay -S mu isync"
            }
          ]
        },
        "macos": {
          "support": "native",
          "install": [
            {
              "via": "Homebrew",
              "cmd": "brew install mu isync emacs"
            }
          ]
        },
        "windows": {
          "support": "wsl",
          "note": "mu has no Windows package and upstream calls native Windows support experimental; run Emacs, mu and mbsync in WSL.",
          "install": [
            {
              "via": "WSL",
              "cmd": "sudo apt install mu4e isync"
            }
          ]
        },
        "bsd": {
          "support": "native",
          "install": [
            {
              "via": "FreeBSD pkg",
              "cmd": "pkg install mu isync"
            },
            {
              "via": "OpenBSD",
              "cmd": "pkg_add mu isync"
            }
          ]
        },
        "android": {
          "support": "termux",
          "install": [
            {
              "via": "Termux",
              "cmd": "pkg install mu isync"
            }
          ]
        }
      },
      "protocols": {
        "imap": "external",
        "pop3": "external",
        "smtp": true,
        "jmap": false,
        "maildir": true,
        "mbox": false,
        "notmuch": false
      },
      "features": {
        "pgp": true,
        "smime": "via Emacs MML",
        "oauth2": "via script",
        "threads": true,
        "search": "Xapian full-text index with mu query syntax",
        "html": "built-in, rendered with the Emacs shr library",
        "mouse": true,
        "multiple_accounts": "via contexts",
        "offline": "full; reads a local Maildir synced by mbsync or OfflineIMAP",
        "calendar": "replies to invitations with mu4e-icalendar",
        "contacts": "address completion from indexed mail",
        "vim_keys": false,
        "config": "Emacs Lisp in init.el"
      },
      "pros": [
        "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."
      ],
      "cons": [
        "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."
      ],
      "forward_email": {
        "config": "# 1) ~/.mbsyncrc: sync the mailbox to ~/Mail/forwardemail (isync 1.5+ syntax)\nIMAPAccount forwardemail\nHost imap.forwardemail.net\nPort 993\nUser you@example.com\nPassCmd \"pass show email/forwardemail\"\nTLSType IMAPS\n\nIMAPStore forwardemail-remote\nAccount forwardemail\n\nMaildirStore forwardemail-local\nSubFolders Verbatim\nPath ~/Mail/forwardemail/\nInbox ~/Mail/forwardemail/INBOX\n\nChannel forwardemail\nFar :forwardemail-remote:\nNear :forwardemail-local:\nPatterns * !Drafts\nCreate Both\nExpunge Both\nSyncState *\n\n# 2) First sync and index:\n#    mbsync forwardemail\n#    mu init --maildir=~/Mail --personal-address=you@example.com && mu index\n\n# 3) ~/.emacs.d/init.el\n(require 'mu4e)\n(setq user-mail-address \"you@example.com\"\n      user-full-name \"Your Name\"\n      mu4e-get-mail-command \"mbsync forwardemail\"\n      mu4e-change-filenames-when-moving t\n      mu4e-sent-folder \"/forwardemail/Sent Mail\"\n      mu4e-drafts-folder \"/forwardemail/Drafts\"\n      mu4e-trash-folder \"/forwardemail/Trash\"\n      message-send-mail-function 'smtpmail-send-it\n      smtpmail-smtp-server \"smtp.forwardemail.net\"\n      smtpmail-smtp-service 465\n      smtpmail-stream-type 'ssl\n      smtpmail-smtp-user \"you@example.com\")\n\n# 4) SMTP password in ~/.authinfo.gpg (read by Emacs auth-source):\n# machine smtp.forwardemail.net login you@example.com port 465 password YOUR-GENERATED-PASSWORD\n",
        "file": "~/.mbsyncrc and ~/.emacs.d/init.el"
      },
      "sources": [
        "https://www.djcbsoftware.nl/code/mu/mu4e.html",
        "https://www.djcbsoftware.nl/code/mu/mu4e/",
        "https://github.com/djcb/mu",
        "https://github.com/djcb/mu/blob/master/README.org",
        "https://github.com/djcb/mu/blob/master/COPYING",
        "https://github.com/djcb/mu/blob/master/mu4e/mu4e.texi",
        "https://github.com/djcb/mu/blob/master/man/mu-init.1.org",
        "https://formulae.brew.sh/formula/mu",
        "https://packages.debian.org/trixie/mu4e",
        "https://src.fedoraproject.org/rpms/maildir-utils/blob/rawhide/f/maildir-utils.spec",
        "https://aur.archlinux.org/packages/mu",
        "https://github.com/freebsd/freebsd-ports/blob/main/mail/mu/Makefile",
        "https://github.com/openbsd/ports/blob/master/mail/mu/Makefile",
        "https://github.com/termux/termux-packages/blob/master/packages/mu/build.sh",
        "https://packages.msys2.org/api/search?query=mu",
        "https://sourceforge.net/p/isync/isync/ci/master/tree/src/mbsync.1.in",
        "https://github.com/emacs-mirror/emacs/blob/emacs-31/lisp/mail/smtpmail.el",
        "https://github.com/forwardemail/forwardemail.net/blob/master/helpers/ensure-default-mailboxes.js"
      ],
      "updated": "2026-10-01T12:54:22-05:00"
    },
    {
      "name": "Mutt",
      "slug": "mutt",
      "type": "client",
      "interface": "tui",
      "featured": false,
      "url": "https://terminalemail.com/clients/mutt/",
      "summary": "Long-running text-mode email client with IMAP, POP3 and SMTP support, configured through a muttrc file.",
      "description": "Mutt is a full-screen terminal mail user agent that reads local Maildir, mbox and MH folders and remote IMAP and POP3 mailboxes, and can send through its built-in SMTP client or a local sendmail. It supports PGP/MIME, S/MIME, Autocrypt, threading and a sidebar. It suits users who want a stable, conservative client; it has no notmuch, NNTP or Lua support, which NeoMutt adds.",
      "website": "http://www.mutt.org/",
      "repo": "https://gitlab.com/muttmua/mutt",
      "docs": "http://www.mutt.org/doc/manual/",
      "license": "GPL-2.0-or-later",
      "open_source": true,
      "language": "C",
      "maintained": true,
      "latest_version": "2.4.2",
      "lineage": null,
      "backend": null,
      "platforms": {
        "linux": {
          "support": "native",
          "install": [
            {
              "via": "apt",
              "cmd": "sudo apt install mutt"
            },
            {
              "via": "dnf",
              "cmd": "sudo dnf install mutt"
            },
            {
              "via": "pacman",
              "cmd": "sudo pacman -S mutt"
            }
          ]
        },
        "macos": {
          "support": "native",
          "install": [
            {
              "via": "Homebrew",
              "cmd": "brew install mutt"
            }
          ]
        },
        "windows": {
          "support": "wsl",
          "note": "No native Windows build; runs in WSL, and Cygwin and MSYS2 also package it.",
          "install": [
            {
              "via": "WSL",
              "cmd": "sudo apt install mutt"
            },
            {
              "via": "MSYS2",
              "cmd": "pacman -S mutt"
            }
          ]
        },
        "bsd": {
          "support": "native",
          "install": [
            {
              "via": "FreeBSD pkg",
              "cmd": "pkg install mutt"
            },
            {
              "via": "OpenBSD",
              "cmd": "pkg_add mutt"
            }
          ]
        },
        "android": {
          "support": "termux",
          "install": [
            {
              "via": "Termux",
              "cmd": "pkg install mutt"
            }
          ]
        }
      },
      "protocols": {
        "imap": true,
        "pop3": true,
        "smtp": true,
        "jmap": false,
        "maildir": true,
        "mbox": true,
        "notmuch": false
      },
      "features": {
        "pgp": true,
        "smime": true,
        "oauth2": "via script",
        "threads": true,
        "search": "built-in patterns; server-side IMAP search",
        "html": "via mailcap and an external viewer such as w3m or lynx",
        "mouse": false,
        "multiple_accounts": true,
        "offline": "with isync or OfflineIMAP; IMAP header and body cache",
        "calendar": false,
        "contacts": "via query_command with abook or khard",
        "vim_keys": true,
        "config": "muttrc text file"
      },
      "pros": [
        "Packaged by major Linux distributions, Homebrew, FreeBSD, OpenBSD and Termux",
        "Conservative releases that rarely break existing muttrc files",
        "Built-in PGP/MIME, S/MIME and Autocrypt"
      ],
      "cons": [
        "No notmuch, NNTP or scripting support (NeoMutt has these)",
        "Configuration is a text file with hundreds of options and no setup wizard",
        "HTML mail needs an external viewer set up in mailcap"
      ],
      "forward_email": {
        "config": "# Forward Email: IMAP over SSL/TLS (993), SMTP over SSL/TLS (465)\nset realname = \"Your Name\"\nset from = \"you@example.com\"\n\nset imap_user = \"you@example.com\"\nset imap_pass = \"`pass show email/forwardemail`\"\nset folder = \"imaps://imap.forwardemail.net:993/\"\nset spoolfile = \"+INBOX\"\nset record = \"+Sent Mail\"\nset postponed = \"+Drafts\"\nset trash = \"+Trash\"\n\n# The @ in the username is URL-encoded as %40\nset smtp_url = \"smtps://you%40example.com@smtp.forwardemail.net:465/\"\nset smtp_pass = \"`pass show email/forwardemail`\"\nset ssl_force_tls = yes\n",
        "file": "~/.muttrc"
      },
      "sources": [
        "http://www.mutt.org/",
        "http://www.mutt.org/doc/manual/",
        "https://gitlab.com/muttmua/mutt",
        "https://gitlab.com/muttmua/mutt/-/blob/master/COPYRIGHT",
        "https://gitlab.com/muttmua/mutt/-/blob/master/UPDATING",
        "https://formulae.brew.sh/formula/mutt",
        "https://sources.debian.org/src/mutt/",
        "https://packages.fedoraproject.org/pkgs/mutt/mutt/",
        "https://archlinux.org/packages/extra/x86_64/mutt/",
        "https://www.freshports.org/mail/mutt/",
        "https://github.com/openbsd/ports/tree/master/mail/mutt",
        "https://github.com/termux/termux-packages/tree/master/packages/mutt",
        "https://cygwin.com/packages/summary/mutt.html",
        "https://packages.msys2.org/packages/mutt",
        "https://github.com/forwardemail/forwardemail.net/blob/master/helpers/ensure-default-mailboxes.js"
      ],
      "updated": "2026-10-01T12:54:22-05:00"
    },
    {
      "name": "mutt-wizard",
      "slug": "mutt-wizard",
      "type": "tool",
      "interface": "cli",
      "featured": false,
      "url": "https://terminalemail.com/tools/mutt-wizard/",
      "summary": "Shell script that sets up NeoMutt, isync and msmtp for an email account, with passwords stored in pass.",
      "description": "mutt-wizard provides the mw command, which writes NeoMutt, mbsync (isync) and msmtp configuration for an account and stores its password with pass, encrypted to your GPG key. It looks up IMAP and SMTP settings for known providers and accepts custom servers and ports for others, and can use mpop for POP3 instead of IMAP. It also installs a mailsync script that syncs mail, indexes it with notmuch and can run on a timer. It suits NeoMutt users who want a working offline setup without writing the configuration by hand.",
      "website": "https://muttwizard.com/",
      "repo": "https://github.com/LukeSmithxyz/mutt-wizard",
      "docs": "https://github.com/LukeSmithxyz/mutt-wizard/blob/master/README.md",
      "license": "GPL-3.0-only",
      "open_source": true,
      "language": "Shell",
      "maintained": true,
      "latest_version": "v3.3.1",
      "lineage": null,
      "backend": null,
      "platforms": {
        "linux": {
          "support": "native",
          "install": [
            {
              "via": "apt",
              "cmd": "sudo apt install mutt-wizard"
            },
            {
              "via": "AUR",
              "cmd": "yay -S mutt-wizard-git"
            },
            {
              "via": "source",
              "cmd": "git clone https://github.com/LukeSmithxyz/mutt-wizard && cd mutt-wizard && sudo make install"
            }
          ]
        },
        "macos": {
          "support": "source",
          "note": "No Homebrew formula; install NeoMutt, isync, msmtp and pass with Homebrew, then install mutt-wizard from source. mailsync has macOS-specific notification code.",
          "install": [
            {
              "via": "source",
              "cmd": "git clone https://github.com/LukeSmithxyz/mutt-wizard && cd mutt-wizard && sudo make install"
            }
          ]
        },
        "windows": {
          "support": "wsl",
          "note": "No native build; use the Debian package inside WSL.",
          "install": [
            {
              "via": "WSL",
              "cmd": "sudo apt install mutt-wizard"
            }
          ]
        },
        "bsd": {
          "support": "native",
          "install": [
            {
              "via": "OpenBSD",
              "cmd": "pkg_add mutt-wizard"
            }
          ]
        },
        "android": {
          "support": "none",
          "note": "No Termux package.",
          "install": []
        }
      },
      "protocols": {
        "imap": "external",
        "pop3": "external",
        "smtp": "external",
        "jmap": false,
        "maildir": true,
        "mbox": false,
        "notmuch": "external"
      },
      "features": {
        "pgp": true,
        "smime": false,
        "oauth2": false,
        "threads": true,
        "search": "notmuch, set up by mailsync",
        "html": "via lynx in NeoMutt",
        "mouse": false,
        "multiple_accounts": true,
        "offline": "with isync, or mpop for POP3",
        "calendar": false,
        "contacts": "via abook",
        "vim_keys": true,
        "config": "generated NeoMutt, isync and msmtp files"
      },
      "pros": [
        "Sets up NeoMutt, mbsync and msmtp for an account with one command.",
        "Passwords are kept in pass, encrypted with your GPG key, not in plain text.",
        "Adds vim-style keys, account switching and mailbox shortcuts to NeoMutt."
      ],
      "cons": [
        "Requires pass and a GPG key before an account can be added.",
        "Defaults assume English mailbox names; other names may need manual edits.",
        "The latest tagged release is old; most fixes are only on the master branch."
      ],
      "forward_email": {
        "config": "# IMAP (mbsync) + SMTP (msmtp); the password is prompted for and stored in pass\nmw -a you@example.com -n \"Your Name\" \\\n   -i imap.forwardemail.net -I 993 \\\n   -s smtp.forwardemail.net -S 465\n\n# Or POP3 with mpop instead of IMAP:\n# mw -a you@example.com -n \"Your Name\" -p -i pop3.forwardemail.net -I 995 -s smtp.forwardemail.net -S 465\n\n# Then: mailsync    (download mail)\n#       neomutt     (read and send)\n",
        "file": "Generated: ~/.config/mutt/, ~/.mbsyncrc and ~/.config/msmtp/config"
      },
      "sources": [
        "https://muttwizard.com/",
        "https://github.com/LukeSmithxyz/mutt-wizard",
        "https://github.com/LukeSmithxyz/mutt-wizard/blob/master/README.md",
        "https://github.com/LukeSmithxyz/mutt-wizard/blob/master/LICENSE",
        "https://github.com/LukeSmithxyz/mutt-wizard/blob/master/bin/mw",
        "https://github.com/LukeSmithxyz/mutt-wizard/blob/master/bin/mailsync",
        "https://github.com/LukeSmithxyz/mutt-wizard/blob/master/share/mbsync-temp",
        "https://github.com/LukeSmithxyz/mutt-wizard/blob/master/share/msmtp-temp",
        "https://github.com/LukeSmithxyz/mutt-wizard/blob/master/Makefile",
        "https://github.com/LukeSmithxyz/mutt-wizard/releases/tag/v3.3.1",
        "https://packages.debian.org/trixie/mutt-wizard",
        "https://aur.archlinux.org/packages/mutt-wizard-git",
        "https://aur.archlinux.org/packages/mutt-wizard",
        "https://github.com/openbsd/ports/blob/master/mail/mutt-wizard/Makefile",
        "https://github.com/termux/termux-packages/tree/master/packages",
        "https://formulae.brew.sh/api/formula.json"
      ],
      "updated": "2026-10-01T12:54:22-05:00"
    },
    {
      "name": "NeoMutt",
      "slug": "neomutt",
      "type": "client",
      "interface": "tui",
      "featured": false,
      "url": "https://terminalemail.com/clients/neomutt/",
      "summary": "Full-screen terminal mail reader forked from Mutt, with notmuch, NNTP, Lua scripting and a sidebar built in.",
      "description": "NeoMutt is a text-mode email client that started as a collection of Mutt patches and is now a separate project. It reads and sends mail over IMAP, POP3 and SMTP, opens local Maildir, mbox and MH folders, and adds notmuch and NNTP (Usenet) support that Mutt does not have. It suits users who want the Mutt workflow and muttrc configuration with more features merged in and a faster release pace.",
      "website": "https://neomutt.org/",
      "repo": "https://github.com/neomutt/neomutt",
      "docs": "https://neomutt.org/guide/",
      "license": "GPL-2.0-or-later",
      "open_source": true,
      "language": "C",
      "maintained": true,
      "latest_version": "20260616",
      "lineage": "Fork of Mutt",
      "backend": null,
      "platforms": {
        "linux": {
          "support": "native",
          "install": [
            {
              "via": "apt",
              "cmd": "sudo apt install neomutt"
            },
            {
              "via": "dnf",
              "cmd": "sudo dnf install neomutt"
            },
            {
              "via": "pacman",
              "cmd": "sudo pacman -S neomutt"
            }
          ]
        },
        "macos": {
          "support": "native",
          "install": [
            {
              "via": "Homebrew",
              "cmd": "brew install neomutt"
            }
          ]
        },
        "windows": {
          "support": "wsl",
          "note": "No native Windows build; runs in WSL, and Cygwin and MSYS2 also package it.",
          "install": [
            {
              "via": "WSL",
              "cmd": "sudo apt install neomutt"
            },
            {
              "via": "MSYS2",
              "cmd": "pacman -S neomutt"
            }
          ]
        },
        "bsd": {
          "support": "native",
          "install": [
            {
              "via": "FreeBSD pkg",
              "cmd": "pkg install neomutt"
            },
            {
              "via": "OpenBSD",
              "cmd": "pkg_add neomutt"
            }
          ]
        },
        "android": {
          "support": "termux",
          "install": [
            {
              "via": "Termux",
              "cmd": "pkg install neomutt"
            }
          ]
        }
      },
      "protocols": {
        "imap": true,
        "pop3": true,
        "smtp": true,
        "jmap": false,
        "maildir": true,
        "mbox": true,
        "notmuch": true
      },
      "features": {
        "pgp": true,
        "smime": true,
        "oauth2": "via script",
        "threads": true,
        "search": "built-in patterns; notmuch for full-text",
        "html": "via mailcap and an external viewer such as w3m or lynx",
        "mouse": false,
        "multiple_accounts": true,
        "offline": "with isync or OfflineIMAP; IMAP header and body cache",
        "calendar": false,
        "contacts": "via query_command with abook or khard",
        "vim_keys": true,
        "config": "neomuttrc text file"
      },
      "pros": [
        "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"
      ],
      "cons": [
        "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"
      ],
      "forward_email": {
        "config": "# Forward Email: IMAP over SSL/TLS (993), SMTP over SSL/TLS (465)\nset real_name = \"Your Name\"\nset from = \"you@example.com\"\n\nset imap_user = \"you@example.com\"\nset imap_pass = \"`pass show email/forwardemail`\"\nset folder = \"imaps://imap.forwardemail.net:993\"\nset spool_file = \"+INBOX\"\nset record = \"+Sent Mail\"\nset postponed = \"+Drafts\"\nset trash = \"+Trash\"\n\nset smtp_url = \"smtps://smtp.forwardemail.net:465\"\nset smtp_user = \"you@example.com\"\nset smtp_pass = \"`pass show email/forwardemail`\"\nset ssl_force_tls = yes\n",
        "file": "~/.config/neomutt/neomuttrc"
      },
      "sources": [
        "https://neomutt.org/",
        "https://neomutt.org/guide/",
        "https://github.com/neomutt/neomutt",
        "https://github.com/neomutt/neomutt/blob/main/LICENSE.md",
        "https://formulae.brew.sh/formula/neomutt",
        "https://sources.debian.org/src/neomutt/",
        "https://packages.fedoraproject.org/pkgs/neomutt/neomutt/",
        "https://archlinux.org/packages/extra/x86_64/neomutt/",
        "https://www.freshports.org/mail/neomutt/",
        "https://github.com/openbsd/ports/tree/master/mail/neomutt",
        "https://github.com/termux/termux-packages/tree/master/packages/neomutt",
        "https://cygwin.com/packages/summary/neomutt.html",
        "https://packages.msys2.org/packages/neomutt",
        "https://github.com/forwardemail/forwardemail.net/blob/master/helpers/ensure-default-mailboxes.js"
      ],
      "updated": "2026-10-01T12:54:22-05:00"
    },
    {
      "name": "nmail",
      "slug": "nmail",
      "type": "client",
      "interface": "tui",
      "featured": false,
      "url": "https://terminalemail.com/clients/nmail/",
      "summary": "Terminal email client for Linux and macOS with an Alpine-like interface and built-in IMAP and SMTP.",
      "description": "nmail is an ncurses email client written in C++ that connects to one IMAP and SMTP account and keeps a local SQLite cache, optionally encrypted. It has setup wizards for Gmail, iCloud and Outlook (including OAuth 2.0), converts HTML mail to text, composes HTML mail from Markdown and can queue mail while offline. It suits users who want an Alpine-style client with no separate sync or send tools. Multiple accounts need separate nmail instances.",
      "website": "https://github.com/d99kris/nmail",
      "repo": "https://github.com/d99kris/nmail",
      "docs": "https://github.com/d99kris/nmail#readme",
      "license": "MIT",
      "open_source": true,
      "language": "C++",
      "maintained": true,
      "latest_version": "v5.16.4",
      "lineage": null,
      "backend": null,
      "platforms": {
        "linux": {
          "support": "native",
          "install": [
            {
              "via": "Guix",
              "cmd": "guix install nmail"
            },
            {
              "via": "Install script",
              "cmd": "curl -fsSL https://raw.githubusercontent.com/d99kris/nmail/master/utils/install.sh | bash"
            }
          ]
        },
        "macos": {
          "support": "native",
          "install": [
            {
              "via": "Homebrew",
              "cmd": "brew install nmail"
            },
            {
              "via": "MacPorts",
              "cmd": "sudo port install nmail"
            }
          ]
        },
        "windows": {
          "support": "none",
          "note": "Upstream supports Linux and macOS only.",
          "install": []
        },
        "bsd": {
          "support": "none",
          "note": "Not packaged or documented for the BSDs.",
          "install": []
        },
        "android": {
          "support": "none",
          "install": []
        }
      },
      "protocols": {
        "imap": true,
        "pop3": false,
        "smtp": true,
        "jmap": false,
        "maildir": false,
        "mbox": false,
        "notmuch": false
      },
      "features": {
        "pgp": false,
        "smime": false,
        "oauth2": true,
        "threads": false,
        "search": "local cache index and server search",
        "html": "converted to text, or opened in an external browser",
        "mouse": false,
        "multiple_accounts": false,
        "offline": "local SQLite cache; offline mode and send queue",
        "calendar": false,
        "contacts": "address book built from messages",
        "vim_keys": false,
        "config": "~/.config/nmail/main.conf key=value file"
      },
      "pros": [
        "Built-in IMAP and SMTP with setup wizards for Gmail, iCloud and Outlook",
        "Local cache, address book and outgoing queue can be encrypted",
        "Compose HTML mail using Markdown"
      ],
      "cons": [
        "One account per running instance",
        "No threaded view and no PGP or S/MIME",
        "Linux and macOS only; no Debian or Fedora package"
      ],
      "forward_email": {
        "config": "address=you@example.com\nname=Your Name\nuser=you@example.com\nimap_host=imap.forwardemail.net\nimap_port=993\nsmtp_host=smtp.forwardemail.net\nsmtp_port=465\n# Folder names must match the folders on the server\ninbox=INBOX\ndrafts=Drafts\nsent=Sent Mail\ntrash=Trash\nspam=Spam\n# Prompt for the alias' generated password at start instead of storing it\nsave_pass=0\n",
        "file": "~/.config/nmail/main.conf"
      },
      "sources": [
        "https://github.com/d99kris/nmail",
        "https://github.com/d99kris/nmail/blob/master/README.md",
        "https://github.com/d99kris/nmail/blob/master/LICENSE",
        "https://github.com/d99kris/nmail/blob/master/src/imap.cpp",
        "https://github.com/d99kris/nmail/blob/master/src/smtp.cpp",
        "https://github.com/d99kris/nmail/releases/tag/v5.16.4",
        "https://formulae.brew.sh/formula/nmail",
        "https://ports.macports.org/port/nmail/",
        "https://aur.archlinux.org/packages/nmail"
      ],
      "updated": "2026-10-01T12:54:22-05:00"
    },
    {
      "name": "nmh",
      "slug": "nmh",
      "type": "client",
      "interface": "cli",
      "featured": false,
      "url": "https://terminalemail.com/clients/nmh/",
      "summary": "The MH message handling system: separate shell commands to read, file, search and send mail stored one file per message.",
      "description": "nmh (new MH) is a set of small programs such as inc, scan, show, comp, repl and pick that you run from the shell instead of a single mail program. Each message is a plain file in an MH folder, so ordinary Unix tools and scripts work on mail directly. inc pulls mail from a local mbox or Maildir drop or from a POP3 server, and post sends through SMTP with optional TLS and SASL. It suits users who want to script mail handling and compose with their own editor.",
      "website": "https://www.nongnu.org/nmh/",
      "repo": "https://git.savannah.gnu.org/cgit/nmh.git",
      "docs": "https://git.savannah.gnu.org/cgit/nmh.git/tree/man",
      "license": "BSD-3-Clause",
      "open_source": true,
      "language": "C",
      "maintained": true,
      "latest_version": "1.8",
      "lineage": "Based on MH 6.8.3 from the RAND Corporation and the University of California",
      "backend": null,
      "platforms": {
        "linux": {
          "support": "native",
          "install": [
            {
              "via": "apt",
              "cmd": "sudo apt install nmh"
            },
            {
              "via": "dnf",
              "cmd": "sudo dnf install nmh"
            },
            {
              "via": "AUR",
              "cmd": "yay -S nmh"
            }
          ]
        },
        "macos": {
          "support": "native",
          "install": [
            {
              "via": "Homebrew",
              "cmd": "brew install nmh"
            }
          ]
        },
        "windows": {
          "support": "wsl",
          "note": "No native Windows build; run it in WSL.",
          "install": [
            {
              "via": "WSL",
              "cmd": "sudo apt install nmh"
            }
          ]
        },
        "bsd": {
          "support": "native",
          "install": [
            {
              "via": "FreeBSD pkg",
              "cmd": "pkg install nmh"
            },
            {
              "via": "OpenBSD",
              "cmd": "pkg_add nmh"
            }
          ]
        },
        "android": {
          "support": "termux",
          "install": [
            {
              "via": "Termux",
              "cmd": "pkg install nmh"
            }
          ]
        }
      },
      "protocols": {
        "imap": "external",
        "pop3": true,
        "smtp": true,
        "jmap": false,
        "maildir": true,
        "mbox": true,
        "notmuch": false
      },
      "features": {
        "pgp": false,
        "smime": false,
        "oauth2": false,
        "threads": false,
        "search": "pick command matches header fields and message text",
        "html": "via mhshow with an external converter such as w3m",
        "mouse": false,
        "multiple_accounts": "via per-command switches or separate profiles",
        "offline": "full; messages are stored as local files",
        "calendar": "replies to invitations with mhical",
        "contacts": "aliases via MailAliases and the ali command",
        "vim_keys": false,
        "config": "~/.mh_profile and mts.conf text files"
      },
      "pros": [
        "Every action is a shell command, so mail handling is easy to script.",
        "One file per message lets grep, find and other Unix tools work on mail.",
        "Built-in POP3 and SMTP with TLS and SASL; reads mbox and Maildir drops."
      ],
      "cons": [
        "No IMAP; IMAP mail must be synced to a Maildir first and then incorporated.",
        "No built-in OpenPGP or S/MIME, and no thread view.",
        "SMTP authentication needs nmh built with Cyrus SASL and its PLAIN or LOGIN plugin."
      ],
      "forward_email": {
        "config": "# ~/.mh_profile\nPath: Mail\nLocal-Mailbox: Your Name <you@example.com>\nsend: -server smtp.forwardemail.net -port 465 -initialtls -sasl -saslmech PLAIN -user you@example.com\ninc: -host pop3.forwardemail.net -port 995 -initialtls -user you@example.com\n\n# Optional per-user mts.conf: export MHMTSUSERCONF=~/.mts.conf\n# mts: smtp\n# servers: smtp.forwardemail.net\n\n# Passwords: with no \"credentials:\" profile entry nmh reads ~/.netrc (chmod 600):\n# machine smtp.forwardemail.net login you@example.com password YOUR-GENERATED-PASSWORD\n# machine pop3.forwardemail.net login you@example.com password YOUR-GENERATED-PASSWORD\n\n# Usage: inc (fetch over POP3), scan, show, comp (write), send\n# For IMAP, sync with mbsync to ~/Maildir/INBOX and run: inc -file ~/Maildir/INBOX\n",
        "file": "~/.mh_profile"
      },
      "sources": [
        "https://www.nongnu.org/nmh/",
        "https://savannah.nongnu.org/projects/nmh/",
        "https://git.savannah.gnu.org/cgit/nmh.git",
        "https://git.savannah.gnu.org/cgit/nmh.git/tree/COPYRIGHT",
        "https://git.savannah.gnu.org/cgit/nmh.git/tree/man/inc.man",
        "https://git.savannah.gnu.org/cgit/nmh.git/tree/man/send.man",
        "https://git.savannah.gnu.org/cgit/nmh.git/tree/man/mh-profile.man",
        "https://git.savannah.gnu.org/cgit/nmh.git/tree/man/mh-tailor.man",
        "https://git.savannah.gnu.org/cgit/nmh.git/tree/man/mhical.man",
        "https://git.savannah.gnu.org/cgit/nmh.git/tree/sbr/credentials.c",
        "https://packages.debian.org/trixie/nmh",
        "https://mdapi.fedoraproject.org/rawhide/pkg/nmh",
        "https://aur.archlinux.org/packages/nmh",
        "https://formulae.brew.sh/formula/nmh",
        "https://github.com/Homebrew/homebrew-core/blob/main/Formula/n/nmh.rb",
        "https://github.com/freebsd/freebsd-ports/blob/main/mail/nmh/Makefile",
        "https://github.com/openbsd/ports/blob/master/mail/nmh/Makefile",
        "https://github.com/termux/termux-packages/blob/master/packages/nmh/build.sh"
      ],
      "updated": "2026-10-01T12:54:22-05:00"
    },
    {
      "name": "notmuch",
      "slug": "notmuch",
      "type": "tool",
      "interface": "cli",
      "featured": false,
      "url": "https://terminalemail.com/tools/notmuch/",
      "summary": "Command-line mail indexer that adds fast full-text search, threading and tags to a local Maildir.",
      "description": "notmuch indexes messages in a local Maildir with Xapian and lets you search, thread and tag them from the command line. It does not fetch or send mail; a sync tool such as mbsync and an SMTP client such as msmtp handle that. Several mail clients use it as their back end, including its own Emacs interface, alot, aerc and NeoMutt. It suits users who want tags and search instead of folders.",
      "website": "https://notmuchmail.org/",
      "repo": "https://git.notmuchmail.org/git/notmuch",
      "docs": "https://notmuchmail.org/doc/latest/",
      "license": "GPL-3.0-or-later",
      "open_source": true,
      "language": "C, C++",
      "maintained": true,
      "latest_version": "0.40",
      "lineage": null,
      "backend": null,
      "platforms": {
        "linux": {
          "support": "native",
          "install": [
            {
              "via": "apt",
              "cmd": "sudo apt install notmuch"
            },
            {
              "via": "dnf",
              "cmd": "sudo dnf install notmuch"
            },
            {
              "via": "pacman",
              "cmd": "sudo pacman -S notmuch"
            }
          ]
        },
        "macos": {
          "support": "native",
          "install": [
            {
              "via": "Homebrew",
              "cmd": "brew install notmuch"
            }
          ]
        },
        "windows": {
          "support": "wsl",
          "note": "No native Windows build or MSYS2 package; run it in WSL.",
          "install": [
            {
              "via": "WSL",
              "cmd": "sudo apt install notmuch"
            }
          ]
        },
        "bsd": {
          "support": "native",
          "install": [
            {
              "via": "FreeBSD pkg",
              "cmd": "pkg install notmuch"
            },
            {
              "via": "OpenBSD",
              "cmd": "pkg_add notmuch"
            }
          ]
        },
        "android": {
          "support": "termux",
          "install": [
            {
              "via": "Termux",
              "cmd": "pkg install notmuch"
            }
          ]
        }
      },
      "protocols": {
        "imap": false,
        "pop3": false,
        "smtp": false,
        "jmap": false,
        "maildir": true,
        "mbox": false,
        "notmuch": true
      },
      "features": {
        "pgp": true,
        "smime": true,
        "oauth2": false,
        "threads": true,
        "search": "Xapian full-text search with tags and date ranges",
        "html": false,
        "mouse": false,
        "multiple_accounts": "indexes every Maildir under one database path",
        "offline": "full; works only on local mail",
        "calendar": false,
        "contacts": "notmuch address lists addresses from indexed mail",
        "vim_keys": false,
        "config": "INI-style notmuch config file"
      },
      "pros": [
        "Fast full-text search and tagging over large local mail stores.",
        "Used as a back end by several clients, so one index serves more than one front end.",
        "Can index and search decrypted PGP/MIME and S/MIME messages."
      ],
      "cons": [
        "Does not fetch or send mail; needs mbsync and msmtp or similar tools.",
        "Custom tags stay in the local index; only standard flags such as unread and replied sync to Maildir, and from there to IMAP.",
        "No native Windows build."
      ],
      "forward_email": {
        "config": "# notmuch only indexes local mail. Sync Forward Email to ~/Mail first with mbsync (~/.mbsyncrc):\nIMAPAccount forwardemail\nHost imap.forwardemail.net\nPort 993\nUser you@example.com\nPassCmd \"pass show email/forwardemail\"\nTLSType IMAPS\n\nIMAPStore forwardemail-remote\nAccount forwardemail\n\nMaildirStore forwardemail-local\nSubFolders Verbatim\nPath ~/Mail/forwardemail/\nInbox ~/Mail/forwardemail/INBOX\n\nChannel forwardemail\nFar :forwardemail-remote:\nNear :forwardemail-local:\nPatterns *\nCreate Both\nSyncState *\n\n# ~/.notmuch-config\n[database]\npath=/home/you/Mail\n[user]\nname=Your Name\nprimary_email=you@example.com\n[new]\ntags=unread;inbox;\n\n# Then: mbsync forwardemail && notmuch new\n# Search: notmuch search tag:unread from:someone@example.org\n",
        "file": "~/.mbsyncrc and ~/.notmuch-config"
      },
      "sources": [
        "https://notmuchmail.org/",
        "https://notmuchmail.org/doc/latest/",
        "https://notmuchmail.org/releases/",
        "https://git.notmuchmail.org/git/notmuch",
        "https://git.notmuchmail.org/git/notmuch/blob/HEAD:/COPYING",
        "https://git.notmuchmail.org/git/notmuch/blob/HEAD:/NEWS",
        "https://git.notmuchmail.org/git/notmuch/blob/HEAD:/doc/man1/notmuch-config.rst",
        "https://packages.debian.org/trixie/notmuch",
        "https://mdapi.fedoraproject.org/rawhide/pkg/notmuch",
        "https://archlinux.org/packages/extra/x86_64/notmuch/",
        "https://formulae.brew.sh/formula/notmuch",
        "https://www.freshports.org/mail/notmuch/",
        "https://github.com/openbsd/ports/blob/master/mail/notmuch/Makefile",
        "https://github.com/termux/termux-packages/blob/master/packages/notmuch/build.sh",
        "https://packages.msys2.org/api/search?query=notmuch",
        "https://sourceforge.net/p/isync/isync/ci/master/tree/src/mbsync.1.in"
      ],
      "updated": "2026-10-01T12:54:22-05:00"
    },
    {
      "name": "Notmuch Emacs interface",
      "slug": "notmuch-emacs",
      "type": "client",
      "interface": "emacs",
      "featured": false,
      "url": "https://terminalemail.com/clients/notmuch-emacs/",
      "summary": "Emacs front end for notmuch that reads, searches, tags and composes mail from a local Maildir.",
      "description": "The Notmuch Emacs interface (notmuch.el) ships with notmuch and runs inside GNU Emacs. It replaces folders with saved searches and tags stored in the notmuch Xapian index, and shows whole threads in one buffer. Mail must be synced to a local Maildir by a tool such as mbsync, and outgoing mail goes through Emacs message mode with smtpmail or a sendmail-compatible program such as msmtp. It suits Emacs users who organize mail with tags and search instead of folders.",
      "website": "https://notmuchmail.org/notmuch-emacs/",
      "repo": "https://git.notmuchmail.org/git/notmuch",
      "docs": "https://notmuchmail.org/doc/latest/notmuch-emacs.html",
      "license": "GPL-3.0-or-later",
      "open_source": true,
      "language": "Emacs Lisp",
      "maintained": true,
      "latest_version": "0.40",
      "lineage": "Part of the notmuch project",
      "backend": null,
      "platforms": {
        "linux": {
          "support": "native",
          "install": [
            {
              "via": "apt",
              "cmd": "sudo apt install elpa-notmuch isync msmtp"
            },
            {
              "via": "dnf",
              "cmd": "sudo dnf install emacs-notmuch isync msmtp"
            },
            {
              "via": "pacman",
              "cmd": "sudo pacman -S notmuch emacs isync msmtp"
            }
          ]
        },
        "macos": {
          "support": "native",
          "install": [
            {
              "via": "Homebrew",
              "cmd": "brew install notmuch emacs isync msmtp"
            }
          ]
        },
        "windows": {
          "support": "wsl",
          "note": "notmuch has no native Windows build or MSYS2 package; run Emacs and notmuch in WSL.",
          "install": [
            {
              "via": "WSL",
              "cmd": "sudo apt install elpa-notmuch isync msmtp"
            }
          ]
        },
        "bsd": {
          "support": "native",
          "install": [
            {
              "via": "FreeBSD pkg",
              "cmd": "pkg install notmuch-emacs isync msmtp"
            },
            {
              "via": "OpenBSD",
              "cmd": "pkg_add notmuch-emacs isync msmtp"
            }
          ]
        },
        "android": {
          "support": "termux",
          "install": [
            {
              "via": "Termux",
              "cmd": "pkg install notmuch emacs isync msmtp"
            }
          ]
        }
      },
      "protocols": {
        "imap": "external",
        "pop3": "external",
        "smtp": true,
        "jmap": false,
        "maildir": true,
        "mbox": false,
        "notmuch": true
      },
      "features": {
        "pgp": true,
        "smime": true,
        "oauth2": "via script",
        "threads": true,
        "search": "notmuch Xapian full-text search with tags",
        "html": "built-in, rendered with the Emacs shr library",
        "mouse": true,
        "multiple_accounts": true,
        "offline": "full; reads a local Maildir synced by mbsync or OfflineIMAP",
        "calendar": "shows text/calendar parts; no invitation replies",
        "contacts": "address completion from the notmuch index",
        "vim_keys": false,
        "config": "Emacs Lisp in init.el plus the notmuch config file"
      },
      "pros": [
        "Tag-based organization with fast full-text search over all local mail.",
        "Shows a whole thread in a single buffer.",
        "Handles PGP/MIME and S/MIME signatures and decryption through notmuch."
      ],
      "cons": [
        "No built-in IMAP; needs mbsync or a similar sync tool.",
        "Custom tags stay in the local index; only standard flags such as unread and replied reach the IMAP server.",
        "Requires Emacs and some Emacs Lisp to configure."
      ],
      "forward_email": {
        "config": "# 1) ~/.mbsyncrc: sync the mailbox to ~/Mail/forwardemail (isync 1.5+ syntax)\nIMAPAccount forwardemail\nHost imap.forwardemail.net\nPort 993\nUser you@example.com\nPassCmd \"pass show email/forwardemail\"\nTLSType IMAPS\n\nIMAPStore forwardemail-remote\nAccount forwardemail\n\nMaildirStore forwardemail-local\nSubFolders Verbatim\nPath ~/Mail/forwardemail/\nInbox ~/Mail/forwardemail/INBOX\n\nChannel forwardemail\nFar :forwardemail-remote:\nNear :forwardemail-local:\nPatterns *\nCreate Both\nSyncState *\n\n# 2) Index: run \"notmuch setup\" (database path ~/Mail, address you@example.com),\n#    then: mbsync forwardemail && notmuch new\n\n# 3) ~/.config/msmtp/config (chmod 600)\naccount forwardemail\nhost smtp.forwardemail.net\nport 465\ntls on\ntls_starttls off\nauth on\nuser you@example.com\npasswordeval \"pass show email/forwardemail\"\nfrom you@example.com\naccount default : forwardemail\n\n# 4) ~/.emacs.d/init.el\n(require 'notmuch)\n(setq user-mail-address \"you@example.com\"\n      user-full-name \"Your Name\"\n      message-send-mail-function 'message-send-mail-with-sendmail\n      sendmail-program \"msmtp\"\n      message-sendmail-envelope-from 'header\n      mail-specify-envelope-from t\n      notmuch-fcc-dirs \"\\\"forwardemail/Sent Mail\\\" +sent -inbox -unread\")\n",
        "file": "~/.mbsyncrc, ~/.config/msmtp/config and ~/.emacs.d/init.el"
      },
      "sources": [
        "https://notmuchmail.org/",
        "https://notmuchmail.org/notmuch-emacs/",
        "https://notmuchmail.org/doc/latest/notmuch-emacs.html",
        "https://git.notmuchmail.org/git/notmuch",
        "https://git.notmuchmail.org/git/notmuch/blob/HEAD:/COPYING",
        "https://git.notmuchmail.org/git/notmuch/blob/HEAD:/NEWS",
        "https://git.notmuchmail.org/git/notmuch/blob/HEAD:/emacs/notmuch-maildir-fcc.el",
        "https://git.notmuchmail.org/git/notmuch/blob/HEAD:/emacs/notmuch-show.el",
        "https://notmuchmail.org/releases/",
        "https://packages.debian.org/trixie/elpa-notmuch",
        "https://mdapi.fedoraproject.org/rawhide/pkg/emacs-notmuch",
        "https://archlinux.org/packages/extra/x86_64/notmuch/",
        "https://formulae.brew.sh/formula/notmuch",
        "https://github.com/Homebrew/homebrew-core/blob/main/Formula/n/notmuch.rb",
        "https://www.freshports.org/mail/notmuch-emacs/",
        "https://github.com/openbsd/ports/blob/master/mail/notmuch/Makefile",
        "https://github.com/termux/termux-packages/blob/master/packages/notmuch/build.sh",
        "https://packages.msys2.org/api/search?query=notmuch",
        "https://sourceforge.net/p/isync/isync/ci/master/tree/src/mbsync.1.in",
        "https://git.marlam.de/gitweb/?p=msmtp.git;a=blob;f=doc/msmtp.texi",
        "https://github.com/forwardemail/forwardemail.net/blob/master/helpers/ensure-default-mailboxes.js"
      ],
      "updated": "2026-10-01T12:54:22-05:00"
    },
    {
      "name": "OfflineIMAP",
      "slug": "offlineimap",
      "type": "tool",
      "interface": "cli",
      "featured": false,
      "url": "https://terminalemail.com/tools/offlineimap/",
      "summary": "Python program that syncs IMAP mailboxes with local Maildir folders in both directions.",
      "description": "OfflineIMAP downloads IMAP folders into local Maildirs and keeps both sides in sync, so a Maildir client can read mail offline. The maintained code base is offlineimap3, the Python 3 port; the original Python 2 repository is no longer developed. Configuration is an INI-style file, and Python helper functions can supply passwords, folder name mapping and filters.",
      "website": "https://www.offlineimap.org/",
      "repo": "https://github.com/OfflineIMAP/offlineimap3",
      "docs": "https://www.offlineimap.org/documentation.html",
      "license": "GPL-2.0-or-later",
      "open_source": true,
      "language": "Python",
      "maintained": true,
      "latest_version": "8.0.3",
      "lineage": "Python 3 port of the original OfflineIMAP (Python 2, no longer maintained)",
      "backend": null,
      "platforms": {
        "linux": {
          "support": "native",
          "install": [
            {
              "via": "apt",
              "cmd": "sudo apt install offlineimap3"
            },
            {
              "via": "dnf",
              "cmd": "sudo dnf install offlineimap"
            },
            {
              "via": "pacman",
              "cmd": "sudo pacman -S offlineimap"
            },
            {
              "via": "pipx",
              "cmd": "pipx install offlineimap"
            }
          ]
        },
        "macos": {
          "support": "native",
          "install": [
            {
              "via": "Homebrew",
              "cmd": "brew install offlineimap"
            },
            {
              "via": "pipx",
              "cmd": "pipx install offlineimap"
            }
          ]
        },
        "windows": {
          "support": "wsl",
          "note": "No native Windows package; use WSL.",
          "install": [
            {
              "via": "WSL",
              "cmd": "sudo apt install offlineimap3"
            }
          ]
        },
        "bsd": {
          "support": "native",
          "install": [
            {
              "via": "FreeBSD pkg",
              "cmd": "pkg install mail/py-offlineimap"
            },
            {
              "via": "OpenBSD",
              "cmd": "pkg_add offlineimap"
            }
          ]
        },
        "android": {
          "support": "none",
          "install": []
        }
      },
      "protocols": {
        "imap": true,
        "pop3": false,
        "smtp": false,
        "jmap": false,
        "maildir": true,
        "mbox": false,
        "notmuch": false
      },
      "features": {
        "pgp": false,
        "smime": false,
        "oauth2": true,
        "threads": false,
        "search": false,
        "html": false,
        "mouse": false,
        "multiple_accounts": true,
        "offline": "keeps a full local Maildir copy",
        "calendar": false,
        "contacts": false,
        "vim_keys": false,
        "config": "~/.offlineimaprc or ~/.config/offlineimap/config (INI)"
      },
      "pros": [
        "Built-in XOAUTH2 support for Gmail and similar providers",
        "Python hooks (pythonfile) for passwords, folder name mapping and filtering",
        "Can sync accounts in parallel and run repeatedly with autorefresh"
      ],
      "cons": [
        "Slower than isync on large mailboxes",
        "Older guides and some packages still point to the unmaintained Python 2 version",
        "Only IMAP and Maildir; no POP3 and no sending"
      ],
      "forward_email": {
        "config": "[general]\naccounts = forwardemail\npythonfile = ~/.offlineimap.py\n\n[Account forwardemail]\nlocalrepository = forwardemail-local\nremoterepository = forwardemail-remote\n\n[Repository forwardemail-local]\ntype = Maildir\nlocalfolders = ~/Mail/forwardemail\n\n[Repository forwardemail-remote]\ntype = IMAP\nremotehost = imap.forwardemail.net\nremoteport = 993\nssl = yes\nsslcacertfile = OS-DEFAULT\nremoteuser = you@example.com\nremotepasseval = get_pass(\"forwardemail/you@example.com\")\n\n# ~/.offlineimap.py\n# import subprocess\n# def get_pass(name):\n#     return subprocess.check_output([\"pass\", \"show\", name]).decode().splitlines()[0]\n",
        "file": "~/.offlineimaprc"
      },
      "sources": [
        "https://www.offlineimap.org/",
        "https://github.com/OfflineIMAP/offlineimap3",
        "https://github.com/OfflineIMAP/offlineimap3/blob/master/README.md",
        "https://github.com/OfflineIMAP/offlineimap3/blob/master/offlineimap.conf",
        "https://github.com/OfflineIMAP/offlineimap3/blob/master/pyproject.toml",
        "https://github.com/OfflineIMAP/offlineimap",
        "https://pypi.org/project/offlineimap/",
        "https://packages.debian.org/search?keywords=offlineimap3&searchon=names&exact=1",
        "https://packages.ubuntu.com/offlineimap3",
        "https://mdapi.fedoraproject.org/rawhide/pkg/offlineimap",
        "https://archlinux.org/packages/extra/any/offlineimap/",
        "https://formulae.brew.sh/formula/offlineimap",
        "https://www.freshports.org/mail/py-offlineimap/",
        "https://openports.pl/path/mail/offlineimap"
      ],
      "updated": "2026-10-01T12:54:22-05:00"
    },
    {
      "name": "Pop",
      "slug": "pop",
      "type": "tool",
      "interface": "tui",
      "featured": false,
      "url": "https://terminalemail.com/tools/pop/",
      "summary": "Send-only email tool from Charm with a terminal form for composing and a command-line mode for scripts.",
      "description": "Pop composes and sends email from the terminal, either through a full-screen form or from flags and standard input. It sends through the Resend API or any SMTP server, renders the Markdown body to HTML unless plain text is requested, and can attach files. It cannot read or fetch mail, so it is used next to a mail client or in scripts and pipelines. It is configured entirely with environment variables or flags.",
      "website": "https://github.com/charmbracelet/pop",
      "repo": "https://github.com/charmbracelet/pop",
      "docs": "https://github.com/charmbracelet/pop/blob/main/README.md",
      "license": "MIT",
      "open_source": true,
      "language": "Go",
      "maintained": true,
      "latest_version": "0.5.0",
      "lineage": null,
      "backend": null,
      "platforms": {
        "linux": {
          "support": "native",
          "install": [
            {
              "via": "Homebrew",
              "cmd": "brew install pop"
            },
            {
              "via": "AUR",
              "cmd": "yay -S charm-pop-bin"
            },
            {
              "via": "Nix",
              "cmd": "nix-env -iA nixpkgs.pop"
            },
            {
              "via": "go",
              "cmd": "go install github.com/charmbracelet/pop@latest"
            }
          ]
        },
        "macos": {
          "support": "native",
          "install": [
            {
              "via": "Homebrew",
              "cmd": "brew install pop"
            },
            {
              "via": "go",
              "cmd": "go install github.com/charmbracelet/pop@latest"
            }
          ]
        },
        "windows": {
          "support": "native",
          "install": [
            {
              "via": "winget",
              "cmd": "winget install charmbracelet.pop"
            },
            {
              "via": "go",
              "cmd": "go install github.com/charmbracelet/pop@latest"
            }
          ]
        },
        "bsd": {
          "support": "native",
          "note": "No ports package; release binaries are published for FreeBSD, OpenBSD and NetBSD.",
          "install": [
            {
              "via": "go",
              "cmd": "go install github.com/charmbracelet/pop@latest"
            }
          ]
        },
        "android": {
          "support": "none",
          "note": "No Termux package.",
          "install": []
        }
      },
      "protocols": {
        "imap": false,
        "pop3": false,
        "smtp": true,
        "jmap": false,
        "maildir": false,
        "mbox": false,
        "notmuch": false
      },
      "features": {
        "pgp": false,
        "smime": false,
        "oauth2": false,
        "threads": false,
        "search": false,
        "html": "sends the Markdown body rendered as HTML",
        "mouse": false,
        "multiple_accounts": false,
        "offline": false,
        "calendar": false,
        "contacts": false,
        "vim_keys": false,
        "config": "environment variables or command-line flags"
      },
      "pros": [
        "Works both as an interactive form and as a scriptable command reading the body from standard input.",
        "Sends through any SMTP server with SSL/TLS or STARTTLS, or through the Resend API.",
        "Single Go binary with packages for Homebrew, winget, Nix and the AUR."
      ],
      "cons": [
        "Send-only: cannot read, fetch or search mail.",
        "One sending account at a time, set through environment variables.",
        "No OpenPGP or S/MIME signing."
      ],
      "forward_email": {
        "config": "# ~/.bashrc or ~/.zshrc\nexport POP_SMTP_HOST=smtp.forwardemail.net\nexport POP_SMTP_PORT=465\nexport POP_SMTP_ENCRYPTION=ssl        # or port 587 with: starttls\nexport POP_SMTP_USERNAME=you@example.com\nexport POP_SMTP_PASSWORD=\"$(pass show email/forwardemail)\"\nexport POP_FROM=you@example.com\n\n# Interactive: pop\n# Scripted:    pop < message.md --to friend@example.org --subject \"Hello\"\n",
        "file": "~/.bashrc (or your shell profile)"
      },
      "sources": [
        "https://github.com/charmbracelet/pop",
        "https://github.com/charmbracelet/pop/blob/main/README.md",
        "https://github.com/charmbracelet/pop/blob/main/LICENSE",
        "https://github.com/charmbracelet/pop/blob/main/main.go",
        "https://github.com/charmbracelet/pop/blob/main/email.go",
        "https://github.com/charmbracelet/pop/blob/main/keymap.go",
        "https://github.com/charmbracelet/pop/releases/tag/v0.5.0",
        "https://github.com/charmbracelet/pop/releases/download/v0.5.0/checksums.txt",
        "https://formulae.brew.sh/formula/pop",
        "https://aur.archlinux.org/packages/charm-pop-bin",
        "https://github.com/NixOS/nixpkgs/blob/master/pkgs/by-name/po/pop/package.nix",
        "https://github.com/microsoft/winget-pkgs/tree/master/manifests/c/charmbracelet/pop",
        "https://github.com/termux/termux-packages/tree/master/packages"
      ],
      "updated": "2026-10-01T12:54:22-05:00"
    },
    {
      "name": "S-nail",
      "slug": "s-nail",
      "type": "client",
      "interface": "cli",
      "featured": false,
      "url": "https://terminalemail.com/clients/s-nail/",
      "summary": "Command-line mail program that implements POSIX mailx, with MIME, IMAP, POP3, SMTP, Maildir and S/MIME support.",
      "description": "S-nail is a fork of Heirloom mailx and works as a POSIX mailx(1) for reading and sending mail from a line-oriented prompt or from scripts. It speaks POP3, IMAP and SMTP itself, reads mbox and Maildir folders, and supports S/MIME signing and encryption. Upstream notes that its IMAP code is kept at an older level and should be used with care. It suits users who want a classic mail command for shell scripts and quick terminal use.",
      "website": "https://www.sdaoden.eu/code.html#s-mailx",
      "repo": "https://git.sdaoden.eu/browse/s-nail.git",
      "docs": "https://www.sdaoden.eu/code-nail.html",
      "license": "ISC AND BSD-2-Clause AND BSD-3-Clause AND BSD-4-Clause",
      "open_source": true,
      "language": "C",
      "maintained": true,
      "latest_version": "14.9.25",
      "lineage": "Fork of Heirloom mailx, which descends from BSD Mail",
      "backend": null,
      "platforms": {
        "linux": {
          "support": "native",
          "install": [
            {
              "via": "apt",
              "cmd": "sudo apt install s-nail"
            },
            {
              "via": "dnf",
              "cmd": "sudo dnf install s-nail"
            },
            {
              "via": "pacman",
              "cmd": "sudo pacman -S s-nail"
            }
          ]
        },
        "macos": {
          "support": "native",
          "install": [
            {
              "via": "Homebrew",
              "cmd": "brew install s-nail"
            }
          ]
        },
        "windows": {
          "support": "wsl",
          "note": "No native Windows build; run it in WSL.",
          "install": [
            {
              "via": "WSL",
              "cmd": "sudo apt install s-nail"
            }
          ]
        },
        "bsd": {
          "support": "native",
          "install": [
            {
              "via": "FreeBSD pkg",
              "cmd": "pkg install s-nail"
            },
            {
              "via": "OpenBSD",
              "cmd": "pkg_add s-nail"
            }
          ]
        },
        "android": {
          "support": "none",
          "note": "No Termux package.",
          "install": []
        }
      },
      "protocols": {
        "imap": true,
        "pop3": true,
        "smtp": true,
        "jmap": false,
        "maildir": true,
        "mbox": true,
        "notmuch": false
      },
      "features": {
        "pgp": false,
        "smime": true,
        "oauth2": "via script",
        "threads": true,
        "search": "built-in message specifications and the search command; IMAP SEARCH on IMAP folders",
        "html": "built-in tag-soup filter or external viewer via mailcap",
        "mouse": false,
        "multiple_accounts": true,
        "offline": "IMAP cache with disconnected mode",
        "calendar": false,
        "contacts": "aliases via the alias command",
        "vim_keys": false,
        "config": "~/.mailrc command file"
      },
      "pros": [
        "Drop-in POSIX mailx, so it works in existing shell scripts and cron jobs.",
        "Built-in SMTP, POP3 and IMAP with TLS; no separate sync or send tool needed.",
        "S/MIME signing and encryption are built in."
      ],
      "cons": [
        "Line-oriented prompt instead of a full-screen interface.",
        "No built-in OpenPGP; upstream documents a gpg pipe workaround only.",
        "IMAP support is kept at an older code level and upstream advises care."
      ],
      "forward_email": {
        "config": "# ~/.mailrc  (start with: s-nail -A forwardemail)\nset v15-compat\nset tls-verify=strict\n# Read credentials from an encrypted netrc file\nset netrc-lookup netrc-pipe='gpg -qd ~/.netrc.gpg'\n\naccount forwardemail {\n  set from='Your Name <you@example.com>'\n  set folder=imaps://you%40example.com@imap.forwardemail.net \\\n      inbox=imaps://you%40example.com@imap.forwardemail.net/INBOX \\\n      record=\"+Sent Mail\"\n  set mta=smtps://you%40example.com@smtp.forwardemail.net:465\n}\n\n# Decrypted contents of ~/.netrc.gpg:\n# machine imap.forwardemail.net login you@example.com password YOUR-GENERATED-PASSWORD\n# machine smtp.forwardemail.net login you@example.com password YOUR-GENERATED-PASSWORD\n# For POP3 instead of IMAP: set inbox=pop3s://you%40example.com@pop3.forwardemail.net\n",
        "file": "~/.mailrc"
      },
      "sources": [
        "https://www.sdaoden.eu/code.html",
        "https://www.sdaoden.eu/code-nail.html",
        "https://git.sdaoden.eu/browse/s-nail.git",
        "https://git.sdaoden.eu/browse/s-nail.git/tree/COPYING?h=v14.9.25",
        "https://git.sdaoden.eu/browse/s-nail.git/tree/README?h=v14.9.25",
        "https://git.sdaoden.eu/browse/s-nail.git/tree/nail.1?h=v14.9.25",
        "https://git.sdaoden.eu/browse/s-nail.git/tree/make.rc?h=v14.9.25",
        "https://packages.debian.org/trixie/s-nail",
        "https://mdapi.fedoraproject.org/rawhide/pkg/s-nail",
        "https://archlinux.org/packages/core/x86_64/s-nail/",
        "https://formulae.brew.sh/formula/s-nail",
        "https://github.com/freebsd/freebsd-ports/blob/main/mail/s-nail/Makefile",
        "https://github.com/openbsd/ports/blob/master/mail/s-nail/Makefile",
        "https://github.com/termux/termux-packages/tree/master/packages",
        "https://github.com/forwardemail/forwardemail.net/blob/master/helpers/ensure-default-mailboxes.js"
      ],
      "updated": "2026-10-01T12:54:22-05:00"
    },
    {
      "name": "Sup",
      "slug": "sup",
      "type": "client",
      "interface": "tui",
      "featured": false,
      "url": "https://terminalemail.com/clients/sup/",
      "summary": "Curses email client in Ruby built around threads, labels and fast full-text search over local mail.",
      "description": "Sup indexes Maildir and mbox sources with Xapian and shows mail as threads that can be labeled, archived and muted, in the style of Gmail. It suits people with large mail archives who search more than they file. It reads local mail only, so it is paired with a sync tool such as isync for IMAP and a sendmail-compatible program such as msmtp for sending. The maintainers focus on keeping the current feature set working rather than adding major features.",
      "website": "https://supmua.dev/",
      "repo": "https://github.com/sup-heliotrope/sup",
      "docs": "https://github.com/sup-heliotrope/sup/wiki",
      "license": "GPL-2.0-or-later",
      "open_source": true,
      "language": "Ruby",
      "maintained": true,
      "latest_version": "1.4",
      "lineage": null,
      "backend": null,
      "platforms": {
        "linux": {
          "support": "native",
          "install": [
            {
              "via": "apt",
              "cmd": "sudo apt install sup-mail"
            },
            {
              "via": "RubyGems",
              "cmd": "gem install sup"
            }
          ]
        },
        "macos": {
          "support": "native",
          "install": [
            {
              "via": "RubyGems",
              "cmd": "gem install sup"
            }
          ]
        },
        "windows": {
          "support": "wsl",
          "note": "Unix-only; use WSL.",
          "install": [
            {
              "via": "WSL",
              "cmd": "sudo apt install sup-mail"
            }
          ]
        },
        "bsd": {
          "support": "source",
          "note": "No ports package; install the Ruby gem.",
          "install": [
            {
              "via": "RubyGems",
              "cmd": "gem install sup"
            }
          ]
        },
        "android": {
          "support": "none",
          "install": []
        }
      },
      "protocols": {
        "imap": false,
        "pop3": false,
        "smtp": "external",
        "jmap": false,
        "maildir": true,
        "mbox": true,
        "notmuch": false
      },
      "features": {
        "pgp": true,
        "smime": false,
        "oauth2": false,
        "threads": true,
        "search": "Xapian full-text index with a query language",
        "html": "via the mime-decode hook and an external viewer such as w3m",
        "mouse": false,
        "multiple_accounts": true,
        "offline": "reads local Maildir or mbox; sync with isync or OfflineIMAP",
        "calendar": false,
        "contacts": "tracks recent contacts automatically",
        "vim_keys": true,
        "config": "~/.sup/config.yaml and ~/.sup/sources.yaml, plus Ruby hooks"
      },
      "pros": [
        "Fast full-text search over large archives",
        "Gmail-style labels, archiving and muting of threads",
        "Ruby hooks for custom behavior"
      ],
      "cons": [
        "No built-in IMAP or SMTP; needs isync (or similar) and msmtp",
        "Changes sync back to Maildir only with the optional sync-back setting",
        "Packaged by Debian and Ubuntu (and the AUR); elsewhere installed as a Ruby gem with native Xapian bindings"
      ],
      "forward_email": {
        "config": "# Sup reads local mail. Sync it from imap.forwardemail.net with isync (see the isync entry) into ~/Mail/forwardemail,\n# send with msmtp (see the msmtp entry), then add the source once:\n#   sup-add maildir:$HOME/Mail/forwardemail/INBOX\n---\n:accounts:\n  :default:\n    :name: Your Name\n    :email: you@example.com\n    :alternates: []\n    :sendmail: msmtp -a forwardemail --read-envelope-from -t\n    :gpgkey: \"\"\n",
        "file": "~/.sup/config.yaml"
      },
      "sources": [
        "https://supmua.dev/",
        "https://github.com/sup-heliotrope/sup",
        "https://github.com/sup-heliotrope/sup/blob/develop/README.md",
        "https://github.com/sup-heliotrope/sup/blob/develop/History.txt",
        "https://github.com/sup-heliotrope/sup/blob/develop/LICENSE",
        "https://github.com/sup-heliotrope/sup/blob/develop/lib/sup.rb",
        "https://github.com/sup-heliotrope/sup/blob/develop/bin/sup-add",
        "https://github.com/sup-heliotrope/sup/wiki",
        "https://rubygems.org/gems/sup",
        "https://packages.debian.org/search?keywords=sup-mail&searchon=names&exact=1",
        "https://packages.ubuntu.com/sup-mail",
        "https://marlam.de/msmtp/msmtp.html"
      ],
      "updated": "2026-10-01T12:54:22-05:00"
    },
    {
      "name": "Wanderlust",
      "slug": "wanderlust",
      "type": "client",
      "interface": "emacs",
      "featured": false,
      "url": "https://terminalemail.com/clients/wanderlust/",
      "summary": "Mail and news reader for Emacs, written in Emacs Lisp, with built-in IMAP, POP3, NNTP and SMTP support.",
      "description": "Wanderlust is an Emacs mail client that talks to IMAP, POP3 and NNTP servers directly and also reads local Maildir and MH folders. Folders are named with a compact prefix syntax (for example %inbox for IMAP), and it can cache messages for disconnected use. Development continues on GitHub as unreleased 2.15.9 snapshots, distributed through MELPA and distribution packages. It suits Emacs users who want a client that needs no separate sync or SMTP tool.",
      "website": "https://github.com/wanderlust/wanderlust",
      "repo": "https://github.com/wanderlust/wanderlust",
      "docs": "https://wanderlust.github.io/wl-docs/",
      "license": "GPL-2.0-or-later",
      "open_source": true,
      "language": "Emacs Lisp",
      "maintained": true,
      "latest_version": "2.15.9",
      "lineage": null,
      "backend": null,
      "platforms": {
        "linux": {
          "support": "native",
          "install": [
            {
              "via": "apt",
              "cmd": "sudo apt install wl"
            },
            {
              "via": "pacman",
              "cmd": "sudo pacman -S wanderlust"
            },
            {
              "via": "MELPA",
              "cmd": "M-x package-install RET wanderlust RET"
            }
          ]
        },
        "macos": {
          "support": "native",
          "install": [
            {
              "via": "MELPA",
              "cmd": "M-x package-install RET wanderlust RET"
            }
          ]
        },
        "windows": {
          "support": "wsl",
          "note": "Native Windows Emacs is not documented upstream; use WSL.",
          "install": [
            {
              "via": "WSL",
              "cmd": "sudo apt install wl"
            }
          ]
        },
        "bsd": {
          "support": "native",
          "install": [
            {
              "via": "FreeBSD pkg",
              "cmd": "pkg install wanderlust"
            }
          ]
        },
        "android": {
          "support": "termux",
          "install": [
            {
              "via": "Termux",
              "cmd": "pkg install emacs, then M-x package-install RET wanderlust RET"
            }
          ]
        }
      },
      "protocols": {
        "imap": true,
        "pop3": true,
        "smtp": true,
        "jmap": false,
        "maildir": true,
        "mbox": false,
        "notmuch": "external"
      },
      "features": {
        "pgp": true,
        "smime": false,
        "oauth2": "via oauth2.el",
        "threads": true,
        "search": "IMAP server-side search; local search via mu, notmuch, grep or namazu",
        "html": "via mime-w3m (emacs-w3m)",
        "mouse": true,
        "multiple_accounts": true,
        "offline": "message cache and disconnected operation",
        "calendar": false,
        "contacts": "built-in address book",
        "vim_keys": false,
        "config": "Emacs Lisp in ~/.wl, folder list in ~/.folders"
      },
      "pros": [
        "Built-in IMAP, POP3 and SMTP; no external sync or send tool needed",
        "Offline cache with disconnected operation",
        "Packaged in Debian, Ubuntu, Arch, FreeBSD and MELPA"
      ],
      "cons": [
        "No formal release in many years; only 2.15.9 snapshots",
        "Folder syntax and the APEL/FLIM/SEMI dependency stack take time to learn",
        "Debian and Ubuntu ship an older snapshot than MELPA and Arch"
      ],
      "forward_email": {
        "config": ";; ~/.wl\n(setq elmo-imap4-default-server \"imap.forwardemail.net\"\n      elmo-imap4-default-port 993\n      elmo-imap4-default-stream-type 'ssl\n      elmo-imap4-default-user \"you@example.com\"\n      elmo-imap4-default-authenticate-type 'clear\n      wl-default-folder \"%inbox\"\n      wl-fcc \"%\\\"Sent Mail\\\"\"\n      wl-from \"Your Name <you@example.com>\"\n      wl-local-domain \"example.com\"\n      wl-smtp-posting-server \"smtp.forwardemail.net\"\n      wl-smtp-posting-port 465\n      wl-smtp-connection-type 'ssl\n      wl-smtp-posting-user \"you@example.com\"\n      wl-smtp-authenticate-type \"plain\")\n;; Wanderlust prompts for the alias' generated password on first connect.\n",
        "file": "~/.wl"
      },
      "sources": [
        "https://github.com/wanderlust/wanderlust",
        "https://github.com/wanderlust/wanderlust/blob/master/README.md",
        "https://github.com/wanderlust/wanderlust/blob/master/COPYING",
        "https://github.com/wanderlust/wanderlust/blob/master/wanderlust-pkg.el",
        "https://github.com/wanderlust/wanderlust/blob/master/doc/wl.texi",
        "https://github.com/wanderlust/wanderlust/commits/master",
        "https://wanderlust.github.io/wl-docs/",
        "https://melpa.org/#/wanderlust",
        "https://packages.debian.org/search?keywords=wl&searchon=names&exact=1",
        "https://packages.ubuntu.com/wl",
        "https://archlinux.org/packages/extra/any/wanderlust/",
        "https://www.freshports.org/mail/wanderlust/"
      ],
      "updated": "2026-10-01T12:54:22-05:00"
    }
  ]
}