CLI reference
Generated from the captured
--helpsnapshots atcrates/daemon/tests/snapshots/cli_help__*.snap. To change a flag, change the clap definition incrates/daemon/src/cli/and the docs follow on rebuild.
mxr is a single binary with subcommands. Running mxr with no arguments launches the TUI.
For higher-level concepts (query operators, search modes, JSON output shapes), see Concepts. For what’s safe to script and pipe, see the automation contract.
All commands
Section titled “All commands”mxr accounts— Manage accountsmxr archive— Archive a message (remove from inbox)mxr attachments— Manage message attachments
mxr bug-report— Generate a sanitized diagnostic bundlemxr burn— Destroy local mxr runtime state after stopping the daemon. Alias formxr reset --hard. Preserves config.toml and credentials by default. Use —including-config to also delete config.toml. Destructive; use —dry-run to preview
mxr cat— Display a message. Pass a positional ID, pipe IDs on stdin, or resolve a list with--search QUERY(then--firstfor the most recent match or--limit Nfor the top N)mxr completions— Generate shell completionsmxr compose— Compose a new emailmxr config— Configuration managementmxr contacts— Surface relationship analytics from the materialized contacts tablemxr count— Count matching messages
mxr daemon— Start the daemon explicitlymxr demo— Launch an isolated, realistic demo inbox without touching your real configmxr doctor— Run diagnosticsmxr draft-assist— Generate a draft reply for a thread, grounded on the thread context plus the user’s instruction. Output goes to stdout — pipe it into$EDITORor your scratch buffer. Never auto-sends. Two equivalent forms:mxr drafts— Manage drafts: list (default), recover orphaned in-flight sends, resume one for retry, or discard recovered drafts
mxr events— Watch daemon eventsmxr export— Export a thread or matching search results
mxr forward— Forward a message
mxr headers— Show message headers. Pass a positional ID, pipe IDs on stdin, or resolve a list with--search QUERYmxr history— Show persisted event history
mxr label— Apply a label to a messagemxr labels— Manage labelsmxr llm— Inspect local/cloud LLM provider statusmxr logs— View daemon logs
mxr move— Move message to a label/folder
mxr notify— Unread summary for status bars
mxr open— Open message in browser. Pass a positional ID or--search QUERY(with--firstfor the latest match, or--limit Nplus--yesto open many tabs at once)
mxr read— Mark message as readmxr read-archive— Mark message as read and archive itmxr remind— Set or cancel a follow-up reminder on an outbound message. Reminders fire if no reply has arrived by the given time — surfacing the message back to the user as a follow-upmxr replies— Manage the reply-later queuemxr reply— Reply to a messagemxr reply-all— Reply to all recipientsmxr reset— Destroy local mxr runtime state after stopping the daemon. Preserves config.toml and credentials by default. Use —including-config to also delete config.toml. Destructive; use —dry-run to previewmxr response-time— Reply-latency percentiles (clock + business-hours) per directionmxr restart— Restart the daemon with the current binarymxr rules— Manage rules
mxr saved— Manage saved searchesmxr screener— Triage unknown senders: classify them as allow / deny / feed / paper-trail. Local-only consent metadata; never roundtrips to the providermxr search— Search messagesmxr semantic— Manage semantic search profiles and indexingmxr send— Send a draft by IDmxr sender— Show per-sender relationship aggregates: volume, response cadence, open threads. The unfair advantage of having local SQLite — every other email tool reasons over messages, not peoplemxr setup— First-run setup wizard for demo, Gmail, or IMAP/SMTPmxr snippets— Manage compose snippets (;nameexpansions)mxr snooze— Snooze a message until a specified timemxr snoozed— List snoozed messagesmxr spam— Report message as spammxr stale— List stale threads waiting for a reply (mine = my turn, theirs = theirs)mxr star— Star a messagemxr status— Show daemon statusmxr storage— Roll up disk consumption by sender, mimetype, or labelmxr subscriptions— List senders with unsubscribe supportmxr summarize— Summarise an email thread using the configured LLM (Ollama, LM Studio, OpenAI, etc.). Requires[llm] enabled = truein config. Pass a positional thread ID or use--search QUERYplus--first(most recent match) or--limit Nto summarize multiple threads in one go. Multi-summary output is separated by--- THREAD_ID ---mxr sync— Trigger or query sync
mxr thread— Display a thread. Pass a positional ID, pipe IDs on stdin, or resolve a list with--search QUERY(deduplicated by thread)mxr trash— Move message to trash
mxr undo— Undo a recent destructive mutation by its id (~60s window). The mutation id is printed byarchive,trash,spam,mark-read, andread-archive; copy it from theremxr unlabel— Remove a label from a messagemxr unread— Mark message as unreadmxr unsend— Cancel a previously-scheduled send. The draft itself is preservedmxr unsnooze— Unsnooze a messagemxr unstar— Unstar a messagemxr unsubscribe— Unsubscribe from a mailing list
mxr version— Show version
mxr web— Start or reopen the local HTTP/WebSocket bridge and open the web app in the default browser. Runs detached by default; usemxr web stopto stop the detached bridgemxr wrapped— Year-in-review summary: volume, time patterns, top contacts, reply discipline, storage, newsletters, superlatives. Like Spotify Wrapped but for your inbox