A Homebrew tap for Forge and XMage, two open-source Magic: The Gathering implementations
This tap packages Forge and XMage into macOS apps, distributed as Homebrew casks, offering a more convenient way to install, update, and run these projects than the official methods. It features:
- Forge in all three modes: Desktop, Adventure Mode, and the Adventure Editor, each installed as its own app.
- XMage client and server, as separate apps: the client always plays on a server; connect to a public server to play online, or run the bundled local server to play locally, including against the AI.
- Stable and snapshot channels: Forge ships as the latest stable release or the rolling daily snapshot; XMage ships as its regular releases.
- No Java prerequisite: each app bundles its own Java runtime, so there is nothing to install besides the cask.
Since Homebrew 6.0.0, casks from non-official taps must be explicitly trusted before Homebrew loads them. Trust this tap once:
brew trust mserajnik/magicImportant
Installing a cask by its fully-qualified name trusts only that one cask,
which is enough for XMage. Each Forge cask, however, declares
conflicts_with the other, so installing either one makes Homebrew load the
other to check the conflict, and loading a cask from an untrusted tap fails.
Trusting the whole tap once covers all three casks.
To install Forge, run:
brew install --cask mserajnik/magic/forgeThis installs three apps:
- Forge: the original desktop rules engine.
- Forge Adventure Mode: the Shandalar-style single-player mode.
- Forge Adventure Editor: the Adventure Mode content editor.
To install the daily snapshot build instead of the stable release, use:
brew install --cask mserajnik/magic/forge@snapshotNote
The two Forge casks conflict; install one or the other.
To install XMage, run:
brew install --cask mserajnik/magic/xmageThis installs two apps:
- XMage: the client. It always connects to a server: a public one to play online, or your local server (below) to play locally, including against the AI.
- XMage Server: the server, opened in a Terminal window so its log is visible and it can be stopped conveniently (by pressing Ctrl+C). Run it to play locally, including against the AI.
The stable Forge and XMage casks track their upstream releases; the Forge snapshot cask is rebuilt daily. Update with the usual:
brew update
brew upgrade --cask <cask-name>E.g., to update Forge, run:
brew upgrade --cask forgeNote
Older builds are not kept indefinitely; if you need a specific past version,
build it yourself with the scripts in build/.
- These are Apple silicon (
arm64) builds requiring macOS 11 (Big Sur) or newer; Intel Macs are not supported (GitHub's Intel macOS runners have been retired). - The apps are ad-hoc signed (no paid Apple Developer account). The cask removes the quarantine attribute on install, so they launch normally.
-
The built-in updater is disabled; update Forge with Homebrew (above) instead.
-
On first launch the app copies its game data into
~/Library/Application Support/Forgeand runs from there, so every feature, including the Adventure Editor's saving, can write. This copy is refreshed automatically when you upgrade to a new Forge version, so the first launch after an install or upgrade takes a few extra seconds. -
User data (decks, preferences, saves, downloaded card images) lives under
~/Library/Application Support/Forgeand~/Library/Caches/Forge, and is preserved across upgrades. -
Plain
brew uninstallremoves the apps but leaves the game-data copy and your user data in~/Library. To remove everything, including that data:brew uninstall --zap --cask forge
-
On first launch each app seeds its resources into its own directory under
~/Library/Application Supportand runs from there. The client downloads card images on demand; these and the card database are preserved across upgrades. -
XMage Server opens in a Terminal window. macOS asks to allow incoming network connections the first time it runs; the client connects to localhost by default.
-
The "What's new" news page no longer pops up on launch: it needs JavaFX, which the bundled runtime omits, and upstream would otherwise open it in your browser every launch. The "Show what's new" button still opens it in your browser on demand. Nothing else depends on JavaFX.
-
Plain
brew uninstallremoves the apps but leaves your data in~/Library. To remove everything, including the downloaded card images, card database, and preferences:brew uninstall --zap --cask xmage
You are welcome to help out!
Open an issue or make a pull request.
AGPL-3.0-or-later(Code)GPL-3.0-or-later(Forge source patches)MIT(XMage source patches)CC-BY-SA-4.0(Documentation and graphic assets)CC0-1.0(Configuration files)
This project follows the REUSE specification.
This is an independent, community-made Homebrew tap for the open-source Forge and XMage projects. It is not affiliated with, endorsed by, or sponsored by Wizards of the Coast LLC, and it is not an official Forge or XMage project.
Forge and XMage are both implementations of Magic: The Gathering. Magic: The Gathering, including its card data and imagery, is the property of Wizards of the Coast. The app icons are derived from the respective project's original artwork/logos. This tap is intended for private, non-commercial use only and comes with no warranty.
