A Terminal User Interface (TUI) application for tracking Magic: The Gathering card prices using the Scryfall API.
- 🔍 Card Search: Search for MTG cards by name with fuzzy matching
- 📋 Watchlist: Maintain a list of cards you want to track
- 💰 Price Tracking: Automatically check and update prices from Scryfall
- 📊 Price History: Track price changes over time and see what changed since last app start
- 💾 Local Storage: All data stored locally in SQLite database
The main interface showing the watchlist on the left, search results on the right, and price change log at the bottom
Download the latest release for your platform from the Releases page:
- Linux: Download
mtg_price_tracker-linux, make it executable, and run - Windows: Download
mtg_price_tracker-windows.exeand run
No Python installation required!
- Make sure you have Python 3.8+ installed
- Install dependencies:
pip install -r requirements.txtRun the application:
python3 main.py- Search: Type a card name in the search box and press Enter or click "Search"
- Add to Watchlist: Select a card from search results and click "Add to Watchlist"
- Delete from Watchlist: Select a card in the watchlist and press
D - Refresh Prices: Press
Rto manually refresh all prices - Quit: Press
Qto exit the application
- Narrow searches (e.g., "Hullbreacher"): Shows the specific card
- Broad searches (e.g., "Teferi"): Shows up to 10 matching cards
- Prices are checked automatically when the app starts
- The log shows which cards have changed price since the last time you ran the app
- Prices display in USD (or EUR if USD not available)
- Price changes show percentage and direction (↑/↓)
- Add any card from search results
- View current price, set, and last update time
- Remove cards you no longer want to track
mtg_price_tracker/
├── main.py # Application entry point
├── requirements.txt # Python dependencies
├── README.md # This file
├── data/
│ └── cards.db # SQLite database (created automatically)
├── api/
│ ├── __init__.py
│ └── scryfall.py # Scryfall API integration
├── database/
│ ├── __init__.py
│ └── db.py # Database operations
├── ui/
│ ├── __init__.py
│ └── app.py # Textual UI application
└── utils/
├── __init__.py
└── price_checker.py # Price checking logic
The app uses SQLite to store:
- Watchlist: Cards you're tracking with current prices
- Price History: Historical price data for each card
- App Metadata: Last price check time
Database file is created automatically at data/cards.db.
This app uses the Scryfall API to fetch card data and prices. The API is free and does not require authentication.
This project is for personal use. Magic: The Gathering is © Wizards of the Coast.