Pokémon Collection Builder — a local collection manager for the Pokémon TCG. This project is a fork of an MTG-focused tool adapted to use Pokémon TCG data sources and card models.
Features
- Browse sets and rapidly add cards to your collection
- Import collections from CSV exports (DeckBox-style or generic CSV)
- Bulk cache for fast imports using the official Pokémon TCG data or API
- Export collection to CSV (DeckBox format or PokéTCG-style CSV)
Data sources
- Bulk offline data: https://github.com/PokemonTCG/pokemon-tcg-data — clone or download releases to seed the local cache.
- API (online): Pokémon TCG API v2 — https://docs.pokemontcg.io/ — register for an API key at https://dev.pokemontcg.io/ and set the
POKEMON_TCG_API_KEYenvironment variable for higher rate limits. - Marketplace/pricing (optional): TCGplayer or other commercial APIs (requires separate integration and credentials).
Quick start (development)
- Create a Python 3.10+ virtualenv and install dependencies:
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt- (Optional) Set your Pokémon TCG API key to speed up online queries:
export POKEMON_TCG_API_KEY="your_api_key_here"- Run the app locally:
python app.py- Open http://localhost:5000 in your browser.
Bulk data import
- To seed the local cache for fast imports, clone the
pokemon-tcg-datarepository or download a release ZIP and place the JSON files where the app can read them, or let the application download bulk data automatically (requires network access and depends on the chosen data source).
Testing
- Run unit tests with:
python -m pytest test_app.py -qNotes about migration from MTG
- This fork replaces MTG/Scryfall integrations with Pokémon TCG API and the
pokemon-tcg-datarepository. UI labels, export defaults, and tests have been updated to use Pokémon naming and data fields. The core UI and collection features remain unchanged.
Contributing
- If you want to improve data import/normalization (e.g., better mapping between CSV formats and Pokémon fields), please open an issue or a PR.