A sophisticated command-line tool for launching Steam and Epic Games efficiently across multiple platforms.
- Launch Steam and Epic Games directly from the command line
- Intelligent game name matching, tolerant of typos and partial inputs
- Special handling for Mod the Spire integration with Slay the Spire
- Random roguelike game launcher
- Cross-platform support (Windows, macOS, Linux)
- List games from Steam or Epic libraries
- Python 3.6+
- Steam and/or Epic Games Launcher installed
- Java Runtime Environment (JRE) for Mod the Spire functionality
-
Clone the repository:
git clone https://github.com/[yourusername]/Games-Launcher.git cd Games-Launcher -
Install dependencies:
pip install -r requirements.txt
-
Create a
personal_config.pyfile in the GamesLauncher directory:STEAM_API_KEY = "your_steam_api_key_here" STEAM_ID = "your_steam_id_here"
To obtain your Steam API key and ID, visit:
- API Key: https://steamcommunity.com/dev/apikey
- Steam ID: https://steamid.io/
-
The launcher will automatically fetch your Steam games using the Steam API.
-
Open or create
data/lists/epic_games.jsonand add your games:{ "Game Name": "epic_game_id" } -
To find the Epic Games ID:
- Open Epic Games Launcher
- Navigate to your Library
- Right-click on the game you want to add
- Select "Create Desktop Shortcut"
- Right-click the new shortcut and select "Properties"
- In the "Target" field, locate the ID in the URL:
com.epicgames.launcher://apps/[epic_game_id]?action=launch&silent=true - Copy the
[epic_game_id]part and use it in yourepic_games.jsonfile
Example:
{ "slime rancher": "corydalis%3A1e38b618d106430db94b474abbfecc16%3ACorydalis" }
-
Edit
data/launch_options.jsonto add special launch options for games:{ "playerunknown's battlegrounds": "-KoreanRating" }
The basic syntax for using the launcher is:
python launcher.py <command> [arguments]
Available commands:
-
Launch a game:
python launcher.py <game_name>Example:
python launcher.py "Slay the Spire" -
Launch a random roguelike:
python launcher.py random -
List games:
python launcher.py list <steam|epic|all>Example:
python launcher.py list steam
Add this function to your PowerShell profile:
function game {
$pythonScript = "C:\path\to\Games-Launcher\launcher.py"
if ($args.Count -gt 0) {
python $pythonScript $args
} else {
Write-Host "Usage: game <game_name>"
Write-Host " game random"
Write-Host " game list <steam|epic|all>"
}
}Then use:
game Slay The Spire
game random
game list all
- Partial names:
game slaylaunches "Slay the Spire" - Typo-tolerant:
game hadsidentifies "Hades" - Common acronyms:
game gtavfor "Grand Theft Auto V" - Case-insensitive:
game GRAND THEFT AUTO Vworks - Multi-word titles:
game slay the spire(no quotes needed) - Mod the Spire: Automatically launches with mods if available
- Random roguelike:
game random - List games:
game list steam,game list epic, orgame list all
Note: The launcher confirms before launching if there's any ambiguity.
- Verify Steam and Epic Games Launcher installations
- Check Java installation for Mod the Spire functionality
- Ensure game paths in configuration files are correct
- If a game doesn't launch, check the corresponding JSON file to ensure the game ID is correct
Contributions are welcome. Please submit a pull request with your proposed changes.
This project is licensed under the MIT License. See the LICENSE file for details.
You can add shortcuts (aliases) for any game using the alias command:
python launcher.py alias <game_name> <shortcut>
For example, to add 'rv' as a shortcut for 'ravenswatch':
python launcher.py alias ravenswatch rv
Aliases are stored in data/alias.json and are used for fuzzy matching and quick launching.