Deck Comparison

Compare two Commander decks side by side, generate a ChatGPT-ready comparison packet, and paste the returned deck_comparison JSON back here for a readable verdict.

Follow the steps in order: enter both decks, generate the comparison packet, paste 30-comparison-prompt.txt into ChatGPT, then paste the returned deck_comparison JSON into Step 3.

Step 1

Enter both decks

Each side accepts the same sources as the current ChatGPT workflow: a public Moxfield or Archidekt URL, or pasted deck export text.

Required
Show Commander bracket definitions

Choose the bracket that best reflects each deck's intended power band. The comparison prompt includes these definitions so ChatGPT judges the lists against the selected bracket expectations instead of guessing.

  • Bracket 1: Exhibition: Prioritize theme, unusual ideas, flexible legality, and showcase gameplay over optimization. Expect to play at least nine turns before you win or lose.
  • Bracket 2: Core: Unoptimized and straightforward decks with incremental, disruptable wins and low-pressure gameplay. Expect to play at least eight turns before you win or lose.
  • Bracket 3: Upgraded: Strong synergy, high card quality, meaningful interaction, and explosive but earned wins. Expect to play at least six turns before you win or lose.
  • Bracket 4: Optimized: Fast, lethal, efficient decks with strong game changers, fast mana, tutors, and explosive play. Expect to play at least four turns before you win or lose.
  • Bracket 5: cEDH: Metagame-tuned competitive Commander decks built for maximum efficiency and consistency. Games can end on any turn.
Moxfield URL support requires the DeckFlow Bridge extension → Install it here

DeckFlow's server cannot reach Moxfield reliably, so Moxfield URLs in this app go through the DeckFlow Bridge extension, which fetches the deck from your logged-in browser. Install it once, allow this site, and every future Moxfield URL import just works.

Download DeckFlow Bridge (.zip) Full install instructions →

  1. Download the ZIP above and unzip it anywhere on your machine.
  2. Load unpacked in Chrome/Edge: open chrome://extensions, enable Developer mode, click Load unpacked, and pick the unzipped deckflow-bridge folder.
  3. Allow this site — open the DeckFlow Bridge Options page and add this DeckFlow origin to the allowed-origins list.
  4. Retry — paste the Moxfield URL here again and submit. The DeckFlow Bridge intercepts automatically.

Can't install? Make the Moxfield deck public, or use Moxfield's Bulk Edit view and paste the deck export text into the text field instead.

Want your Moxfield tags and categories to come through? Use Bulk Edit →

Moxfield's Bulk Edit view lists every card with its #tags inline — copy it, paste it into the text field here, and the tags travel with the deck. No extension required.

  1. Open your deck on moxfield.com.
  2. Click Bulk Edit. The Main Deck tab opens by default, with each card formatted like 1 Card Name (set) cn #Tag #Other.
  3. Copy the Main Deck contents and paste them into the text field here. Submit — tags are preserved end-to-end.

Deck A

Required

Deck B

Required

Step 2

Generate the comparison packet

Generate the packet, copy 30-comparison-prompt.txt, paste it into ChatGPT, then ask for the final answer plus the fenced deck_comparison JSON block.

Packet output
What you do:
  1. Click Generate Comparison Packet.
  2. Copy 30-comparison-prompt.txt.
  3. Paste it into ChatGPT.
  4. Have ChatGPT return the readable comparison plus a fenced ```json block whose top-level object is deck_comparison.
  5. Use 32-comparison-follow-up-prompt.txt later if you continue the ChatGPT thread and want refreshed JSON.
  6. Paste that JSON into Step 3.
Show extra prompt presets

Best-Practice Header

Prepend this to any comparison prompt when you want tighter evidence discipline.

Quick Verdict Prompt

Use this when you want a short comparison outside the full app workflow.

All-In-One Prompt

Use this for a detailed human-readable comparison without strict JSON output.

Strict JSON Prompt

Use this when you want output shaped for the app's deck_comparison JSON step.

Step 3

Paste the returned comparison JSON

Paste only the fenced JSON block or raw JSON payload that contains the top-level deck_comparison object.

Final step