Interactive mode is the middle ground between the web app and the one-shot CLI report. It walks you through your deck one card at a time in the terminal, prints a rich suggestion table for each card, and lets you press a single key to accept or skip — no browser required for the main workflow. Choose it when you are working in a terminal-only environment, want to move through the deck deliberately, or prefer to keep the browser closed until you specifically need to inspect a card image.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/invvd/mtg-cheaper-deck/llms.txt
Use this file to discover all available pages before exploring further.
Usage
Pass your Moxfield deck URL (or raw deck ID) as the first argument. If you omit it, the tool will prompt you to paste it interactively.Interactive flow
Fetch and sync the deck
The tool calls the Moxfield API to download the deck, then runs each card through
match_deck_cards() to find the corresponding local database entry. Cards that have no match or no known price are noted and skipped automatically. The commander is always skipped — no replacements are suggested for it. The remaining cards are sorted from most expensive to least expensive, so the highest-impact choices come first.Review each card's suggestion table
For every card that has at least one cheaper alternative, the tool prints a
rich table with up to five rows. Each row shows the suggestion number, card name, suggested price, savings percentage, similarity score, and the plain-text reason string. Savings and scores are color-coded (see Score color coding below).Enter a number to replace, Enter to skip, or 'i' to view images
Below each table the prompt reads
Elige una opción:. Type the number next to a suggestion and press Enter to accept that replacement. Press Enter (or type 0) to leave the card unchanged and move on. Type i to open a browser-based side-by-side image comparison without leaving the interactive loop (see Card image comparison below). Type q to exit early — the plain-text list is printed before the process ends.Updated deck list printed after each replacement
Every time you accept a replacement,
build_plain_text() is called on the current state of the entries list and the result is printed inside a cyan Panel. The list is always ready to copy — you do not need to wait until the end of the session.Card image comparison
Typingi at any prompt calls card_images.open_comparison(local, suggestions). The function:
- Builds a self-contained HTML page showing the original card on the left and all suggestions to the right, each with its price, savings percentage, and similarity score as a caption.
- Writes the file to
./data/compare.html(relative to the working directory), creating thedata/directory if it does not exist. - Opens the file in your default browser using
webbrowser.open().
i on a new card — the file is overwritten in place. No images are downloaded locally; every <img> tag points directly to the Scryfall API endpoint for that card’s scryfall_id.
Score color coding
The Puntaje column in the suggestion table is colored based on how functionally similar the candidate is to the original card.| Score range | Color | Meaning |
|---|---|---|
| 3.0 or above | Bold green | Strong match — candidate shares real mechanics (keywords and/or significant oracle text overlap). |
| 1.5 – 3.0 | Yellow | Moderate match — some text or CMC similarity, but not a direct functional copy. |
| Below 1.5 | White | Weak match — mainly shares card type, color identity, and EDHREC popularity. |
Output format
The plain-text list printed after each replacement (and at the end of the session) uses the Commander/Deck format fromplain_text.build_plain_text():
Commander section appears first when a commander is present, separated from the Deck section by a blank line. Each line is quantity name with no extra punctuation.