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 activity— Browse the local user-activity log (the git-reflog for your inbox). Strictly local: never transmitted off-device. Seemxr activity --helpmxr archive— Archive a message (remove from inbox)mxr ask— Ask a question against the local archive. Returns a citation- validated answer; the daemon rejects LLM citations that point to messages outside the retrieved setmxr attachments— Manage message attachments
mxr briefing— Render a thread or recipient briefingmxr 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 cadence— Manage the cadence watchlistmxr 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 chimes— Manage local notification chimesmxr commitments— List or resolve relationship commitmentsmxr 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 decisions— List or rebuild the citation-backed decision logmxr deliveries— Track packages and deliveries detected in your mailmxr demo— Launch an isolated, realistic demo inbox without touching your real configmxr doctor— Run diagnosticsmxr draft— Draft a new email or refine an existing local draft with LLM assistancemxr 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 expert— Find people who have answered similar questions before. Either give the message id of the question OR a free-text query; the daemon ranks answerers (not askers)mxr 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 historymxr humanize— Score or rewrite text using the deterministic humanizer gate
mxr invite— Inspect and respond to calendar invites in emailmxr invites— List calendar invites found in email
mxr jobs— List or inspect background jobs (large batch mutations, progress, undo ids)
mxr label— Apply a label to a messagemxr labels— Manage labelsmxr llm— Inspect local/cloud LLM provider statusmxr logs— View daemon logs
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 owed— List threads where the user owes a reply, ranked by how overdue they are relative to the recipient’s typical cadence
mxr profile— Show or rebuild the inspectable relationship profile for a contact
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 route— Route queued messages to a target label, optionally marking read and archivingmxr 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 send-time— Show the recipient’s typical reply-time bucketmxr 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 senders— List top inbound senders by message volumemxr setup— First-run setup wizard for demo, Gmail, or IMAP/SMTPmxr signatures— Manage outgoing compose signaturesmxr 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 suggest-recipients— Suggest “maybe include” Cc recipients for a draft. Excludes addresses already on the draft and never reveals Bcc’d addresses from prior threadsmxr 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 threads— List threads in date-descending order. Each returned thread includes its constituent message IDs (date-ascending). Filter by account or label; paginate with —limit/—offsetmxr trash— Move message to trashmxr triage— Classify search results as ACTION/FYI/ROUTINE using the cached summarizer verdict
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 versionmxr voice— Show or rebuild the account-level user voice profile
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 whois— Explain an entity (email or term) using local evidencemxr wrapped— Year-in-review summary: volume, time patterns, top contacts, reply discipline, storage, newsletters, superlatives. Like Spotify Wrapped but for your inbox