A macOS Minecraft launcher with instance management, version downloads, CurseForge browsing, and Microsoft account authentication
English | 简体中文
- Features
- Screenshots
- Quick Start
- Usage Guide
- Technical Stack
- Development
- Contributing
- License
- Star History
- Instance Management - Create and delete instances, stored in MMC format for Prism Launcher compatibility
- Prism Launcher Discovery - Load external Prism Launcher instances from the default instances directory
- Game Launch - Build JVM/game arguments, extract natives, and launch Minecraft (including offline launch flow)
- Java Detection - Detect installed Java runtimes and show compatibility hints
- Version Management - Fetch Mojang version metadata, cache it locally, and download versions on demand
- Microsoft Authentication - OAuth 2.0 + PKCE flow with Xbox Live and Minecraft Services support
- Offline Accounts - Local offline profiles for quick launch
- Multi-Account Management - Store multiple accounts and switch the active one
- Token Refresh - Refresh Microsoft tokens and update stored account data
- Skin and Cape Tools - Preview, activate, reset, download, and upload skins; browse and manage capes; manage a local skin library
- Mod Loader Selection - Fetch loader versions for Forge/Fabric/NeoForge/Quilt and record loader metadata in MMC packs
- CurseForge Browser - Search and browse modpacks and available files (requires a CurseForge API key)
- Proxy Support - HTTP/HTTPS/SOCKS5 proxy configuration with test and system proxy detection
- Concurrent Downloads - Multi-threaded download system with retries and SHA1 verification
- Internationalization - English and Simplified Chinese support
- Logging System - Multi-level logging with categorized output
The instance management interface provides functionality for creating and managing game instances.
Instance list view showing all created Minecraft game instances
Create new game instances through a dialog with version and optional mod loader selection.
New instance dialog for selecting game version and optional mod loader
Automatically detect installed Java runtime environments with support for multiple Java versions.
Java detection interface displaying all available Java versions
Support for multiple account management, making it easy to add, remove, and switch between accounts.
Account management interface for adding, deleting, and switching game accounts
Preview the active skin and manage account skins directly from the info panel.
Account info view with skin preview and skin actions
Browse all owned capes and manage the currently equipped cape.
Cape gallery showing available capes
Manage local skin files, import new skins, and access the skins folder.
Skin management view for local skin assets
Storage and maintenance settings for managing launcher data locations and cache.
Settings view showing storage locations and maintenance actions
Inspect the launcher's process in macOS Activity Monitor.
Launcher process shown in macOS Activity Monitor
Browse CurseForge modpacks and inspect available files/versions.
CurseForge modpack browser with search and version selection
- macOS 13.0 (Ventura) or later
- Xcode 15.0 or later
- Swift 5.9 or later
- Clone the repository:
git clone https://github.com/LemniAnvil/Launcher.git
cd Launcher- Open the project in Xcode:
open Launcher/Launcher.xcodeproj- Select the
Launcherscheme in Xcode - Press
⌘+Rto build and run - Use the toolbar buttons to open Add Instance, Account Management, Account Info, Settings, and Installed Versions windows
- Create an instance and explore the available features
- Click the "Add Instance" button on the main interface
- Enter an instance name in the dialog
- Select a Minecraft version
- Choose a mod loader (optional):
- None (Vanilla)
- Forge
- Fabric
- NeoForge
- Quilt
- Note: Mod loader selection is stored in the MMC metadata; installer download is not automated yet
- Click "Create" to complete instance creation
- Open the "Account Management" interface
- Click "Sign in with Microsoft"
- Complete Microsoft login in your browser
- Return to the launcher to finish authorization
- Account successfully added - you can see your player name and skin
- Open the "Account Management" interface
- Click "Add Offline Account"
- Enter a player name
- Click "Add" to complete
- Select an instance from the instance list to play
- Select an account from the account dropdown menu
- Click the "Launch" button
- Wait for the game to launch (first launch will automatically download required files)
- Click the "Add Instance" button
- Switch to the "CurseForge" category
- Browse or search for desired modpacks
- Select a modpack to view available files/versions
- Note: this view currently focuses on browsing; one-click import is not wired yet
If you need to use a proxy to access Minecraft servers:
- Open the "Settings" interface
- Switch to the "Network Proxy" tab
- Enable proxy and select type (HTTP/HTTPS/SOCKS5)
- Enter proxy server address and port
- Click "Test Connection" to verify the proxy
- Save settings
- Language: Swift 5.9+
- UI Framework: AppKit (Native macOS)
- Concurrency: Swift Concurrency (async/await)
- Cryptography: CryptoKit (SHA1 verification)
- Networking: URLSession with custom configuration
- Storage: FileManager, UserDefaults
- Logging: Custom multi-level logging system
- Internationalization: xcstrings catalog
- Version list fetching and caching
- Version details parsing
- Version inheritance handling
- Multi-threaded download system
- SHA1 integrity verification
- Real-time progress tracking
- Comprehensive logging system
- Version filtering by type
- Proxy support (HTTP/HTTPS/SOCKS5)
- Full internationalization (EN/ZH-CN)
- Installation status checking
- Game launch engine
- Offline UUID generation
- JVM arguments configuration
- Game arguments processing
- Native library extraction
- Classpath construction
- Platform compatibility check (macOS optimized)
- Microsoft account authentication
- OAuth 2.0 + PKCE security flow
- Xbox Live integration
- Minecraft Services authentication
- Token refresh mechanism
- Offline account support
- Account management interface
- Instance creation and deletion
- MMC format support (compatible with Prism Launcher)
- Instance list interface
- Instance detail view (read-only configuration summary)
- Game directory isolation (mods, saves, resourcepacks, etc.)
- Loader metadata for Forge/Fabric/NeoForge/Quilt
- Mod loader version listing
- CurseForge API client
- Modpack search functionality
- Modpack details retrieval
- Pagination and sorting support
- CurseForge browsing interface
- Automatic Java installation detection
- Multi-version Java detection
- Java compatibility hints (based on major version ranges)
- Java detection interface
- Auto-update functionality
- Pre-launch resource integrity check
- Custom launch argument templates
- Performance monitoring and log viewer
- Modpack download and installation
- Automatic modpack updates
- Mod browsing and search
- Individual mod install/update/uninstall
- Resource pack browsing and management
- Shader pack support
- Data pack management
- World backup and restore
- Server list management
- Quick server connect
- LAN game support
- Theme and appearance customization
- More language support
- Keyboard shortcut configuration
- Instance import/export (support more formats)
- Batch operations (batch update, batch delete, etc.)
- Instance template system
- Cloud sync support
- Plugin system
Contributions are welcome! Please feel free to submit a Pull Request.
Important Note The UI component library used in this project is not yet open source. If you would like to contribute to development, please contact me through Issues or other means.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0) - see the LICENSE file for details.









