Native macOS app for Magic: The Gathering

Every card you own,
in the right pile.

Magical Piles sorts a fresh box of cards into the ones you keep and the ones you sell, remembers which box and slot every copy is in, builds decks from the physical copies you actually own, and follows your TCGplayer and Mana Pool listings all the way to sold and shipped.

Read the docs →
The Ingest review screen: a table of cards from a ManaBox scan with rarity, condition, purchase price, live price, rounded listing price, and a pull stepper on each row, plus Quick Pull buttons and a TCGplayer CSV export button. The Ingest review screen: a table of cards from a ManaBox scan with rarity, condition, purchase price, live price, rounded listing price, and a pull stepper on each row, plus Quick Pull buttons and a TCGplayer CSV export button.

One app, three ways to use it

Built around physical cards, not just card names.

Every copy you import is tracked on its own — its printing, condition, finish (including etched), language, and what you paid — and lives in exactly one pile: Keeps, Listed, Deck, or Sold.

For players

Bring decks over from Moxfield, Arena, MTGO, or Archidekt, or build them from the copies already in your collection.

  • Format checking for Commander, Standard, Modern, Pauper, and more New
  • Sideboard, companion, and maybeboard; export to Arena, MTGO, and Moxfield New
  • A changelog of every card added to or removed from a deck
  • AI Deck Advisor suggests adds from your own Keeps, with the AI you choose
  • Share a decklist with mana curve and color charts

For collectors

Import from the apps you already use and browse everything as a card grid or a detailed list.

  • Imports from ManaBox, TCGplayer, Dragon Shield, Deckbox, and Moxfield CSVs
  • Group by type, set, rarity, or color; filter by finish or language
  • Etched foils and non-English cards tracked as their own copies New
  • Binders that organize cards without moving them out of their pile
  • Storage boxes with a numbered slot for every chaos-sorted copy New
  • Card data, images, and prices from Scryfall

For sellers

Go from a scanned box to TCGplayer and Mana Pool listings, then reconcile what sold.

  • Pull keepers by rarity or price in one click
  • Price floors, live-price basis, and rounding to the next $0.25
  • TCGplayer uploads with exact quantities, so re-uploading never doubles a count New
  • Split stock with Mana Pool: push listings, fetch orders, mark shipped New
  • Packing-slip import marks cards sold and tracks revenue, fees, and net New
  • Location-sorted pull lists, and optional shipping labels through TCGTracking New

For sellers

From freshly cracked to orders packed.

Magical Piles keeps the physical copy connected to its listing, on TCGplayer or Mana Pool, so when an order comes in you know exactly which cards left the building.

  1. Ingest

    Drop in a ManaBox scan (or another collection CSV). Pull the cards you want to keep — all mythics, everything over a price, or one at a time.

    Ingest → Import File
  2. List New

    Price everything you didn’t pull, then upload exact quantities to TCGplayer (SKU IDs looked up for you) or move copies to Mana Pool and push them there.

    Listings → Upload to TCGplayer… / Mana Pool…
  3. File into boxes New

    Chaos-file the batch into a box as you finalize. Every copy gets a slot like BOX-7 · 2 · #147, rolling over to the next row when one is full.

    Ingest → File new cards into
  4. Orders New

    Drag TCGplayer packing-slip PDFs onto the Sales section, or fetch Mana Pool orders. Each item is matched to a copy listed on that marketplace by name, set, number, condition, finish, and language.

    Sales → Import Packing Slips… / Check for New Orders
  5. Pull list New

    Print the matched copies sorted by box, row, and slot, so you walk each box once and pull every card on the orders.

    Review Packing Slips → Pull List…
  6. Sold New

    Review each match’s confidence, change or skip any that look wrong, and mark the order sold. Cards move to Sold, their slots are freed, and the order is saved with sale prices, revenue, fees (estimated for TCGplayer, actual for Mana Pool), and net where cost is known.

    Sales → Mark as Sold
  7. Ship New

    Optional: labels through TCGTracking (free hand-off or its paid API), with tracking in Sales. For Mana Pool orders, Mark Shipped sends the tracking number to Mana Pool.

    Sales → Mark Shipped…
The Listings section showing cards in the Listed pile as a grid of card images grouped by set, with the total card count and live value in the toolbar. The Listings section showing cards in the Listed pile as a grid of card images grouped by set, with the total card count and live value in the toolbar.
Listings: your Listed pile, grouped by set, rarity, or color.
The Review Packing Slips sheet in the Sales section: each copy on a TCGplayer order matched to a card from the Listed pile, with an Exact, Probable, or Ambiguous confidence badge, the sale price, and a menu to pick a different copy or skip it. The Review Packing Slips sheet in the Sales section: each copy on a TCGplayer order matched to a card from the Listed pile, with an Exact, Probable, or Ambiguous confidence badge, the sale price, and a menu to pick a different copy or skip it.
New: check every match before anything is marked sold.

Sales & shipping New

Every order, what it made, and where it shipped.

The Sales screen totals your orders, items, revenue, fees, and net, per marketplace: estimated TCGplayer fees, and Mana Pool’s actual fees and payout. Select an order to see each card’s sale price, cost, and the slot it was pulled from.

Finish-safe matchingA foil, etched, or foreign-language copy is never swapped in for a different one. You decide.
Pull from…Each sold card remembers the box and slot it came from.
Hand-off (free)Opens TCGTracking and shows the slip PDFs in Finder to drag in.
API (paid per label)Labels created and printed for you, with tracking status, reprint, and retry.

Shipping uses TCGTracking, and Mana Pool selling uses Mana Pool’s seller API; both are separate services Magical Piles isn’t affiliated with, and you need your own accounts. Buyer addresses go only into the label request and aren’t saved in the app’s database.

The Sales screen: a summary bar with orders, items, revenue, estimated fees, and estimated net; a table of recorded orders with a shipping column; and the selected order's cards with sale price, cost, and the storage slot each was pulled from. The Sales screen: a summary bar with orders, items, revenue, estimated fees, and estimated net; a table of recorded orders with a shipping column; and the selected order's cards with sale price, cost, and the storage slot each was pulled from.

Upload the same file twice? Nothing happens. TCGplayer uploads and Mana Pool pushes set exact quantities, so sending one again changes nothing, and each copy is listed on only one marketplace, so it can’t sell twice. Orders are recognized by order number, so importing the same packing slip twice won’t record it twice. And if something went wrong, an order can be reverted: its cards go back to the pile they came from.

Storage & chaos sorting New Collector

Know which box every card is in.

Add your boxes, bins, binders, drawers, shelves, and deck boxes. File cards in whatever order they arrive and each copy gets a numbered slot, so you can find it again without ever alphabetizing a box. For collectors, it’s where the card is. For sellers, it’s how an order gets pulled in one pass.

Codes you can readBOX-7 · 2 · #147 is box 7, row 2, slot 147. Deck boxes can go by name: Deckbox "Atraxa".
Rollover & gapsA full row rolls over to the next. Removed cards leave gaps you can refill, or compact away.
Pull listsAny set of cards, sorted by box, row, and slot. Print it as a checklist or copy it as text.
File as you importPick a box when you finalize an ingest and the whole batch is filed in list order.
The Storage section: a tree of boxes, binders, and deck boxes on the left with card counts and values, and the selected box's cards on the right in slot order with their location codes. The Storage section: a tree of boxes, binders, and deck boxes on the left with card counts and values, and the selected box's cards on the right in slot order with their location codes.
New: every copy has a place, and a number.

Cards leave their slot when they leave the box. Adding a copy to a deck or selling it frees its slot automatically. The Binders section is still there for lists you want to share; a storage location of kind Binder is the physical binder, with pages and pockets.

Keeps & binders

See your collection the way you sort it.

Keeps is everything you’ve decided to hold on to. Flip between a card-image grid and a list with a large preview, group by type, set, rarity, or color, and search by card or set name. Foils get a shimmer.

Every copy is its own recordEdit condition, foil, purchase price, market price, and notes on any single copy.
Binders that don’t move cardsAdd a card to a binder from Keeps or Listings and it stays in its pile.
Five ways inManaBox, TCGplayer, Dragon Shield, Deckbox, and Moxfield collection CSVs.
Or type itPaste a plain-text list, or search Scryfall and pick the exact printing.
The Keeps section in grid view: card images grouped under Creatures, Instants, and other type headings, with copy counts on cards you own more than one of. The Keeps section in grid view: card images grouped under Creatures, Instants, and other type headings, with copy counts on cards you own more than one of.

Binders

Trade binders, showcase binders, “cards for Dave” binders.

Make as many binders as you like and fill them from Keeps or Listings with a right-click. Each binder has its own card count, value, grid and list views — and can be shared as a web page.

A binder open in the Binders section, showing the binder list on the left and the binder's cards as a grid on the right with card count and total value. A binder open in the Binders section, showing the binder list on the left and the binder's cards as a grid on the right with card count and total value.

For players

Decks made of cards you can hold.

Every card in a deck is a specific physical copy. Add one from Keeps and it moves into the Deck pile; take it out and it goes back.

Formats, checked NewCommander, Standard, Pioneer, Modern, Legacy, Vintage, Pauper, Premodern, and Limited. A badge says Legal or lists the problems, with legality from Scryfall. Free on every plan.
Import your way NewPaste from Moxfield, Arena, or MTGO, open a .dek, or give an Archidekt URL. Keep just the list, use the copies you own (it shows what’s owned and missing), or add new ones.
Every zone NewCommander, companion, sideboard, and a maybeboard that doesn’t count. Fill missing cards from your collection later.
Export anywhere NewCopy or save for Arena, MTGO (.txt or .dek), Moxfield, or plain text.
Commander-awarePromote any card to commander, move it back to the 99, and see which cards are outside the commander’s color identity.
ChangelogEach add and removal is logged with a time, so you can see how the deck changed.
A Commander deck in list view: the commander's card image on the left, the decklist grouped by card type on the right with set, rarity, condition, and price columns, and the deck changelog at the bottom. A Commander deck in list view: the commander's card image on the left, the decklist grouped by card type on the right with set, rarity, condition, and price columns, and the deck changelog at the bottom.

AI Deck Advisor

“What in my binder belongs in this deck?”

The Deck Advisor looks through your Keeps, filters to cards that fit your commander’s color identity and aren’t already in the deck, and asks the AI you choose to rank the ten best adds — using EDHREC synergy data for your commander when it’s available. Each pick comes with a short reason and an Add to Deck button.

Optional. Pick a provider: Anthropic Claude, OpenAI, xAI Grok, Google Gemini, OpenRouter, Mistral, or DeepSeek with your own API key (kept in your Mac’s Keychain); a local model in Ollama or LM Studio; or Apple Intelligence on your Mac, where nothing is sent anywhere. New

Not into AI? Turn off Show AI features in Settings and the advisor disappears from the app entirely — no button, and nothing sent to any AI service.

The AI Deck Advisor sheet: a ranked list of ten recommended cards from the user's Keeps, each with a one- or two-sentence reason and an Add to Deck button, and a card image preview. The AI Deck Advisor sheet: a ranked list of ten recommended cards from the user's Keeps, each with a one- or two-sentence reason and an Add to Deck button, and a card image preview.

Sharing

A link for every deck and binder.

Sign in with Apple, press Share, and your deck or binder gets a public page on magicalpiles.com. Deck pages show the commander, card images or a list, prices, and charts for mana curve, color distribution, and card types.

Update in placeShare again after changes and the same link is updated.
Take it down anytimeMy Shares lists everything you’ve shared, with copy-link and remove buttons.
A profile pageOne link that lists all of your shared decks and binders.
Private by defaultYour collection stays on your Mac. Only what you share is uploaded.
A shared deck page on magicalpiles.com in a web browser: commander image and deck name at the top, mana curve, color distribution, and card type charts, and the decklist shown as card images grouped by type. A shared deck page on magicalpiles.com in a web browser: commander image and deck name at the top, mana curve, color distribution, and card type charts, and the decklist shown as card images grouped by type.

Pricing

Pay once. No subscription.

Start free. Unlock more with a one-time upgrade in the Mac App Store, and try each upgrade free for 14 days first. Export All Data stays free, whatever you choose.

Launch pricing: 30% off the Collector and Seller upgrades for a limited time.

Casual Player

Free

Ingest and every import format, Keeps, Listings, Binders, sharing, and up to 3 decks with every format.

Hardcore Player & Collector

Regular price $24.99Launch price $17.49$24.99one-time

Unlimited decks, Storage & chaos sorting, and the AI Deck Advisor.

Compare plans → Prices in US dollars, set in the Mac App Store; local currency, rounding, and taxes vary.

FAQ

Questions, answered.

Is my collection uploaded anywhere?

No. Your cards, decks, binders, storage locations, and sales are stored in a local database on your Mac, which is backed up automatically before app updates change it. The only things sent to magicalpiles.com are decks and binders you explicitly share. Card data, images, and prices are fetched from Scryfall. If you connect Mana Pool, the copies you list there and your tracking numbers are sent to Mana Pool. If you turn on TCGTracking’s API mode, each sold order’s buyer name, shipping address, and items are sent to TCGTracking to make the label. See the privacy policy.

Which apps can I import from?

Collection CSVs from ManaBox, TCGplayer, Dragon Shield, Deckbox, and Moxfield are detected automatically. You can also paste a plain-text card list or search for single cards. Decks can be imported from Moxfield, Arena, or MTGO lists, an MTGO .dek file, or an Archidekt deck URL.

Does it connect to my TCGplayer account?

No. Magical Piles works with files: it saves an inventory CSV in TCGplayer’s format for you to upload, with exact quantities so uploading it again never doubles a count, and it reads the packing-slip PDFs you download from TCGplayer. It never signs in to TCGplayer. TCGplayer fees in Sales are estimates based on rates you can edit in Settings.

Does it work with Mana Pool?

Yes, with the Seller upgrade. Add your Mana Pool email and access token in Settings, choose which copies to list on Mana Pool (each copy is on one marketplace at a time), and push quantities and prices. Sales can check for new Mana Pool orders, record them with Mana Pool’s actual fees, and send tracking numbers back with Mark Shipped. No API access? Save a CSV and import it on Mana Pool. Magical Piles isn’t affiliated with Mana Pool.

Where do the SKU IDs in the export come from?

From a SKU database bundled with the app. Each card is matched by its exact printing, finish, condition, and language (falling back to set and collector number), so the lookup works without a network connection. Cards it can’t match, including etched and non-English copies for now, are listed for you to add by hand on TCGplayer.

What is TCGTracking, and do I need it?

TCGTracking (tcgtracking.com) is a separate shipping-label and tracking service for card sellers. Magical Piles isn’t affiliated with it, and shipping is off by default. Hand-off mode is free: it opens TCGTracking and shows your packing slips in Finder to drag in. API mode makes and prints labels for you; TCGTracking charges a per-label fee after your first 100 API orders and needs a payment method on file. Your TCGTracking credentials are kept in your Mac’s Keychain.

What is chaos sorting?

Instead of keeping a box alphabetized, you add cards in whatever order they come and Magical Piles gives each copy a numbered slot, like BOX-7 · 2 · #147. To find a card, look up its slot; to pull an order, print a pull list sorted by box, row, and slot. Boxes can also be marked Sorted or Unsorted if you’d rather not number them.

Do I need the AI Deck Advisor?

No, it’s optional. To use it, pick an AI provider in Settings: a cloud provider (Anthropic, OpenAI, xAI, Google, OpenRouter, Mistral, or DeepSeek) with your own API key, kept in your Mac’s Keychain and sent only to that provider; a local model in Ollama or LM Studio; or Apple Intelligence, which runs on your Mac and sends nothing. Each request sends your deck list and the eligible card names from your Keeps (with types and mana values).

Can I turn AI off completely?

Yes. In Settings, switch off Show AI features. The AI Deck Advisor button disappears from every deck, the AI settings are hidden, and nothing is sent to any AI service. Your provider choice and keys are kept, so you can turn it back on anytime.

Do I need an account?

Only for sharing. Sign in with Apple is used to own and manage your shared links; Magical Piles doesn’t ask Apple for your name or email.

Where are prices from?

Live prices come from Scryfall (the foil price for foil copies, the etched price for etched ones). Purchase prices come from your import file or what you enter. When exporting to TCGplayer you choose whether to price from purchase price, live price, or the higher of the two, with a floor you set.

Put your cards in piles.

Magical Piles is a native app for macOS.

Read the docs →