Skip to content

CLI reference

Generated from the captured --help snapshots at crates/daemon/tests/snapshots/cli_help__*.snap. To change a flag, change the clap definition in crates/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.

  • mxr bug-report — Generate a sanitized diagnostic bundle
  • mxr burn — Destroy local mxr runtime state after stopping the daemon. Alias for mxr 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 --first for the most recent match or --limit N for the top N)
  • mxr completions — Generate shell completions
  • mxr compose — Compose a new email
  • mxr config — Configuration management
  • mxr contacts — Surface relationship analytics from the materialized contacts table
  • mxr count — Count matching messages
  • mxr daemon — Start the daemon explicitly
  • mxr demo — Launch an isolated, realistic demo inbox without touching your real config
  • mxr doctor — Run diagnostics
  • mxr 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 $EDITOR or 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 headers — Show message headers. Pass a positional ID, pipe IDs on stdin, or resolve a list with --search QUERY
  • mxr history — Show persisted event history
  • mxr move — Move message to a label/folder
  • mxr open — Open message in browser. Pass a positional ID or --search QUERY (with --first for the latest match, or --limit N plus --yes to open many tabs at once)
  • mxr read — Mark message as read
  • mxr read-archive — Mark message as read and archive it
  • mxr 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-up
  • mxr replies — Manage the reply-later queue
  • mxr reply — Reply to a message
  • mxr reply-all — Reply to all recipients
  • mxr 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 preview
  • mxr response-time — Reply-latency percentiles (clock + business-hours) per direction
  • mxr restart — Restart the daemon with the current binary
  • mxr rules — Manage rules
  • mxr saved — Manage saved searches
  • mxr screener — Triage unknown senders: classify them as allow / deny / feed / paper-trail. Local-only consent metadata; never roundtrips to the provider
  • mxr search — Search messages
  • mxr semantic — Manage semantic search profiles and indexing
  • mxr send — Send a draft by ID
  • mxr 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 people
  • mxr setup — First-run setup wizard for demo, Gmail, or IMAP/SMTP
  • mxr snippets — Manage compose snippets (;name expansions)
  • mxr snooze — Snooze a message until a specified time
  • mxr snoozed — List snoozed messages
  • mxr spam — Report message as spam
  • mxr stale — List stale threads waiting for a reply (mine = my turn, theirs = theirs)
  • mxr star — Star a message
  • mxr status — Show daemon status
  • mxr storage — Roll up disk consumption by sender, mimetype, or label
  • mxr subscriptions — List senders with unsubscribe support
  • mxr summarize — Summarise an email thread using the configured LLM (Ollama, LM Studio, OpenAI, etc.). Requires [llm] enabled = true in config. Pass a positional thread ID or use --search QUERY plus --first (most recent match) or --limit N to 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 by archive, trash, spam, mark-read, and read-archive; copy it from there
  • mxr unlabel — Remove a label from a message
  • mxr unread — Mark message as unread
  • mxr unsend — Cancel a previously-scheduled send. The draft itself is preserved
  • mxr unsnooze — Unsnooze a message
  • mxr unstar — Unstar a message
  • mxr unsubscribe — Unsubscribe from a mailing list
  • mxr web — Start or reopen the local HTTP/WebSocket bridge and open the web app in the default browser. Runs detached by default; use mxr web stop to stop the detached bridge
  • mxr wrapped — Year-in-review summary: volume, time patterns, top contacts, reply discipline, storage, newsletters, superlatives. Like Spotify Wrapped but for your inbox