Create a high quality printable PDF from your decklist or a list of cards you want to proxy.
-
High resolution prints
In contrast to online tools that provide this service (e.g. MTG Press), this project creates the PDF file locally. This allows to use highest resolution Scryfall scans to create a large, high-dpi PDF file without regard for bandwidth limitations. For example, the generated PDF for a complete Commander decklist has a size of about 140MB. -
Up-to-date card scans
By directly utilizing the Scryfall API, all the latest sets are automatically availble as soon as they're available on Scryfall (which is usually incredibly fast). To not overrun Scryfall with requests, this project makes use of Scryfall bulk data to reduce API calls as much as possible. As requested by Scryfall, a small delay of 100ms is added between requests. However, as most work is done with a local copy of the bulk data, this is hardly noticeable. -
Support for both text and Arena format decklists
mtg-proxiescan work with both text and Arena format decklists. The Arena format is recommended, as it allows you to keep the same prints when moving decklists between multiple tools. There are even cases (i.e. tokens) where the name alone is not sufficient to uniquely specify a card. The Arena format helps in these case, as set and collector number are unique identifiers. However, as tools often only work with one of these formats,mtg-proxiesis a flexible as possible, even supporting mixed mode. This is especially when you are making quick additions to a decklist and don't want to search for set and collector numbers. Themtg-proxies converttool can be used to convert decklists between the two formats. -
Sanity checks and recommender engine
mtg-proxieswarns you if you attempt to print a low-resolution scan and is able to offer alternatives. Themtg-proxies converttool can automatically selects the best print for each card in a decklist with high accuracy, eliminating the need to manually select good prints. -
Token support
Themtg-proxies tokenstool appends the tokens created by the cards in a decklist to it, so you don't miss one accidentally. Caveat: This only works when Scryfall has the data on associated tokens. This is the case for cards printed or reprinted since Tenth Edition. -
ManaStack and Archidekt integration Directly use ManaStack and Archidekt deck ids as input for many functions instead of local decklist files.
Decks on Archidekt must be set to public to be read.
- Install
mtg-proxiesusing uv.
uv tool install git+https://github.com/DiddiZ/mtg-proxies- (Optional) Prepare your decklist in MtG Arena format. This is not required, but recommended as it allows for more control over the process.
COUNT FULL_NAME (SET) COLLECTOR_NUMBERE.g.:
1 Alela, Artful Provocateur (ELD) 324
1 Korvold, Fae-Cursed King (ELD) 329
1 Liliana, Dreadhorde General (WAR) 97
1 Murderous Rider // Swift End (ELD) 287Or use the convert tool to convert a plain decklist to Arena format:
mtg-proxies convert tests/data/decklist_text.txt decklist.txt- Create a PDF file.
mtg-proxies print tests/data/decklist.txt decklist.pdfExamples:
- Create separate outputs for front and back faces
mtg-proxies print tests/data/decklist.txt decklist_fronts.pdf --face front
mtg-proxies print tests/data/decklist.txt decklist_backs.pdf --face backuv tool upgrade mtg-proxiesusage: mtg-proxies print [-h] [--dpi DPI] [--paper WIDTHxHEIGHT] [--scale FLOAT] [--border_crop PIXELS] [--background COLOR] [--cropmarks | --no-cropmarks] [--faces {all,front,back}] decklist outfile
Prepare a decklist for printing.
positional arguments:
decklist path to a decklist in text/arena format, or manastack:{manastack_id}, or archidekt:{archidekt_id}
outfile output file. Supports pdf, png and jpg.
options:
-h, --help show this help message and exit
--dpi DPI dpi of output file for raster formats (png, jpg); ignored for pdf (default: 300)
--paper WIDTHxHEIGHT paper size in inches or preconfigured format (default: a4)
--scale FLOAT scaling factor for printed cards (default: 1.0)
--border_crop PIXELS how much to crop inner borders of printed cards, in source image pixels (default: 14)
--background COLOR background color, either by name or by hex code (e.g. black or "#ff0000", default: None)
--cropmarks, --no-cropmarks
add crop marks (png, jpg); ignored for pdf
--faces {all,front,back}
which faces to print (default: all)usage: mtg-proxies convert [-h] [--format {arena,text}] [--clean] decklist outfile
Convert a decklist to text or arena format.
positional arguments:
decklist path to a decklist in text/arena format, or manastack:{manastack_id}, or archidekt:{archidekt_id}
outfile output file
options:
-h, --help show this help message and exit
--format {arena,text}
output format (default: arena)
--clean remove all non-card linesusage: mtg-proxies tokens [-h] [--format {arena,text}] decklist
Append the created tokens to a decklist.
positional arguments:
decklist path to a decklist in text/arena format, or manastack:{manastack_id}, or archidekt:{archidekt_id}
options:
-h, --help show this help message and exit
--format {arena,text}
output format (default: arena)Example:
tokens.py tests/data/token_generators.txtusage: mtg-proxies deck_value [-h] [--lump-threshold FLOAT] decklist
Show deck value decomposition.
positional arguments:
decklist path to a decklist in text/arena format, or manastack:{manastack_id}, or archidekt:{archidekt_id}
options:
-h, --help show this help message and exit
--lump-threshold FLOAT
lump together cards with lesser proportional value (default: 0.03)Example:
mtg-proxies deck_value manastack:1234536
mtg-proxies deck_value archidekt:365563- MTG Press for being a very handy online tool, which inspired this project.
- Scryfall for their excellent API.

