Skip to content

mxr records

Generated from mxr records --help. Edit the clap definitions in crates/daemon/src/cli/ and re-run npm run build in site/ to regenerate.

Receipts, orders, bookings and documents. Ask for what you need.

Archive keeps records built from your mail: one per order, trip or bill, not one per email. An order’s confirmation, dispatch and delivery are one record; bookings whose dates overlap form a trip; a run of bills from one issuer is a series. Records are filed from schema.org markup (checked) and from labelled lines in the email (amounts and dates unchecked until you confirm them), from to-dos you tick off, from delivered parcels and by hand. Every field says where it came from. Filing in Archive never archives anything in your mail provider.

With no subcommand, prints the ledger: one row per record, grouped by month with counts and totals, newest first.

mxr records [OPTIONS] [COMMAND]
Subcommand Purpose
list The ledger (the default): records by month, newest first
subscriptions Subscriptions: receipts and invoices that come every week, month, quarter or year, with the next charge, the yearly cost, price changes and status (active, overdue, ended), and totals per currency. --format json for scripts and agents
show One record with every field and where it came from
ask Ask for a field: “lisbon booking ref”, “dell receipt 2025”. A query that only names something (“anthropic”) lists every match. Falls back to mxr ask over all mail only when no record matches [alias: find]
fix Fix a field (field=value), confirm one (–confirm), confirm the whole card (–confirm-all) or go back to the extracted value (–clear). Your value wins on every re-run
dismiss Not a record: take records out of Archive. The emails are untouched and they are never filed again
file File an email as a record yourself
sender Always or never file mail from this email’s sender
export Export records as CSV: –dry-run shows the row count, totals, unchecked rows and missing PDFs first
help Print this message or the help of the given subcommand(s)
Flag Description
--account <ACCOUNT> Limit to one account; the default covers every account
--format <FORMAT> [possible values: table, json, jsonl, csv, ids]
-h, --help Print help (see a summary with ‘-h’)

Ask for a field: “lisbon booking ref”, “dell receipt 2025”. A query that only names something (“anthropic”) lists every match. Falls back to mxr ask over all mail only when no record matches

mxr records ask [OPTIONS] <QUERY>
Flag Description
<QUERY>
Flag Description
--no-fallback Don’t fall back to mxr ask when no record matches
--all List every match, even when one answers the query
--limit <LIMIT> Records in a list’s page [default: 200]
--offset <OFFSET> Where a list’s page starts [default: 0]
--account <ACCOUNT> Limit to one account; the default covers every account
--format <FORMAT> [possible values: table, json, jsonl, csv, ids]
-h, --help Print help

Not a record: take records out of Archive. The emails are untouched and they are never filed again

mxr records dismiss [OPTIONS] <RECORD_ID>...
Flag Description
<RECORD_ID> …
Flag Description
--restore Bring dismissed records back
--dry-run
--account <ACCOUNT> Limit to one account; the default covers every account
--format <FORMAT> [possible values: table, json, jsonl, csv, ids]
-h, --help Print help

Export records as CSV: –dry-run shows the row count, totals, unchecked rows and missing PDFs first

mxr records export [OPTIONS]
Flag Description
--csv CSV is the export format; the flag is accepted for scripts
--kind <KIND> Only these kinds: receipt, order, booking, invoice, statement, ticket, contract, warranty, account. Repeat or comma-separate
--issuer <ISSUER> Only records from this issuer (the issuer page)
--year <YEAR> Only this year, by the transaction’s date
--min <MIN> At least this amount, like 100 or 99.50
--max <MAX> At most this amount
--has-pdf Only records with a PDF
--no-pdf Only records without a PDF
--unchecked Only records with an amount or date nobody has confirmed
--account <ACCOUNT> Limit to one account; the default covers every account
--checked Only records whose amounts and dates are all confirmed
--format <FORMAT> [possible values: table, json, jsonl, csv, ids]
--group <GROUP> Only one trip or series, by its id
--out <FILE> Write the CSV here instead of standard output
--pdfs <DIR> Copy each record’s PDF into this folder
--dry-run
-h, --help Print help

File an email as a record yourself

mxr records file [OPTIONS] <MESSAGE_ID>
Flag Description
<MESSAGE_ID>
Flag Description
--kind <KIND> receipt, order, booking, invoice, statement, ticket, contract, warranty or account; the detector’s reading otherwise
--dry-run
--account <ACCOUNT> Limit to one account; the default covers every account
--format <FORMAT> [possible values: table, json, jsonl, csv, ids]
-h, --help Print help

Fix a field (field=value), confirm one (–confirm), confirm the whole card (–confirm-all) or go back to the extracted value (–clear). Your value wins on every re-run

mxr records fix [OPTIONS] <RECORD_ID> [FIELD=VALUE]
Flag Description
<RECORD_ID>
[FIELD =VALUE]
Flag Description
--confirm <FIELD>
--confirm-all
--clear <FIELD>
--sender With issuer=NAME: name this sender’s issuer on every record, now and later
--dry-run
--account <ACCOUNT> Limit to one account; the default covers every account
--format <FORMAT> [possible values: table, json, jsonl, csv, ids]
-h, --help Print help

The ledger (the default): records by month, newest first

mxr records list [OPTIONS]
Flag Description
--kind <KIND> Only these kinds: receipt, order, booking, invoice, statement, ticket, contract, warranty, account. Repeat or comma-separate
--issuer <ISSUER> Only records from this issuer (the issuer page)
--year <YEAR> Only this year, by the transaction’s date
--min <MIN> At least this amount, like 100 or 99.50
--max <MAX> At most this amount
--has-pdf Only records with a PDF
--no-pdf Only records without a PDF
--unchecked Only records with an amount or date nobody has confirmed
--checked Only records whose amounts and dates are all confirmed
--account <ACCOUNT> Limit to one account; the default covers every account
--group <GROUP> Only one trip or series, by its id
--format <FORMAT> [possible values: table, json, jsonl, csv, ids]
--limit <LIMIT> [default: 200]
--offset <OFFSET> [default: 0]
-h, --help Print help

Always or never file mail from this email’s sender

mxr records sender [OPTIONS] <MESSAGE_ID>
Flag Description
<MESSAGE_ID>
Flag Description
--always
--never
--clear Let the rules decide again
--kind <KIND> The kind “always” files as
--dry-run
--account <ACCOUNT> Limit to one account; the default covers every account
--format <FORMAT> [possible values: table, json, jsonl, csv, ids]
-h, --help Print help

One record with every field and where it came from

mxr records show [OPTIONS] <RECORD_ID>
Flag Description
<RECORD_ID>
Flag Description
--account <ACCOUNT> Limit to one account; the default covers every account
--format <FORMAT> [possible values: table, json, jsonl, csv, ids]
-h, --help Print help