Matcha
Terminal email client written in Go with the Bubble Tea TUI library, with IMAP, JMAP and POP3 support.
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.
- Type
- Email client
- Interface
- Full-screen terminal interface
- Systems
- Runs on Linux, macOS and Windows, builds from source on BSD. Not available for Android.
- Language
- Go
- License
- MIT
- Latest version
v1.0.1- Maintained
- Yes
- Website
- matcha.email
- Source
- github.com/floatpane/matcha
- Documentation
- docs.matcha.email
Install
| System | Support | Install |
|---|---|---|
| Linux | Native | Snap sudo snap install matchaFlatpak flatpak install https://matcha.email/matcha.flatpakrefNix nix profile install github:floatpane/matcha |
| macOS | Native | Homebrew brew install --cask floatpane/matcha/matcha |
| Windows | Native | winget winget install --id=floatpane.matcha |
| BSD | Build from source | Go git clone https://github.com/floatpane/matcha && cd matcha && go build .No ports package; build with Go. |
| Android | Not supported | - |
Protocols and features
| Protocol | Matcha |
|---|---|
| IMAP | Yes |
| POP3 | Yes |
| SMTP | Yes |
| JMAP | Yes |
| Maildir | Yes |
| mbox | No |
| notmuch | No |
| Feature | Matcha |
|---|---|
| OpenPGP | Yes |
| S/MIME | Yes |
| OAuth2 sign-in | Yes |
| Threads | Yes |
| Search | built-in search and filter |
| HTML mail | built-in rendering, with inline images in supported terminals |
| Mouse | Yes |
| Multiple accounts | Yes |
| Offline use | 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-style keys | Yes |
| Configuration | ~/.config/matcha/config.json plus in-app settings |
Pros and cons
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
Use Matcha with Forward Email
A working setup for a Forward Email mailbox. Replace you@example.com with your alias and the password command with your own. The same settings work with any provider once the server names change.
{
"accounts": [
{
"id": "forwardemail",
"name": "Your Name",
"email": "you@example.com",
"service_provider": "custom",
"imap_server": "imap.forwardemail.net",
"imap_port": 993,
"smtp_server": "smtp.forwardemail.net",
"smtp_port": 465,
"pass_cmd": "pass show forwardemail/you@example.com"
}
]
}| Protocol | Server | Port | Security |
|---|---|---|---|
| IMAP | imap.forwardemail.net | 993 | SSL/TLS |
| POP3 | pop3.forwardemail.net | 995 | SSL/TLS |
| SMTP | smtp.forwardemail.net | 465 | SSL/TLS |
| SMTP | smtp.forwardemail.net | 587 | STARTTLS |
Username: your full alias address, such as you@example.com. Password: the one shown by Generate Password next to the alias in your Forward Email account. Folders: INBOX, Drafts, Sent Mail, Trash, Spam and Archive.
Prefer no config at all? Forward Email's terminal app signs in with your account and has mail, calendar and contacts in one program.
Compare Matcha
Questions
Does Matcha work on Windows?
Yes, it runs natively on Windows.
Does Matcha support IMAP?
Yes, Matcha connects to IMAP servers directly.
Is Matcha open source?
Yes, under the MIT.
How do I use Matcha with Forward Email?
Use the config in the Forward Email section on this page, saved as ~/.config/matcha/config.json, and replace the address and password with your own.
Sources
- matcha.email/
- github.com/floatpane/matcha
- github.com/floatpane/matcha/blob/master/LICENSE
- github.com/floatpane/matcha/releases/tag/v1.0.1
- github.com/floatpane/matcha/blob/master/docs/docs/installation.md
- github.com/floatpane/matcha/blob/master/docs/docs/Configuration.md
- github.com/floatpane/matcha/blob/master/docs/docs/Features/PassCmd.md
- github.com/floatpane/matcha/blob/master/docs/docs/Features/Keybinds.md
- github.com/floatpane/matcha/blob/master/docs/docs/Features/CALENDAR.md
- github.com/floatpane/matcha/blob/master/backend/README.md
- github.com/floatpane/matcha/blob/master/config/config.go
- github.com/floatpane/matcha/blob/master/fetcher/fetcher.go
- github.com/floatpane/matcha/blob/master/sender/sender.go
- github.com/floatpane/homebrew-matcha
- github.com/microsoft/winget-pkgs/tree/master/manifests/f/floatpane/matcha
- snapcraft.io/matcha
- docs.matcha.email/