Legendary: an Epic Games Launcher replacement that lives in your terminal
Legendary - A free and open-source replacement for the Epic Games Launcher
At a glance
- What is it?
- Legendary is a GPL-3.0 Python CLI that authenticates with Epic's service, downloads and patches your library, and syncs cloud saves on Linux, macOS and Windows. It is the right tool if you want your Epic games without the Electron launcher, and the wrong one if you need a GUI today.
- Who is it for?
- Adopt Legendary if you are comfortable with a terminal and want Epic library management on Linux, macOS or a Windows box where you would rather not run the official launcher, especially if you already use Wine for the games themselves. Skip it if you need a graphical interface for browsing a store or managing a family account, since the README states the project is currently a CLI without a GUI.
- Can I use it commercially?
- Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
- Is it still maintained?
- Yes. The repository last received commits 22 days ago.
- What is it written in?
- Mainly Python, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 30, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What Legendary replaces, and for whom
The Epic Games Launcher is a desktop application that logs into Epic's service, lists your entitlements, downloads game builds and keeps them patched. Legendary does the same jobs from a terminal. The README describes it as "an open-source game launcher that can download and install games from the Epic Games platform on Linux, macOS, and Windows," and the feature list covers authentication, downloading games and their DLC, delta patching, launching with online authentication, and cloud saves.
The audience is narrow and identifiable. If you run Linux and want your Epic purchases on the same machine, the official launcher is not an option, and Legendary is one of the few paths to your existing library. If you run Windows or macOS and simply dislike keeping a second store client resident, the same CLI works there. The pyproject.toml classifies the target as "End Users :: Desktop" and the status as "4 - Beta", which matches the README's own note that a GUI is still on the planned list rather than in the build.
It is not a store. There is no browsing, no purchasing, no wishlist. Legendary talks to the service about the account and the games that account already owns.
How authentication, downloads and delta patching actually work
Legendary is a Python package with a console entry point. The pyproject.toml declares `legendary = "legendary.cli:main"`, so the `legendary` command is a direct call into the CLI module. Its runtime dependencies are `requests`, `filelock` and `pycryptodomex`; the last of those is what handles the encryption involved in talking to Epic's endpoints, and `filelock` is what keeps two simultaneous Legendary processes from writing over each other's state.
Authentication is the first gate. The README's quickstart says to run `legendary auth`, which opens the Epic login flow. On prebuilt Windows executables of version 0.20.14 or higher, the README states this opens a window with the Epic Login. Otherwise the login page opens in your browser and you get a JSON response containing an `authorizationCode`, which you paste into the terminal. There is also an `--import` flag that pulls credentials out of an installed Epic Games Launcher, with the README warning that this logs you out of the launcher and that on Linux you may need to point it at the right WINE prefix.
Once authenticated, the client fetches your entitlements, then downloads manifests and chunks for a chosen game. The interesting part is delta patching: rather than re-downloading a build after an update, Legendary compares the installed manifest against the new one and fetches only changed chunks. That is the same mechanism the official client uses, and it is why updating a large game through Legendary does not mean pulling the whole thing again. Cloud saves are stored in a format the README says is compatible with the Epic Games Launcher, so a save written by Legendary can be picked up by the official client and vice versa. Importing and exporting installed games from and to the Epic Games Launcher is listed as a feature, with the caveat that it is unsupported for the macOS version of that launcher.
Installing Legendary from PyPI and running a first install
The README recommends the PyPI distribution if you always want the latest version, and notes that `uv pip` can substitute for `pip` in its commands. The package name on PyPI is `legendary-gl`, not `legendary`. Upgrade pip first, because the README calls out permission problems during installation as the thing that step prevents.
python -m pip install -U pip --user
pip install legendary-glOn Linux or macOS you may need `python3` instead of `python`, and on Windows `py -3`. If you want the browser-embedded login instead of copying a code by hand, install the webview extra. On Ubuntu the README's example additionally installs a GTK binding:
sudo apt install python3-gi-cairo
pip install legendary-gl[webview]The README notes that `legendary-gl[webview_gtk]` or `pywebview[gtk]` also work but may require manually installing dependencies needed to build PyGObject, that pywebview's Qt engine may not work correctly, and that pywebview is currently unsupported on macOS. If the `legendary` executable does not appear after installation, the README points at `PATH` and gives this fix:
echo 'export PATH=$PATH:~/.local/bin' >> ~/.profile && source ~/.profileWith the command available, log in and list what your account owns. The first listing can take a while depending on library size, according to the README.
legendary auth
legendary listInstallation takes the game's name or app name as an argument. The README's own example is `legendary install Anemone`. In PowerShell with the standalone executable you may need `.\legendary` instead of `legendary`.
Where Legendary stops being the right tool
The README is direct about the biggest one: "Legendary is currently a CLI (command-line interface) application without a graphical user interface, it has to be run from a terminal." A GUI appears under Planned, not under Features. Anyone who wants to browse a store, see cover art, or hand a controller-friendly interface to a family member is looking at the wrong project right now.
Platform requirements rule out a second group. Python 3.10 or newer, 64-bit only, and 32-bit operating systems are not supported. On Windows, the README notes that `pythonnet` is not yet compatible with Python 3.14 and later. The prebuilt Linux and macOS binaries are built with PyInstaller and need glibc 2.25 or newer, so the README explicitly rules out Ubuntu 16.04 and Debian stretch. macOS support starts at 12.0 and Windows at 8.1.
Running the games is a separate problem from installing them. The README states that running Windows applications on Linux or macOS requires Wine, and launching with online authentication is a listed feature rather than a default, which matters for multiplayer and DRM-protected titles. A Linux user who installs Legendary and expects games to start without Wine configured will be disappointed, and that is not a Legendary bug.
Package manager installs are a third caveat. Arch, Fedora, openSUSE and Gentoo packages exist, but the README warns they are maintained by third parties and may lag behind the latest version. If you need the newest fixes, the PyPI route is what the project itself points to.
Legendary against Heroic and against the official launcher
The obvious alternative for a Linux desktop is Heroic Games Launcher, which wraps the same class of functionality behind a graphical interface. The difference in approach is architectural rather than cosmetic: Legendary is the engine you drive from a shell, and a GUI front end sits on top of a CLI. If your workflow is scripts, remote machines, a headless box, or a terminal you already live in, that is an advantage, because every action is a command you can put in a shell script or a systemd unit. If your workflow is clicking a tile and pressing Play, it is a disadvantage, and no amount of feature parity fixes it.
The other alternative is the official Epic Games Launcher itself. It is the reference implementation: it handles purchases, friends, and the store, and it is the thing Legendary's `--import` flag borrows credentials from and its cloud save format is compatible with. What it does not offer is a Linux build or a scriptable interface. Legendary trades the store and the GUI for portability and a command line, and the README's feature list is honest about that trade.
Maintenance, licensing and what upgrading costs you
The repository is not archived, and the last push was on 2026-09-08. Release 0.21.1, tagged "Lowlife (hotfix)", landed the same day, following 0.21.0 on 2026-08-04. The gap before that is worth noticing: the previous release, 0.20.34 "Direct Intervention", is dated 2023-12-08. That is a long quiet stretch followed by a burst of activity, so the project's cadence is not something to assume. The pyproject.toml still marks the development status as "4 - Beta" and the version is 0.21.1, so semver-style stability promises are not on offer.
Upgrade cost is low in the normal case. The runtime dependency set is three packages (`requests`, `filelock`, `pycryptodomex`), the interpreter floor is Python 3.10, and the PyPI path is a single `pip install legendary-gl`. The friction lives at the edges: third-party distro packages lag, the webview extra drags in GTK or Qt bindings that can fail to build, and Windows users on Python 3.14 hit the `pythonnet` limitation. None of that is a migration problem, but it is a reason to prefer PyPI over a distro package if you want the version the README describes.
The licence is GPL-3.0-or-later, stated in the README and in the pyproject.toml `license` field, with `LICENSE` listed under `license-files`. For an end user running the CLI, that is unremarkable. It matters if you intend to embed Legendary in another product or ship a modified binary, because the copyleft terms travel with the code. That is a description of the licence, not legal advice; read the LICENSE file and talk to someone qualified if you plan to redistribute.
Editorial conclusion
Adopt Legendary if you are comfortable with a terminal and want Epic library management on Linux, macOS or a Windows box where you would rather not run the official launcher, especially if you already use Wine for the games themselves. Skip it if you need a graphical interface for browsing a store or managing a family account, since the README states the project is currently a CLI without a GUI. Before you commit, install it from PyPI, run legendary auth, confirm legendary list returns your library, and check the wiki page on available Linux packages to see whether your distribution's package is current or behind the release you want.
Frequently asked questions
What is Legendary and what does it replace?
Legendary is an open-source game launcher that downloads and installs games from the Epic Games platform on Linux, macOS and Windows. It replaces the Epic Games Launcher for library management, patching and cloud saves, but it is a command-line tool without a graphical interface.
How do I install Legendary on Linux?
The README recommends the PyPI distribution: upgrade pip with `python -m pip install -U pip --user`, then run `pip install legendary-gl`. Arch, Fedora, openSUSE and Gentoo packages also exist, but the README warns they are maintained by third parties and may lag behind the latest version.
Does Legendary work on Windows and macOS?
Yes. The README lists Linux, Windows 8.1 or newer and macOS 12.0 or newer, all 64-bit, with Python 3.10 or newer. Prebuilt standalone binaries for all three are published on the releases page.
How do I log in to Epic through Legendary?
Run `legendary auth`. On prebuilt Windows executables of version 0.20.14 or higher the README says this opens a window with the Epic Login; otherwise the login page opens in your browser and you copy the `authorizationCode` from the JSON response into the terminal. The `--import` flag can instead import credentials from an installed Epic Games Launcher, which the README notes will log you out of that launcher.
Does Legendary have a graphical user interface?
No. The README states that Legendary is currently a CLI application without a graphical user interface and has to be run from a terminal. A simple GUI for managing and launching games is listed under Planned, not under Features.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/legendary-gl-legendary)