How sirdiabo/githublauncher works
Github Launcher is a desktop and command-line application for managing GitHub-hosted apps. Users browse a configured app library, check release status, download or update an app, then launch it; the launcher also supports uninstalling apps and updating itself. The GUI adds settings, app visibility and presentation controls, gamepad navigation, and desktop or Steam shortcuts. The README documents GitHub release integration and an editable apps.json catalog. Some links are omitted because excerpts are partial; the Core library’s internal behavior is not sampled.
Main entry points: GameInfo.cs App lifecycle · GameManager.cs App catalog manager · MainWindow.axaml.cs Library interface · CLIHandler.cs CLI commands
Components 18
User entry points
- Application entry
Program.cs - Library interface
MainWindow.axaml.cs - Gamepad navigation
Services/InputService.cs - CLI commands
Services/CLIHandler.cs
App library
- App catalog manager
Services/GameManager.cs - App lifecycle
Models/GameInfo.cs - GitHub core library
lib/GitHubLauncher.Core - User settings
Services/AppSettings.cs - Catalog and settings files
Install and launch
- Installed apps and cache
- Shortcut integration
Services/ShortcutHelper.cs
Launcher features
- Desktop application startup
App.axaml.cs - Launcher update files
Other components
- Desktop user
- CLI user
- GitHub releases
- Launched app process
- Desktop and Steam
Connections 23
- Desktop user → Application entry: starts GUI
- CLI user → Application entry: runs command
- Application entry → Library interface: starts desktop UI
- Application entry → CLI commands: dispatches CLI
- Library interface → App catalog manager: manages library
- Library interface → User settings: loads and saves
- Library interface → Gamepad navigation: handles navigation
- CLI commands → App catalog manager: uses catalog
- App catalog manager → Catalog and settings files: reads and writes
- App catalog manager → App lifecycle: loads app entries
- App catalog manager → GitHub core library: initializes API cache
- App catalog manager → App lifecycle: checks app status
- App lifecycle → GitHub core library: uses GitHub services
- App lifecycle → GitHub releases: checks and downloads releases
- App lifecycle → Installed apps and cache: installs and caches
- App lifecycle → Launched app process: launches app
- CLI commands → App lifecycle: performs app actions
- CLI commands → GitHub releases: checks launcher release
- Library interface → Shortcut integration: creates shortcuts
- Shortcut integration → Desktop and Steam: updates shortcuts
- Desktop application startup → GitHub releases: checks and downloads updates
- Desktop application startup → User settings: reads update token
- Desktop application startup → Launcher update files: extracts and applies update