Triage flow
The shape of triage in mxr
Section titled “The shape of triage in mxr”Email triage is a two-pass loop:
- First pass: classify each message: does it deserve attention now, later, or never?
- Second pass: actually deal with the “later” pile.
mxr ships three primitives that together make the loop fast.
Reply-later (first pass)
Section titled “Reply-later (first pass)”The fastest decision: “I want to reply, just not now.” Press b on a
message and it’s flagged as reply-later. The flag is local-only, never
roundtrips to the provider.
mxr replies # see the queuemxr replies add MESSAGE_ID # add via CLI / agentmxr replies remove MESSAGE_ID # clear when doneReplying via any path automatically clears the flag (CLI mxr reply,
TUI r).
Screener (first pass, by sender)
Section titled “Screener (first pass, by sender)”The decision you make once per sender rather than per message. The queue is for strangers: anyone you have written to is never in it.
allow: you want their mail in the inbox, as mail from a person. Until you write to them, it shows on the desk under New from people, not You owe.deny: auto-trash + mark-readfeed: newsletters and lists. Their mail lives in Reading, off the desk.paper-trail: receipts and notifications. Their mail lives in Paper trail, off the desk.
mxr screener queue # senders waiting for a decisionmxr screener allow alice@example.commxr screener deny spammer@example.commxr screener feed newsletter@example.commxr screener paper-trail receipts@example.comScreener decisions are local: they live in mxr’s store, not in your provider. To also label a sender’s mail:
mxr screener feed newsletter@example.com --label "Newsletters"With --label, mxr adds that label to the sender’s new mail as it syncs
in. Decisions match the exact sender address; wildcards are not supported.
Custom snooze (first pass, defer)
Section titled “Custom snooze (first pass, defer)”When “reply later” is too vague: you know exactly when this should
come back. --until takes a time in words, resolved in your local time:
mxr time "fri 3" # preview firstmxr snooze --until "fri 3" MESSAGE_IDmxr snooze --until "in 2h" MESSAGE_IDmxr snooze --until "tomorrow 9am" MESSAGE_IDmxr snooze --until "next week" MESSAGE_IDmxr snooze --until "2026-06-01T15:00:00Z" MESSAGE_IDPhrases without a time (tomorrow, weekend, tonight, monday) use
the hours in your [snooze] config block. See
Time phrases for everything mxr accepts.
The sender view (second pass)
Section titled “The sender view (second pass)”When you’re working through the reply-later queue or following up with
a specific person, mxr sender <addr> is the unfair advantage:
mxr sender alice@example.comYou see their volume in/out, your replied-to-them count, p50 cadence, when you last heard from them, and how many threads are open and waiting on you. No other email tool reasons over senders this way because the data is normally locked behind a provider API; mxr’s local SQLite makes it a single read.
Putting it together
Section titled “Putting it together”A typical mxr triage session:
- Open inbox.
- For each unknown sender, press the relevant disposition:
mxr screener allow|deny|feed|paper-trail. - For each message you’ll engage with: press
b(reply-later) orZ(snooze with a specific time). - Run
mxr replieslater to walk the reply-later queue. - Run
mxr sender alice@example.combefore replying to a specific person to get instant context.
The whole loop stays in the keyboard. No mouse, no context switches.
In real life
Section titled “In real life”- Monday morning: open mxr, hit
Ctrl-p → Reply Queueto see what you bookmarked over the weekend; walk it withj/kandr. - Inbox bombing after vacation:
mxr screener queue --format ids | xargs -n1 mxr cat | lessto skim every unknown sender at once, decide dispositions in one pass. - Tax season:
mxr screener paper-trail billing@shop.example --label "Receipts"files that sender’s new receipts under one label as they arrive. - Newsletter overload:
mxr subscriptions --rank --format json | jq '.[:10]'shows the worst ROI lists; pipe toxargs -n1 mxr unsubscribe.
Agent prompts that work
Section titled “Agent prompts that work”"Show me the senders waiting in my screener queue. For each, summarisethe latest message in one sentence. I'll tell you the disposition; yourun `mxr screener allow|deny|feed|paper-trail`.""It's Friday at 3pm. Snooze every newsletter in the inbox until Mondaymorning. Use `mxr search 'label:newsletters is:unread' --format ids |mxr snooze --until 'monday 9am' --yes`. Show the dry-run first.""Walk my reply-later queue. For each one, show me the thread context,suggest a 2-line reply, and wait for me to approve. Use `mxr replies--format ids` to start."