Skip to content
Email Tools

listicle · Listicles

Best email clients for developers 2026: TUI, scriptable, and honest

Seven email clients tested for a developer workflow in 2026: aerc, NeoMutt, Himalaya, Thunderbird, Mailspring, Apple Mail, and Spark. TUI, scriptability, IMAP/JMAP, plain text first.

Alexis Dollé By Alexis Dollé · ·
Best email clients for developers 2026: TUI, scriptable, and honest

The 2025-2026 cycle quietly turned into a strong year for terminal email. aerc shipped FOSDEM 2025 momentum and a Go 1.23 baseline; Himalaya hit v1.2.0 in February 2026; NeoMutt continues its monthly cadence with a 2026-05-04 release; and Thunderbird’s Monthly Release 145 added native Exchange Web Services support, closing the last gap for developers stuck in Microsoft 365 shops. The result: in 2026 a developer can have a real keyboard-driven, plain-text-first, scriptable email client on Linux, Mac, or Windows without paying a cent. Here are the seven we’d actually run, with the trade-offs spelled out.

How We Picked

We tested every client against a developer-shaped workflow: an IMAP account with a few thousand archived threads, a JMAP account on Fastmail, a Maildir for personal mail, and a Microsoft 365 mailbox for client work. Hard criteria: vim or vim-style keybindings, viewable raw source (headers, MIME parts), code-block / patch rendering, protocol-level access (IMAP/JMAP/Maildir without webmail), and scriptability — either ex-command, plugin API, or shell-pipeable CLI.

We dropped any client whose architecture forces email through proprietary servers (Hey, Superhuman). We dropped polished consumer clients that refuse to expose message source or attachment MIME tree (most iOS-first apps).

The verdict criteria we cared about:

  • Keybindings. Vim/Emacs-style, or rebindable to it. No mouse fallback acceptable for triage.
  • Plain text first. HTML rendered on demand, not by default; toggle to source view in one keystroke.
  • Protocol native. IMAP, JMAP, Maildir, SMTP — not a vendor-only abstraction.
  • Scriptable. Read/send/search from a script or shell pipeline; no UI-driven-only workflows.
  • Git and patch friendly. Inline diff rendering, attachment pipe to git am, or both.
  • Honest licensing. Open-source preferred, commercial accepted if the license isn’t user-hostile.

1. aerc — TUI built for the discerning hacker

Best for: Developers who live in tmux and want git-aware email.

aerc is a terminal email client written in Go (92.5% of the codebase) under an MIT license. It has vim-style keybindings, an ex-command system, an embedded terminal for composing emails alongside other threads or git repos, inline diff and patch rendering, and supports IMAP, JMAP, Maildir, Notmuch, and Mbox backends. The project describes itself as “perfect for the discerning hacker” — and after testing, that framing holds up. (Source: aerc-mail.org, accessed 2026-05-27.)

The killer features for a developer workflow are concrete:

  • Embedded terminal compose. Open a new tab with a shell running and a git repo handy while you’re writing a reply. No alt-tab dance.
  • Patch handling. First-class support for working with git send-email and git am. Inline diff highlighting in patches without configuration.
  • HTML on demand. HTML rendering is opt-in via filters (w3m, or the built-in terminal browser). The default is plain text or formatted plain text — exactly the right default for code-heavy threads.
  • ex-commands. Anything you can do interactively, you can script — :filter, :pipe, :read integrate with shell tools.

The trade-off you have to accept up front: aerc is mailing-list-driven for contributions (the GitHub mirror is read-only), the configuration is TOML-heavy, and there is no GUI fallback. If you ever pair-program with someone on email triage, that someone needs to be a terminal user too.

Best for: Linux/macOS power users who do email next to git, want patch workflows to feel native, and accept the TUI commitment.

Skip if: You need a GUI for HTML-rich newsletter triage, or you share a setup with non-terminal teammates.


2. NeoMutt — the terminal classic, modernised

Best for: Mutt veterans who want maintained, modern patches without abandoning muscle memory.

NeoMutt is a fork of Mutt that bundles “lots of old Mutt patches” updated and documented — the Sidebar patch being the canonical example, which was later adopted by upstream Mutt. The project ships on a monthly release cadence; the most recent release is dated 2026-05-04. (Source: neomutt.org, accessed 2026-05-27.)

If you’re already a Mutt user, NeoMutt is the painless upgrade: your .muttrc mostly works, the binary drop-in is clean, and the additions (sidebar, notmuch integration, color enhancements) are exactly the things you’d patch in by hand anyway. If you’re new to terminal email in 2026, aerc has nicer defaults; NeoMutt is the right pick when you’re inheriting an existing configuration or working in a shop that standardised on Mutt years ago.

What NeoMutt does better than aerc, specifically: macro and key-binding flexibility, notmuch-as-a-first-class-backend, and a 25-year corpus of community recipes (search “muttrc github” — thousands of dotfiles are public). What aerc does better: defaults, HTML rendering, embedded compose, the ex-command grammar.

Best for: Mutt incumbents, notmuch users, people who like editing config until everything is exactly right.

Skip if: You’re starting fresh and don’t have an existing muttrc — aerc requires less ramp-up.


3. Himalaya — Rust CLI, JSON-pipeable

Best for: Developers who want email reachable from xargs, scripts, or another TUI.

Himalaya is a Rust command-line email client (99.2% Rust per the repository). It supports IMAP, JMAP, SMTP, Maildir, and m2dir backends, exposes a JSON output mode, and ships under the AGPL-3.0 license. The latest stable is v1.2.0, released February 19, 2026. (Source: github.com/soywod/himalaya, accessed 2026-05-27.)

Himalaya isn’t a TUI in the aerc/NeoMutt sense — it’s a command. You run himalaya envelope list, you pipe the JSON into jq, you wire it into a shell function or a Neovim plugin. The auth surface is uncommonly broad: anonymous, login, plain, OAuth bearer, XOAUTH2, SCRAM-SHA-256, plus HTTP basic and bearer for JMAP. The TOML configuration supports multiple accounts in one file, and discovery (PACC, Thunderbird autoconfiguration, RFC 6186 SRV) means initial setup is rarely manual.

The honest framing: Himalaya is almost always a complement, not a sole client. Most developers pair it with aerc or NeoMutt for reading, and use Himalaya for the scripted bits — bulk send, programmatic search, CI/CD notifications. As a “read the news of the day in 30 seconds” tool, the JSON pipeline beats opening a GUI.

Need a refresher on inbox triage before any of this matters? How to manage multiple email accounts covers the foundation.

Best for: Shell-heavy workflows, scriptable automation, Neovim users who want email primitives in their editor.

Skip if: You want to live in one app for reading, writing, and searching email.


4. Thunderbird — the open-source GUI fallback that finally caught up

Best for: Developers who need a GUI, want open-source, and have a Microsoft 365 mailbox in the mix.

Thunderbird is maintained by MZLA Technologies Corporation (a Mozilla subsidiary) under the MPL 2.0 license. It runs on Windows, macOS, and Linux, and ships on two channels: the 128 ESR (the current stable extended-support release) and the Monthly Release. Monthly Release 145 added native Exchange Web Services support, landing in late 2025. JMAP support has been in place since Thunderbird 115 (2023). (Source: Thunderbird blog, December 2025 community office hours.)

For a developer who has tried and bounced off TUI clients, Thunderbird is the right starting point in 2026. The extension API is real (search MozillaAddons for Thunderbird extensions — actively maintained ecosystem), the message source view is one keystroke away (Ctrl+U), and the protocol coverage is now genuinely complete: IMAP, POP3, JMAP, and EWS (Exchange) in the same binary.

Two specific developer wins worth calling out:

  • Filters are scriptable to a useful degree. Combined with the message-source view, you can build a triage system that approximates Gmail’s filter UI in pure local config.
  • Exchange support without Outlook. If your day job uses Microsoft 365, Thunderbird 145 Monthly is the first credible non-Outlook GUI option that handles Exchange natively (rather than fragile IMAP bridging).

The trade-off: Thunderbird is not a TUI. It’s a desktop GUI with developer-friendly bones, not a developer-first client. Startup is slower than aerc, the keybinding system is rebindable but the defaults are GUI-shaped, and the search index can lag on multi-account setups over 50 GB.

Best for: GUI requirement, Microsoft 365 environments, open-source preference, cross-platform teams.

Skip if: You want sub-100ms launch and a pure keyboard workflow — go aerc or NeoMutt instead.


5. Mailspring — Electron, native sync engine, MIT-licensed

Best for: Developers who want a polished GUI without the Thunderbird launch lag, and don’t mind Electron.

Mailspring is a desktop email client with a native C++ sync engine and an Electron UI. It runs on macOS, Windows, and Linux, supports Gmail, iCloud, Office 365, Fastmail, Outlook.com, Yahoo, and generic IMAP/SMTP, and is fully open-source under the MIT license. The Pro tier costs $8/month and adds read receipts, link tracking, send-later, templates, and contact enrichment. (Source: getmailspring.com, accessed 2026-05-27.)

Mailspring sits in an odd niche: too polished for the terminal crowd, too plain for users who want Spark’s collaboration layer. For a developer who wants a free GUI that’s actively maintained and doesn’t lock features behind a paywall in the free tier, it’s a reasonable pick. The native C++ sync engine is faster than the JavaScript backends most Electron clients ship.

The honest limits: there is no public plugin API documented the way Thunderbird’s exists. The codebase is hackable (MIT, fork it), but you’re not the target audience for the existing extensibility story. If “scriptable” matters more than “polished GUI”, skip Mailspring.

Best for: Cross-platform developers who want a free GUI with a unified inbox and don’t need scripting.

Skip if: You want a documented plugin API, or you’d rather pay for Mimestream’s Gmail-native polish on Mac.


6. Apple Mail — with AppleScript and Shortcuts

Best for: Mac-only developers who’d rather automate the stock client than install another app.

Apple Mail on macOS Sequoia 15.4 (March 2025) gained Apple Intelligence inbox categories and on-device summaries. For developer use, the more relevant feature is the long-standing AppleScript and Shortcuts surface: Mail.app exposes a scripting dictionary, which means you can build inbox automations, attachment exporters, and filing rules in shell-callable AppleScript without third-party tools.

Apple Mail is not a developer-first client. It’s a stock client with an automation surface most people forget exists. The AppleScript dictionary covers messages, accounts, mailboxes, signatures, and rules. Shortcuts on macOS (since Monterey) layers on top of that, giving you a click-and-build interface to the same actions.

What this is useful for: routine inbox automations that don’t justify a separate tool. Auto-saving attachments from a known sender to a project folder, archiving threads after a calendar event ends, dispatching messages from a specific domain into a tagged folder. None of this is groundbreaking, but it ships with the OS and costs nothing.

What it’s not useful for: any cross-platform team, anything that needs to run on a server, anything that requires patch-friendly composition. Apple Mail’s source view exists (Cmd+Option+U) but is awkward, and the HTML rendering is opinionated.

Best for: Mac-only developers, lightweight automation, “I don’t want another app” preference.

Skip if: You move between platforms, or you need real keyboard-driven triage at speed.


7. Spark — team triage layer, not a developer client

Best for: Small teams where one or two members happen to be developers and the rest aren’t.

Spark is a polished cross-platform email client (Mac, Windows, iOS, Android) with shared inboxes, thread comments, and AI-assisted reply drafts. It is not a developer-focused client. We include it here because for team-shaped workflows — where the developer is one role among customer support, sales, and ops — Spark’s collaboration layer is the right compromise.

The trade-off Spark forces on you is server-side processing: your email passes through Readdle’s infrastructure to power the smart features. For most developers this is unacceptable as a primary client; for teams where the alternative is a fragmented Slack-plus-Gmail stew, it’s a defensible choice.

We’re including Spark in the list strictly so that a developer evaluating “what should my team standardise on” has it covered. As a personal developer client, the absence of plain-text source view, the lack of scripting hooks, and the server routing all argue against it.

Tired of newsletter noise in any of these clients? Leave Me Alone handles the bulk unsubscribe layer cleanly across providers — see our best unsubscribe tools roundup for the comparison.

Best for: Small, mixed-discipline teams; founders running ops alongside engineering.

Skip if: You want a developer-first client, or you can’t put email through third-party servers.


Side-by-Side Comparison

The seven clients trade off on three axes: GUI vs TUI, scriptability depth, and protocol breadth. aerc and Himalaya are the most scriptable; Thunderbird and Mailspring are the most full-featured GUIs; NeoMutt is the most configurable; Apple Mail and Spark sit at the “automation as afterthought” end. License-wise, six of the seven are open-source — Spark is the lone exception.

ClientTypeLicenseProtocolsBest signal
aercTUI (Go)MITIMAP, JMAP, Maildir, Notmuch, MboxEmbedded compose, patch rendering
NeoMuttTUI (C)GPL-2.0+IMAP, POP, SMTP, Maildir, NotmuchMutt-compatible, deep config
HimalayaCLI (Rust)AGPL-3.0IMAP, JMAP, SMTP, MaildirJSON-pipeable, scriptable
ThunderbirdGUI (XUL/Rust)MPL 2.0IMAP, POP, JMAP, EWSGUI + extension API + EWS
MailspringGUI (Electron + C++)MITIMAP, SMTP (Gmail/O365/Fastmail/…)Fast sync, polished free tier
Apple MailGUI (Cocoa)proprietary (free with macOS)IMAP, POP, Exchange, iCloudAppleScript + Shortcuts
SparkGUI (proprietary)proprietaryIMAP, OAuth (Gmail, O365)Team triage, shared inbox

If you’d rather not commit to one client, Mailbird is the polished cross-platform option for users who want a GUI without the developer-first complexity — it’s built for Windows knowledge workers, not for developers. Worth knowing it exists; not worth recommending as a primary dev client.


Why Not Hey, Superhuman, or Mailbird

Hey by Basecamp routes everything through its own infrastructure with no IMAP escape hatch. Superhuman is a $30/month Gmail front-end with no scripting, no source view, no IDE integration. Mailbird is a Windows-first GUI built for knowledge workers, not developers — no plain-text source toggle, no plugin API, no terminal mode. All three are reasonable choices for non-developers; none of them meets a developer’s baseline.

Hey by Basecamp. Hey deliberately closes off IMAP and SMTP — the architecture is “your email lives in Hey, full stop.” For Basecamp’s audience that’s a feature. For a developer who needs to script bulk-export, integrate with a git workflow, or even just switch clients without re-importing everything, it’s a deal-breaker. Hey did not change this in 2026.

Superhuman. $30/month for a fast Gmail wrapper is a perfectly fine choice if your only metric is speed-to-zero on a Gmail account. The product has no scripting layer, no plugin system, no source view, and no developer-relevant integration. Calling it a “developer email client” requires creative definitions of “developer.”

Mailbird. Mailbird is a strong Windows email client for knowledge workers — unified inbox, app panel docking Slack and WhatsApp, polished keyboard shortcuts. It is explicitly not a developer client: there’s no plain-text source view by default, no plugin API for custom logic, and no terminal/TUI mode. We recommend Mailbird in our Windows roundup and Mac roundup for general use; it does not belong on a developer-focused list.


When None of These Fit

If your workflow is primarily server-side automation (CI/CD email, alert routing, transactional send), skip clients entirely and use a library: Python’s imaplib + email, Rust’s lettre, Node’s nodemailer, or Go’s net/mail. If you’re on iOS as a primary device, none of the developer-friendly options work — fall back to Apple Mail and offload scripting to your Mac or a server.

Server-side use cases. Reading inbound webhook acknowledgements in CI, alert deduplication, transactional send — none of these need a client. Use a library, write a small daemon, log to your existing observability stack.

iOS-primary developers. TUI clients don’t exist on iOS. The realistic options are Apple Mail (with Shortcuts running on the device), Spark (server-side, accept the trade-off), or web Gmail. The developer-first tooling isn’t there.

You want both a polished GUI and TUI in one app. No such thing exists in 2026. The closest is running Thunderbird + aerc simultaneously against the same IMAP account — they don’t conflict, they just read the same server-side state.

Need to handle three or four accounts at once without losing context? Our guide to managing multiple email accounts walks through the unified-inbox patterns.


Related reading:


Alexis Dollé, founder of Email Tools
Alexis Dollé
Founder & Editor

Alexis Dollé, email expert for 10+ years and a long-time terminal user. Founder of Email Tools. I test every client on a real developer workflow — IMAP + JMAP + Maildir, git send-email, and a Microsoft 365 mailbox for client work — then write about them the way I’d explain them to a colleague. No marketing fluff, no sponsored rankings, every claim sourced.

LinkedIn

Frequently asked questions

What is the best email client for developers in 2026?: aerc

aerc, if you live in a terminal. Vim-style keybindings, an embedded terminal for composing alongside git, first-class patch and diff rendering, and JMAP support. For a GUI fallback that still respects developer instincts, Thunderbird with its extension API is the safest second pick.

Is mutt still relevant, or should I use aerc?: NeoMutt is current

NeoMutt is still actively maintained — the 2026-05-04 release is current — and remains the right choice if your muscle memory is already in mutt. aerc is the better pick if you’re starting from scratch in 2026: better defaults for HTML rendering, embedded terminal compose, and a cleaner ex-command system.

Can I use Himalaya as my only email client?: usually as a complement

If your workflow tolerates a CLI-only interface, yes. Himalaya v1.2.0 (released February 19, 2026) is stable for daily IMAP, JMAP, SMTP, and Maildir use. It pairs well with notmuch or aerc as the reading layer. For most developers it’s a complement, not a replacement.

Does Thunderbird support JMAP yet?: yes, since 115

Yes — JMAP was added in Thunderbird 115 (2023) and remains supported in the 128 ESR and the Monthly Release channel. Thunderbird 145 Monthly added native Exchange Web Services support. For a free, open-source client that handles IMAP, JMAP, and now EWS, Thunderbird is the most complete GUI option.

Why not Hey, Superhuman, or Spark for developers?: missing the basics

Hey by Basecamp is opinionated and closed; it routes everything through Hey-owned infrastructure with no IMAP escape hatch. Superhuman is a Gmail front-end with no IDE or git integration. Spark is fine for team triage but offers no plain-text source view, no scriptable hooks, and routes mail through Readdle’s servers. Developer-relevant features are minimal in all three.

Is Mailspring scriptable?: no documented plugin API

Mailspring is open-source under the MIT license and uses a native C++ sync engine with an Electron UI. The codebase is hackable but there is no documented public plugin API the way Thunderbird exposes one. For “scriptable” you’re better served by aerc, Himalaya, or NeoMutt — each is built around configuration as code.

Sources
  1. aerc project page — features, protocol support, FOSDEM 2025 reference (accessed 2026-05-27)
  2. aerc GitHub mirror — 92.5% Go, MIT license, Go 1.23 requirement (accessed 2026-05-27)
  3. NeoMutt project page — 2026-05-04 release, Sidebar patch lineage (accessed 2026-05-27)
  4. Himalaya GitHub — v1.2.0 February 19 2026, AGPL-3.0, 99.2% Rust (accessed 2026-05-27)
  5. Thunderbird blog — Monthly Release 145 EWS support, JMAP since 115 (accessed 2026-05-27)
  6. Mailspring website — native C++ sync engine, MIT license, $8/month Pro tier (accessed 2026-05-27)