This may or may not eventually become a stupid simple, super clean native mod manager for linux. The goal here is to keep the setup really simple for idiots like me who don't need multiple profiles and all that jazz. Just a few clicks, a clean, modern interface, and you're done :)

Warning
This project is made with the help of Gemini.
If you hate AI, that makes two of us 🙂 However, I would never have been able to make something like this without it.
- No Ads
- No Telemetry
- No User Account Requirement
- Clean & Modern UI/UX
- Beginner-friendly
- Fully open
One of the main ideas behind this project is that games are defined by easy to setup config yaml files. This means that anyone can create a simple yaml for their game and submit it to the project with little to no coding knowledge and the tool will automate the rest.
For instance:
name: 'Warhammer 40,000: Darktide'
steamappid: 1361210
mods_path: mods/
load_order_path: mods/mod_load_order.txt
essential-utilities:
darktide-mod-loader:
name: Darktide Mod Loader
creator: Talon-d
creator-link: https://github.com/talon-d
source: "https://github.com/talon-d/darktideML-4linux/releases/download/1.5/darktideML-4linux1-5.zip"
utility_path: ""
enable_command: "sh handle_darktide_mods.sh --enable"
disable_command: "sh handle_darktide_mods.sh --disable"Let's go through these line by line.
name: the name of the gamesteamappid: the steam ID of the gamemods_path: the path where mods should be deployed for this game
load_order_path: The path where a load order file would be, so that the tool can add a button to edit it directlyessential-utilities: This section is used to define some special tools that are essential to mod the game.name: the name of the toolcreator: the name of the creatorcreator-link: a link tot he creator's githubsource: a link to the actual file that needs to be downloadedutility_path: where the utility files need to be extracted to (here it is in the root of the game directory)enable_command: a command that will be run after extracting the files to the directory
Phase 1 Development Progress:
- Auto-detect Steam libraries
- Auto-detect Steam library games
- Obtain cool images for game tiles from Steam cache folder
- Display results in a super clean library-style window
- Let user choose a downloads folder location
- Create a whole new window with a cool header from Steam cache folder
- Associate app w/ nexusmods download links
- Let user navigate downloaded mods and delete downloaded mods
- Figure out how mod staging and symlinks and whatnot work because I have no idea
- Let user enable/disable mods
- Prepare "essential utilities" section in game config file that lets the community define some essential custom tools that are needed for a game to work, so that the process is easier for people who just want to mod the game (i.e. SKSE, Darktide mod loader, that kind of stuff)
- Let user launch the game directly from the interface
- Add a button to return to launcher from the main window
Phase 2 Development Progress:
- Let user skip launcher and go straight to game
- Figure out how to create a flatpak for the app
- Add language-specific strings
- Think about how to let user define load orders
- Let user define load orders
- Add support for GOG libraries / games
- ???
Phase 3 Development Progress:
- Manage conflicts (for sure this will be hard without an actual developer)
- ???
Bonus (nice to have)
- Game profiles?
- ???
The app is built with:
- Python (3.14)
- GTK
- Libadwaita
This means you should be able to run it directly on most linux distros without too many problems via the console by typing:
python3 ./launcher.py
Whilst in the path where the code is.