Skip to content

CLI reference

Inspect programs, assets, and saved results as JSON from your installed MINT workspace.

sh
mint status --json
mint buyers --boxes --limit 10 --json

Returns: status identifies batch.id, batch.as_of, batch.record_count, batch.total_face, buyers, and buy_boxes. buyers returns as_of, total_count, and items; each item has id, buyer, label, and kind.

Next: choose an exact items[].id from the program list. Supply it at the prompt:

sh
printf 'Buy Box ID from the list: '
IFS= read -r BOX_ID
mint mandate "$BOX_ID" --json

mandate returns the selected id, buyer, label, kind, profile, and source_refs. Read profile.fields for values and their source_state. No program is selected for you.

Discover and inspect

Without --boxes, mint buyers --limit 10 --json returns buyer records with id, buyer, and boxes. With --boxes, items[].id is a Buy Box ID suitable for mandate or match.

Illustrative program-list excerpt:

json
{
  "as_of": "2026-09-01",
  "total_count": 1,
  "items": [{"id": "PBB-EXAMPLE", "buyer": "Example Credit Fund", "label": "Receivables"}]
}

Use the actual values returned by your workspace. A broad name can match several programs; make the choice explicit rather than relying on name resolution.

Inspect assets and a saved result

Read at most two rows from the configured batch:

sh
mint assets --limit 2 --json

Returns: snapshot_ref, as_of, filter, total_count, analytics, items, and original. Each asset includes id, face.amount_minor, face.currency, duration_days, grade, source_ref, and source_hash. amount_minor is in cents for USD.

Compact output excerpt with illustrative values:

json
{
  "as_of": "2026-09-01",
  "total_count": 2,
  "items": [
    {"id": "CLM-EXAMPLE-1", "face": {"amount_minor": 10000000, "currency": "USD"}, "duration_days": 60, "grade": "A"},
    {"id": "CLM-EXAMPLE-2", "face": {"amount_minor": 20000000, "currency": "USD"}, "duration_days": 90, "grade": "BBB"}
  ]
}

Next: use a returned items[].id to inspect that asset:

sh
printf 'Asset ID from the result: '
IFS= read -r ASSET_ID
mint assets "$ASSET_ID" --json

--limit bounds the displayed rows, not total_count or the analytics for the selection. To narrow the selection itself, use filters such as --grade A or --tenor-max 90.

Create a comparison, then explain it

Saves a new result. Run this when you want a comparison saved, using the program ID you selected above:

sh
mint match "$BOX_ID" --tenor-max 90 --json

--tenor-max 90 filters the assets considered; it does not rewrite the buyer's terms. match saves a run under the CLI state directory's runs/ folder. The response is the run itself, with top-level id, as_of, input, result, source_refs, and content_hash.

Next: take the returned top-level id and inspect the saved run. This reads the stored result rather than creating another comparison:

sh
printf 'Saved result ID (MINT-…) from match or your workspace: '
IFS= read -r RUN_ID
mint explain "$RUN_ID" --json

Read result.analytics.record_count, result.analytics.total_face, result.criteria, result.evidence, and result.missing_inputs. A criterion contains name, state, and reason. Retain missing inputs, source dates, and any modeled or assumed financial basis. A passed check is not an overall eligibility decision.

Parameters and command effects

InputUseMeaning
--jsoninspection / comparison commandsJSON to stdout; errors are { "error": { "code", "message" } } with exit code 2.
--limit Nbuyers, assetsDefault 20; whole number 1–250. Bounds items, not selection totals.
--boxesbuyersReturn exact Buy Box IDs instead of buyer IDs.
Buyer-name fragmentbuyersSearches buyer and program labels; an empty query lists the catalog.
Exact Buy Box IDmandate, matchUse a returned buyers --boxes ID. match saves a new run.
Asset IDassetsExact case-insensitive ID match within the active filters.
--grade, --sector, --stateassets, matchExact filter values from returned records. State values: included, conditional, excluded.
--search TEXTassets, matchCase-insensitive substring across ID, obligor, seller, and source reference.
--tenor-min, --tenor-maxassets, matchInclusive duration-day bounds; minimum cannot exceed maximum.
Saved MINT-… IDexplainRead a stored run, including integrity verification.
--originalassets, explainOpens the linked source CSV in a desktop application; it can contain the full batch.
--allmandate text outputInclude fields whose value is null. JSON already includes the profile.

status, buyers, mandate, assets, and explain inspect records. match writes a result. --original opens a file; mint desk opens Floating. mint --login creates local approval after the browser step; mint --logout removes local approval.

Handle a precise error

For APPROVAL_REQUIRED, run mint --login and complete the existing local approval flow, then repeat the inspection. Keep credentials out of command arguments. BUYER_NOT_FOUND means refine the query; AMBIGUOUS_BUYER means choose an exact returned Buy Box ID. ASSET_NOT_FOUND can mean the ID is outside the supplied filters. RUN_NOT_FOUND means the run is not in this CLI state directory. Keep the returned error code and message rather than substituting a financial conclusion.

Interactive terminal

Run mint to enter MINT >. Inside it, omit the mint prefix; use help for commands and exit to leave. Use the one-shot mint … --json form from scripts so prompts and banners do not enter your JSON stream.

Source context

status.batch identifies the configured CLI source; status.buyer_research_as_of identifies the buyer research date. Asset responses retain snapshot_ref, as_of, and per-row source_ref / source_hash. Saved runs retain input.snapshot_ref, input.subject.profile_ref, source_refs, and content_hash.

The Floating batch selector and optional CSV intake have their own context. Keep that context separate from the CLI's configured source. An output row limit is not a new batch. Use saved results, source records, and local data for the related workflows.

Local file workflows

For workbook reading/creation, exact table reconciliation, and scan reading, use the Floating host tool arguments. These tools receive JSON through Floating. Keep them separate from terminal commands.

For a safe subprocess example that handles an empty list and an unavailable CLI, use the Node.js example.

MINT · Product documentation