Skip to content

Keybindings

KeyAction
17Switch Mailbox / Search / Rules / Accounts / Diagnostics / Analytics / Deliveries
Ctrl-pOpen command palette
gcEdit config
gLOpen logs
?Toggle help modal
EscBack, close modal, dismiss pane, or clear selection
qQuit current view or exit
KeyAction
j / Move down
k / Move up
ggJump to top
GJump to bottom
Ctrl-dPage down
Ctrl-uPage up
H / M / LViewport top / middle / bottom
zzCenter current item
Enter / oOpen selected row
TabSwitch pane
FToggle fullscreen / full reader layout
/Open full-index Search
Ctrl-fFilter current mailbox only
n / NNext / previous search result
KeyAction
cCompose
rReply
aReply all
fForward
ySummarize thread in the background
eArchive
mMark read + archive
#Trash
!Mark spam
sStar / unstar
IMark read
UMark unread
lApply label
vMove to label
DUnsubscribe
ZSnooze
bBookmark for reply-later
OOpen in browser
RToggle reader mode
HToggle HTML view
MToggle remote content (HTML images)
SToggle signature display
EExport thread
KeyAction
xToggle row selection
VVisual line selection
EscClear selection
KeyAction
1Mailbox
2Search
3Rules
4Accounts
5Diagnostics
6Analytics
7Deliveries
KeyAction
giGo to Inbox
gsGo to Starred
gtGo to Sent
gdGo to Drafts
gaGo to All Mail
glGo to Label (picker)
gcEdit config (opens $EDITOR)
gLShow recent logs
g 1g 9Jump to saved-search 1–9
g 0Return to default inbox (clear saved-search filter)
KeyAction
j / kScroll body
RToggle reader mode
HToggle HTML view
MToggle remote content (HTML images)
SToggle signature display
OOpen in browser
AOpen attachment modal
LOpen links modal (jump to any URL in the body)
FToggle fullscreen / full reader layout
rReply
aReply all
fForward
ySummarize thread in the background
eArchive
mMark read + archive
#Trash
!Mark spam
sStar / unstar
IMark read
UMark unread
17Switch primary tab (Mailbox / Search / Rules / Accounts / Diagnostics / Analytics / Deliveries)
gcEdit config
gLShow recent logs
DUnsubscribe
KeyAction
j / kMove focused message in thread
rReply to focused message
aReply all to focused message
fForward focused message
ySummarize thread in the background
AOpen attachment modal
LOpen links modal
FToggle fullscreen / full reader layout
RToggle reader mode
HToggle HTML view
MToggle remote content
SToggle signature
EExport thread
OOpen in browser
eArchive
mMark read + archive
#Trash
!Mark spam
sStar / unstar
IMark read
UMark unread
DUnsubscribe
17Switch primary tab
gc / gLEdit config / show logs
KeyAction
[ / ]Collapse / expand the focused sidebar section
nNew saved search (when the sidebar’s saved-searches list is focused)
eEdit the focused saved search
dDelete the focused saved search (with confirm)
g 1g 9Jump to saved-search 1–9
g 0Clear saved-search filter (return to default inbox)

Open from the Calendar invites sidebar item. The list pane shows every detected invite with inline RSVP.

KeyAction
j / kMove down / up
aAccept
t or mTentative
dDecline
A / T (or M) / DAccept / Tentative / Decline with a comment (opens compose)
uUndo the just-issued RSVP (within its send window)
Enter / oOpen the underlying message
hBack to the sidebar

The Analytics screen has six views. Cycle them with Tab / Shift-Tab; refresh the active view with r.

ViewKeyAction
StoragemToggle Breakdown ↔ Largest-Messages mode
StoragegCycle group_by (sender / mimetype / label) in Breakdown mode
Stale ThreadspToggle perspective (mine ↔ theirs)
Stale Threads[ / ]±7 days on older_than_days
Stale Threads{ / }±30 days on within_days
ContactsmCycle sub-mode (asymmetry / decay / refresh)
ContactsRRefresh the materialized contacts table
Response TimedToggle direction (clock ↔ business hours)
SubscriptionsoToggle ranking (volume ↔ open-rate)
SubscriptionsuOpen the unsubscribe-confirm modal for the selected row
Wrappedh / j / k / lMove between dashboard tiles
Wrappedy / YStep year (back / forward)
WrappedtCycle window kind (YTD → Year → SinceDays)
KeyAction
Tab / Shift-TabCycle views
rRefresh active view
EnterDrill down (sender → search filter; thread row → open conversation)
fOpen the filter modal — every CLI flag for the active view as an editable field
EscReturn to Mailbox

Open with 7. Lists tracked packages detected in your mail.

KeyAction
j / kMove selection
o / EnterOpen the source email inline in a split preview
Ctrl-d / Ctrl-uScroll the open email (when the preview is showing)
rResolve (mark delivered/done)
dDismiss (hide a false positive)
DCycle filter: active → delivered → all
gRefresh the list
EscClose the preview, then return to Mailbox
KeyAction
EnterRun search now
TabChange lexical / hybrid / semantic mode
EscStop editing query
KeyAction
j / kMove through results
Enter / o / lOpen selected result in preview
/Edit query
TabSwitch to preview
EscReturn to mailbox
KeyAction
j / kMove through messages in the previewed thread
h / EscReturn to results
TabSwitch back to results
RToggle reader mode
AOpen attachments
LOpen links
r / a / f / eReply / reply all / forward / archive
KeyAction
j / kMove rule selection
Enter / oRefresh selected rule overview
nNew rule
EEdit rule
eEnable / disable rule
DDry-run selected rule
HShow history
Ctrl-sSave rule form
#Delete rule
KeyAction
Enter / oToggle fullscreen for the selected pane
dOpen selected section details
rRefresh diagnostics
bGenerate bug report
cEdit config
LOpen logs
KeyAction
j / kMove account selection
nNew IMAP/SMTP account
Enter / oEdit selected account
tTest selected account
dSet selected account as default
cEdit config
rRefresh account inventory
ContextKeys
Helpj / k, Ctrl-d, Ctrl-u, o, Esc
Command palettetyping, j / k, Enter, Esc
Label pickertyping, j / k, Enter, Esc
Attachmentsj / k, Enter / o, d, Esc
Bulk confirmEnter / y confirm, Esc / n cancel
Snooze (preset list)j / k move, Enter confirm, Esc close
Snooze (custom mode)typing, Enter parse + snooze, Backspace, Esc back to presets
Reply queuej / k, Esc close
Snippets browserj / k, Esc close
Sender profilej / k select other sender email, Enter / o open selected email, Esc close
Screener queuej / k navigate, a allow, d deny, f feed, p paper-trail, Esc close
Welcome / setupd demo, g Gmail, i IMAP, Enter open form, Esc dismiss
Saved-search formtyping fields, Tab / Shift-Tab move, Ctrl-s save, Esc cancel
Saved-search deleteEnter / y confirm delete, Esc / n cancel
Compose send-confirms send, d save as draft, e re-edit, Esc cancel
Unsubscribe confirmu unsubscribe + archive, U unsubscribe + trash, a archive only, A archive all from sender, Esc cancel
Analytics filter modaltyping fields, Tab / Shift-Tab move, Enter apply, Esc cancel
Error modalj / k, Ctrl-d / Ctrl-u scroll, q / x / Esc close

The web app uses its own global keymap, derived from the shared action registry at apps/web/src/lib/actions/. Page-internal vim keys (j/k, x, etc.) are handled per-page; the keys below are the global chords.

KeyAction
⌘K / Ctrl-KOpen command palette
:Open command palette (alt)
/Open search palette
?Toggle help dialog
cOpen compose launcher
19, 0Quick nav (Inbox, Search, Analytics, Rules, Screener, Subscriptions, Reply queue, Accounts, Diagnostics, Settings)
KeyAction
g iGo to Inbox
g sGo to Starred
g dGo to Drafts
g tGo to Trash
g aGo to All Mail (matches Gmail muscle memory)
g nGo to Snoozed
g lGo to Reply queue
g uGo to Subscriptions
g rGo to Rules
g yOpen Analytics

Note: in earlier builds the web command palette labelled Analytics as g a, colliding with the global keymap. As of the parity-closure work the palette and keymap share one registry, g a is consistently All Mail, and Analytics has moved to g y. On first visit to /m/archive after the migration a one-time toast announces the move.

The web keymap is currently built into the SPA — there is no keys.toml equivalent yet. The Settings → Keybindings page renders the full registry-derived list, including which actions are palette-only.