NeoMutt Overview
A mutt is a dog of mixed breed, often with parents from different, unknown, or multiple lineages, sometimes referred to as a mongrel. They are often considered healthier than purebreds due to higher genetic diversity, which reduces the likelihood of inheriting specific genetic conditions.
Now you understand why both Mutt and NeoMutt use a puppy in their logos.
Mutt vs NeoMutt
Mutt and NeoMutt are powerful, text-based command-line email clients (MUAs) for Unix-like systems, designed for speed and keyboard-driven efficiency.
Comparison
| Aspect | Mutt | NeoMutt |
|---|---|---|
| Origin | The original terminal email client | A popular fork of Mutt (2015) |
| Philosophy | Small, fast, and stable | Integrates many patches into a feature-rich experience |
| Features | Core email functionality | Sidebar, header caching, improved IMAP/Gmail, notmuch integration |
| Development | Conservative, stability-focused | Active development with modern enhancements |
Why NeoMutt?
I have chosen NeoMutt as my email client and am gradually migrating from Microsoft Outlook. NeoMutt offers:
- Sidebar for easy folder navigation
- Header caching for faster mailbox loading
- Better IMAP support for modern email providers
- Native notmuch integration for lightning-fast search
Supporting Tools
A complete terminal email workflow requires several complementary tools.
1. isync / mbsync — IMAP Synchronization
Purpose: Synchronizes mailboxes between your local computer and a remote IMAP server.
| Feature | Description |
|---|---|
| Bidirectional Sync | Propagates new messages, deletions, and flag changes both ways |
| Protocol Support | Syncs remote IMAP mailboxes with local Maildir storage |
| Efficiency | Uses unique message identifiers (UIDs) to track emails |
| Offline Access | Read and draft messages without internet; sync when reconnected |
Why the dual name?
- isync — The original project name
- mbsync — The current executable (major UI/config overhaul)
- Wrapper — On modern systems,
isyncis a wrapper that callsmbsync
Common use cases:
- Power users pairing with NeoMutt, Mutt, or mu4e
- Creating local, searchable email archives
- Migrating emails between IMAP servers
2. notmuch — Fast Email Indexing
Purpose: Indexes, searches, and tags large volumes of email messages using the Xapian search engine.
| Feature | Description |
|---|---|
| Search & Tag | Instant search across multi-year archives; tag-based organization |
| Workflow | Thin front-end for search; pairs with mbsync for actual email retrieval |
| Integration | Bindings for Python, Vim, and Emacs |
| Performance | Written in C; handles incremental indexing |
Note: Notmuch does not fetch or send email—it manages existing local Maildir structures.
3. khard & khal — Contacts and Calendar
Purpose: Terminal-based personal information management tools.
| Tool | Purpose | File Format |
|---|---|---|
| khard | Address book (create, read, modify vCards) | vCard (.vcf) |
| khal | Calendar (view, add, edit events) | vCalendar (.ics) |
Key Details:
- Synchronization: Neither handles network sync; use vdirsyncer for CardDAV/CalDAV
- Integration: Commonly paired with NeoMutt for contact lookup
- Compatibility: Both written in Python
Series Roadmap
┌─────────────────────────────────────────────────────────────────┐
│ NeoMutt Tutorial Series │
├─────────────────────────────────────────────────────────────────┤
│ │
│ [01] Overview ───────────────────────────────► You are here │
│ │ │
│ ▼ │
│ [03] Basic IMAP Setup │
│ • Install NeoMutt and dependencies │
│ • Configure IMAP/SMTP connection │
│ • Set up email accounts │
│ • Basic folder navigation │
│ │
│ ▼ │
│ [05] Keymaps & Daily Usage │
│ • Essential keybindings │
│ • Vim-style navigation │
│ • Compose, reply, forward emails │
│ • Thread management │
│ • Sidebar configuration │
│ │
│ ▼ │
│ [07] Search & Filtering │
│ • Pattern modifiers (~s, ~f, ~b, etc.) │
│ • Limit vs Search │
│ • Combining patterns (AND, OR, NOT) │
│ • Date-based searches │
│ • Message caching for performance │
│ │
│ ▼ │
│ [09] Attachments │
│ • Viewing attachments (HTML, PDF, images) │
│ • mailcap configuration │
│ • Adding attachments with fzf │
│ • Multi-file attachment workflow │
│ │
│ ▼ │
│ [11] Local Mirror with mbsync │
│ • Install and configure isync/mbsync │
│ • Set up bidirectional sync │
│ • Local Maildir structure │
│ • Archive workflow │
│ • Offline email access │
│ │
└─────────────────────────────────────────────────────────────────┘Series Progression
| Tutorial | Focus | Skill Level | Estimated Time |
|---|---|---|---|
| [03] Basic IMAP | Connection & accounts | Beginner | 30 min |
| [05] Keymaps & Usage | Navigation & composition | Beginner-Intermediate | 45 min |
| [07] Search & Filter | Finding emails efficiently | Intermediate | 30 min |
| [09] Attachments | MIME handling & files | Intermediate | 30 min |
| [11] Local Mirror | Offline access & archiving | Advanced | 60 min |
Related Tools
Throughout this series, we'll mention several complementary tools:
| Tool | Purpose | Tutorial |
|---|---|---|
| khard | Contact management | [05] |
| fzf | Fuzzy file selection | [09] |
| w3m | HTML email rendering | [09] |
| zathura | PDF viewer | [09] |
| mbsync/isync | IMAP synchronization | [11] |
| notmuch | Fast email indexing/search | (Advanced topic) |
Next Steps
Ready to begin? Start with Tutorial 03: Basic IMAP Setup to get your NeoMutt configuration up and running.