Skip to content

Reading mail

Keys below are the defaults; all are rebindable (see keys), and ? shows the live map for your config.

Move around the list

Key Does
J / K down / up
Ctrl+D / Ctrl+U half page down / up
gg / Shift+G top / bottom
Enter open the message
Esc back

Motions take vi-style counts: 4j moves down four.

The status column reads a message at a glance:

Mark Meaning
R you replied
F you forwarded
A it carries attachments
T its thread has more messages in this listing
unread (subject in bold)
flagged

Your own messages show → recipient in the FROM/TO column.

The sidebar

Key Does
Ctrl+N / Ctrl+P move the highlight
Ctrl+O open the selected entry
Shift+B show / hide the sidebar
gt / gT next / previous account scope
g1...g9 jump to account 1...9
gu the unified view

The sidebar lists the unified view, each account with its folders nested beneath it, four built-in searches (all, inbox, unread, flagged) and your [[saved_searches]], in that order. Account entries set the scope; saved searches run their query inside the current scope. On startup the all search is selected, so everything in scope is listed.

Folder entries each list one folder of one account: inbox is the account's root maildir, and every other folder is discovered from the store's maildir tree, nested IMAP folders included (lists/aerc, inbox/accounts). Opening a folder scopes the view to its account and shows only that folder's messages. A folder holding unread mail steps out of the muted rank and carries its unread count beside the name, refreshed with the rest of the sidebar every couple of seconds. Rename folders with folder aliases.

/ opens a search prompt taking full notmuch syntax, scoped to the accounts in view:

from:alba tag:unread
subject:invoice date:2026-01..2026-06
attachment:pdf not tag:archived

The full language (every prefix, date ranges, booleans and regular expressions) is in searching mail; add searches you run daily to the sidebar via saved_searches in your config, and act on a whole result at once with the bulk actions.

Threads

Key Does
Shift+T show the selected message's whole thread
za / zo / zc toggle / open / close the selected subtree
Esc back to the listing you came from

The list stays flat by default; Shift+T pivots it onto the selected message's whole thread as a reply tree, each row indented under what it answers and carrying its own date. The thread spans folders: replies you sent are pulled in from the sent folder, so the conversation reads complete rather than one-sided. Subtrees fold vi-style with za, zo and zc, and Esc restores the listing you came from. A T in the status column marks messages whose thread has more rows in the current listing.

Read a message

Enter opens the pager.

Key Does
J / K, wheel scroll
Enter / Backspace scroll
Shift+G jump to the end
T show / hide every header
H switch plain-text / HTML rendering
B open the HTML part in your browser
O pick a link to open (also left-click [n])

Link spans render underlined in the accent colour, each with a number; O opens a picker where you type the number (or move with J / K) and Enter hands the URL to the system opener, open on macOS and xdg-open elsewhere. The mouse works too: the wheel scrolls and a left click on a link opens it. Only http, https and mailto links ever reach the opener. HTML renders to text in the terminal; nothing remote is fetched.

For patch series, :save-patches <path> and :apply <repo> hand the thread to git am (see patches). PGP-signed mail shows its verdict beside the headers; encrypted mail decrypts through your gpg-agent (see security).

Attachments

A message with attachments shows a one-line drawer at the bottom of the pager, e.g. 2 attachments: report.pdf, photo.jpg. V expands it into a list:

Key Does
J / K select
S save to a prompted path, prefilled with the sent filename (~ expands)
V open a temporary copy with the system opener
Esc collapse

Calendar invites

An invitation renders as a summary in the pager. Answer with :accept, :tentative or :decline: each opens a compose to the organiser with the reply attached, so nothing sends until you confirm on review.

The reading pane

P cycles the reading pane below the list, to its right, or off. With the pane open:

Key Does
Shift+J / Shift+K scroll the pane without leaving the list
H toggle its HTML rendering
V expand the attachment drawer for the previewed message
O the link picker over the previewed message

V and O act on the selected message in place, the same keys as the pager, so following a link or saving a file never forces the full pager open. The preview never decrypts: an encrypted message shows neither links nor attachments until you open it.

Set how many list rows stay visible above the pane:

[ui]
list_rows = 7