Skip to content

Keybindings

Press ? inside neomd to open the interactive help overlay. Start typing to filter shortcuts.

The tables below are generated from internal/ui/keys.go. To update both the help overlay and this document at once, edit that file and run make docs.

Navigation

KeyAction
j / kmove down / up
d / upage down / up in inbox/help
ggjump to top
Gjump to bottom
enter / lopen email
h / q / escback to inbox (from reader)
?toggle help overlay (type to filter)

Folders

KeyAction
L / ] / tabnext folder tab
H / [ / shift+tabprevious folder tab
gigo to Inbox
gago to Archive
gfgo to Feed
gpgo to PaperTrail
gtgo to Trash
gsgo to Sent
gkgo to ToScreen
gogo to ScreenedOut
gwgo to Waiting
gcgo to Scheduled (calendar)
gbgo to Work (if configured)
gmgo to Someday
gdgo to Drafts
gego to Everything — latest 50 emails across all folders
gSgo to Spam (not in tab rotation)

Screener (marked or cursor, any folder)

KeyAction
Iapprove sender → screened_in.txt + move to Inbox (removes from blocked lists)
Oblock sender → screened_out.txt + move to ScreenedOut (removes from screened_in)
$mark as Spam → spam.txt + move to Spam (removes from screened_in/out)
Fmark as Feed → feed.txt + move to Feed
Pmark as PaperTrail → papertrail.txt + move to PaperTrail
Aarchive (move to Archive, no screener update)
Bmove to Work/business (no screener update, if configured)
Sdry-run screen inbox (loaded emails), then y/n

Move (marked or cursor, no screener update)

KeyAction
xdelete → Trash
Mimove to Inbox
Mamove to Archive
Mfmove to Feed
Mpmove to PaperTrail
Mtmove to Trash
Momove to ScreenedOut
Mwmove to Waiting
Mcmove to Scheduled
Mbmove to Work (if configured)
Mmmove to Someday
Mkmove to ToScreen

Multi-select & Undo

KeyAction
mmark / unmark email + advance cursor
ctrl+uclear all marks
Uundo last move or delete (reverses x, A, M* — not screener actions)
X (Trash only)permanently delete marked or cursor email(s) — no undo

Leader Key Mappings (space prefix)

KeyAction
<space>1 … <space>9jump to folder tab by number (Inbox=1, ToScreen=2, …)
<space>/IMAP search ALL emails on server (From + Subject)
<space>wshow welcome screen

Sort (, prefix)

KeyAction
,mdate newest first (default)
,Mdate oldest first
,afrom A→Z
,Afrom Z→A
,ssize smallest first
,Ssize largest first
,nsubject A→Z
,Nsubject Z→A

Email actions

KeyAction
ntoggle read/unread (marked or cursor)
Njump to next unread email
ctrl+nmark all in current folder as read
Rreload / refresh folder
rreply (from inbox or reader)
ctrl+rreply-all — reply to sender + all CC recipients (from inbox or reader)
ctrl+ereact with emoji (from inbox or reader)
fforward email (from reader or inbox)
Tshow full conversation thread across folders (from inbox or reader)
ccompose new email
ctrl+b (compose/pre-send)toggle Cc+Bcc fields (both hidden by default)
ctrl+f (compose/pre-send)cycle From address through all accounts + [[senders]] aliases
a (pre-send)attach file via yazi file picker (or $NEOMD_FILE_PICKER)
D (pre-send)remove last attachment
d (pre-send)save to Drafts folder (IMAP APPEND with \Draft flag)
s (pre-send)spell check — open in nvim with spell on, jump to first error
p (pre-send)preview email in $BROWSER (images rendered, same as recipient sees)
e (pre-send)re-open editor to edit body
enter (pre-send)confirm and send
1-9 (reader)download attachment N to ~/Downloads and open with xdg-open
space+1-0 (reader)open link 1-10 in $BROWSER (0 = 10th link)
space+l11-99 (reader)open link 11-99 in $BROWSER (e.g. space+l26 for [26])
e (reader)open in $EDITOR read-only — search, copy, vim motions
E (reader)continue draft — re-open as editable compose (Drafts folder)
o (reader)open in w3m (terminal browser)
O (reader)open in $BROWSER (GUI browser, images shown)
ctrl+o (reader)open web version / newsletter URL in $BROWSER
ctrl+a (inbox)switch account (if multiple configured)

Command line (: to open, tab to complete)

KeyAction
:screen / :sdry-run screen loaded inbox emails
:screen-all / :sadry-run screen ALL inbox emails (no limit)
:reset-toscreen / :rtsmove all ToScreen emails back to Inbox
:mark-read / :mrmark all emails in current folder as read
:reload / :rreload current folder
:check / :chshow screener classification for selected email
:everything / :evshow latest 50 emails across all folders
:search / :seIMAP search all emails on server (From + Subject + To)
:delete-all / :dapermanently delete ALL emails in current folder (y/n)
:empty-trash / :etpermanently delete ALL emails in Trash (y/n)
:create-folders / :cfcreate missing IMAP folders from config (safe, idempotent)
:go-spam / :spamopen Spam folder (not in tab rotation)
:debug / :dbgdiagnostic report — IMAP ping, config, folders, state (saved to /tmp/neomd/debug.log)
:quit / :qquit neomd

Composing

KeyAction
tab (To/Cc/Bcc)accept autocomplete suggestion or next field
ctrl+n / ctrl+p / arrows (To/Cc/Bcc)cycle through address suggestions
enter (on Subject)open $EDITOR with a .md temp file
esccancel

General

KeyAction
/filter loaded emails (From + Subject, in-memory)
ztoggle unread-only view (zoomed out/zero inbox)
<space>/ or :searchIMAP search ALL emails on server (From + Subject)
?toggle this help
qquit (from inbox)