Magic The Gathering Desktop Companion is an open-source Java application to manage your MTG collection, build decks, and analyze prices across multiple providers.
- Collection and stock management (foil/etched/condition aware)
- Deck building (constructed and sealed) with import/export tools
- Price analysis dashboards and alerts
- Embedded services (web UI, JSON HTTP server, shopping/trades/collection web servers)
- Plugin-oriented architecture for providers (cards, cache, notifications, external shops, dashboards, and more)
- Website: https://www.mtgcompanion.org/
- Releases: https://github.com/nicho92/MtgDesktopCompanion/releases
- Wiki: https://github.com/nicho92/MtgDesktopCompanion/wiki
- Issues: https://github.com/nicho92/MtgDesktopCompanion/issues
- Security policy: SECURITY.md
If you want to support hosting and ongoing development, see donation/support links on the website and in the release pages.
MTGCompanion is developped with many contributors, and is and will remain open source. Online service ( like Discord bot, Websites) are hosted on my own server, and DNS are paid on my a personnal funds.
Any help are welcome :)
- Java 23+
- Maven 3.9+
git clone https://github.com/nicho92/MtgDesktopCompanion.git
cd MtgDesktopCompanion
mvn -DskipTests clean installThen launch the packaged application from:
target/executable/bin/mtg-desktop-companion.sh(Use mtg-desktop-companion.bat on Windows.)
mvn clean install
mvn test- User guide: https://github.com/nicho92/MtgDesktopCompanion/wiki
- Developer guide: https://github.com/nicho92/MtgDesktopCompanion/wiki/Developer-Guide
src/main/java/org/magic/api: provider APIs and plugin implementationssrc/main/java/org/magic/services: core services (business logic, jobs, tools, networking)src/main/java/org/magic/servers: embedded server implementationssrc/main/java/org/magic/gui: application gui components and framessrc/main/java/org/magic/game: simulator game components and logicssrc/test/java: unit and integration tests
- Fork the repository.
- Create a feature branch.
- Run tests locally.
- Open a pull request with a clear description and reproduction steps (if bug fix).
























