Project Wiki

Last Updated: 2026-01-20

Overview

New Launcher is a lightweight, open-source Minecraft launcher that supports Vanilla, Fabric, and Forge with a focus on speed, simplicity, and local-first privacy.

Quick Links

User Guide

1. Managing Accounts

The launcher supports three types of accounts:

  • Microsoft Account: Authenticate via browser. Skins/username sync automatically.
  • Ely.by: Enter credentials. Supports automatic skin injection.
  • Offline: Enter username. Supports local skin files via settings.

2. Creating Installations

Navigate to the Installations tab to manage versions.

  • Create New: Click "+" button.
  • Loader: Choose Vanilla, Fabric, or Forge (auto-installed).
  • Icon: Select a Minecraft block or custom image.

3. Settings & Customization

  • RAM: Adjust slider for memory allocation.
  • Wallpapers: Choose pre-loaded or custom images from wallpapers/.
  • Rich Presence: Discord status integration.

Developer Documentation

Refactored (v1.4) structure:

  • alt.py: Main entry point and UI.
  • auth.py: Ely.by authentication logic.
  • handlers.py: HTTP handlers (Skin Server, Microsoft Auth).
  • utils.py: Helper functions.

Building from Source

pyinstaller alt.spec

Building for Linux (AppImage)

chmod +x linux/build_appimage.sh
./linux/build_appimage.sh

Skin System Architecture

1. Microsoft/Mojang

Standard OAuth2 flow. Game client contacts Mojang servers directly.

2. Ely.by

Uses authlib-injector to redirect auth requests to Ely.by servers.

3. Offline (Local Injection)

Allows offline skins without modifying the game JAR:

  1. Launcher starts a local HTTP server on a random port.
  2. Game is launched with authlib-injector pointing to localhost.
  3. Local server intercepts profile requests and serves a JSON profile pointing to the local skin file.
  4. Game client downloads the texture from the local server.

Contributing

Fork the repository, create a feature branch, and open a pull request. Add tests when applicable and follow the existing code style.

Support

Open an issue on the project's GitHub for bugs or feature requests.