#DHSeaDev — Chrome MV3 — Side Panel Extension

MTG Cart Companion

MTG Cart Companion is a Chrome extension that turns any card name on any web page into a Magic: The Gathering deck list, then hands that list to a marketplace in one step. Read a decklist on Reddit, right-click the names, and check out — without retyping anything.

GET IT ON CHROME →

Available now on the Chrome Web Store. Free, no account, and it works on any page.

How it works

Select a card name anywhere — a forum post, an article, a video description — and right-click to add it. The side panel holds what you have collected, with art, set, printing and an estimated price. When you are done, one button copies everything in TCGplayer Mass Entry format and opens the page so you paste once.

Partial names are handled properly. Selecting “Bolt” matches 41 real printings, and rather than guessing, the extension shows the actual art so you pick the one you meant. That same picture-first search runs from the panel: a few letters, a grid of printings, one click.

Works off-site

Every other tool of this kind decorates a marketplace page. This one runs where the lists actually live.

Pictures, not spelling

Browse and pick by card art. Click anything to enlarge it and read the rules text.

Whole-page import

Scan a page and pull an entire list in one pass, with per-line reporting for anything unmatched.

Yours to move

Export to Mass Entry, Moxfield, Archidekt, MTG Arena, plain text or CSV. Share by link or file.

Built on measurements, not assumptions

Two examples of why this took the shape it did.

“It didn’t find the card.” Scryfall’s lookup returns the same 404 for “no such card” and for “too many matches” — the only difference is prose in the response body. Collapsing both into “not found” meant that selecting Bolt (41 matches), Jace (28), Ring (620) or Force (119) all reported the card did not exist. The fix was to separate the two states and turn the ambiguous one into a picker, which is also the nicer answer.

Sharing without a server. A shared list travels inside the URL fragment, which browsers never transmit. A real 100-card Commander deck compresses to a 1,291-character fragment — measured before the feature was written, not after. That is why there is no account and no database.


Privacy

Plain version: it talks to one place, stores nothing off your machine, and has no way to identify you.

WhatAnswer
Accounts or sign-inNone. There is nothing to sign into.
Analytics or telemetryNone. No events, no page views, no crash reporting, no third-party scripts.
Network requestsOne host: api.scryfall.com, for card names, printings, prices and legality. Card images load from Scryfall’s image servers.
Where your lists livechrome.storage.local — this browser only. Nothing syncs to a Google account or to any server.
Browsing historyNever read or stored. When you ask to scan a page, the site’s origin is used to request permission for that one site and is not retained.
Page contentA scan runs only when you start it. It reads the page in memory, keeps the card names, and discards the rest.
Share linksThe list is encoded in the URL fragment, which browsers do not send to servers. A shared link is never uploaded or written to a web log — not even ours.
Remote codeNone. No eval, no remotely-hosted scripts, no CDN, no remote fonts. Everything executable ships inside the package.
Selling or sharing dataThere is no data to sell. Nothing is transferred to anyone, for any purpose.
Deleting your dataRemove the extension, or clear its storage from chrome://extensions. Export first if you want to keep anything.
Permissions, and exactly why each one exists
PermissionWhy
storageSaves your lists, theme and settings in this browser.
contextMenusAdds the right-click entries.
sidePanelThe panel itself.
activeTab + scriptingUsed only when you ask to scan a page, to read that one tab at that moment.
host: api.scryfall.comThe only server contacted. Without it nothing resolves.
Optional page accessNot granted at install. Requested per-site the first time you scan, and revocable any time in chrome://extensions.

Removed rather than justified: an earlier build declared clipboardWrite. A pre-submission audit found zero uses of it, so it was deleted from the manifest. An unused permission is a liability, not a convenience.

Questions about any of this: dhseadev@gmail.com


Credits

Card data and imagery from Scryfall. Magic: The Gathering is © Wizards of the Coast. This is an unofficial tool and is not affiliated with, endorsed by, or sponsored by Wizards of the Coast or TCGplayer.

Built by #DHSeaDev — dhseadev@gmail.com