explaingit

hmcl-dev/hmcl

9,234JavaAudience · developerComplexity · 3/5LicenseSetup · moderate

TLDR

A desktop Minecraft launcher written in Java that gives players more control than the official one, with mod management, modpack creation, and multi-version switching built in.

Mindmap

mindmap
  root((HMCL))
    What it does
      Launch Minecraft
      Manage mods
      Create modpacks
      Switch versions
    Plugin system
      Event-based API
      Plugin folder loading
      Java extensions
    Tech stack
      Java
      GPL v3
    Audience
      Minecraft players
      Java developers
      Mod creators
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Build a Java plugin that listens for game-launch or login events and triggers custom actions.

USE CASE 2

Package and share a curated set of Minecraft mods as a distributable modpack via HMCL.

USE CASE 3

Automatically install Forge or OptiFine so a mod-ready Minecraft setup is ready in one click.

USE CASE 4

Manage multiple Minecraft versions and switch between them without reinstalling the game.

Tech stack

Java

Getting it running

Difficulty · moderate Time to first run · 30min

Requires a Java runtime, building from source needs Gradle and a Java development environment.

Can use, modify, and distribute freely as long as derivative works are also released as open source under GPL v3.

In plain English

HMCL, short for Hello Minecraft! Launcher, is a desktop application for launching Minecraft. It is written in Java and runs across different operating systems. The launcher is designed for players who want more control over their Minecraft setup than the official Mojang launcher provides. It supports mod management, letting players install and organize modifications that change or extend the game. It can automatically install widely used modding tools like Forge, LiteLoader, and OptiFine, which are frameworks many Minecraft mods depend on. The launcher also supports creating and sharing modpacks, which are pre-assembled bundles of multiple mods packaged together for easy distribution. Players can customize the look of both the game and the launcher interface. The launcher handles Minecraft authentication and manages multiple game versions, so players can switch between different Minecraft versions without reinstalling anything. That version management is one of the more practical reasons people use third-party launchers over the default one. The README is primarily aimed at developers who want to contribute code rather than end users. It describes the code package structure and an API for building plugins that extend the launcher. The plugin system is event-based: third-party code can listen for events such as a game launching, a login completing, or a version loading, and respond to them programmatically. Plugins are loaded from a folder automatically when the launcher starts. The project is open source under the GPL v3 license.

Copy-paste prompts

Prompt 1
Write a Java plugin for HMCL that listens for the game-launch event and logs a timestamp to a file each time Minecraft starts.
Prompt 2
How do I create a Minecraft modpack in HMCL and export it so a friend can import it with one click?
Prompt 3
Generate a HMCL plugin skeleton in Java that subscribes to the version-load event and checks for a minimum required Forge version.
Prompt 4
What events does the HMCL plugin API expose and how do I register an event listener in Java?
Prompt 5
Write a HMCL plugin that displays a toast notification when a new Minecraft release is detected during launcher startup.
Open on GitHub → Explain another repo

← hmcl-dev on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.