A Modern Async Python Library for Minecraft Launcher Development
Project description
Async MC Launcher Core 🚀
A modern async Python library for custom Minecraft launchers
This project is a fork of JakobDev/minecraft-launcher-lib.
A Python library for building custom Minecraft launchers. Supports installing, launching Minecraft, and interacting with Mojang/Microsoft accounts.
Features
- Easy installation
- Generate Minecraft launch commands
- Microsoft account login support
- Supports Forge, Fabric, Quilt, and Liteloader
- Supports alpha/beta and legacy versions
- All functions are type-annotated and documented
- PyPy support
- Full online documentation and tutorials
- Vanilla launcher profiles read/write support
- mrpack modpacks support
- All public APIs are statically typed
- Rich examples
- Open source
Installation
Install via pip:
pip install async-mc-launcher-core
Or with uv (faster install):
uv pip install async-mc-launcher-core
Microsoft Account Login Example
import logging
from launcher_core import microsoft_account
import asyncio
from launcher_core.setting import setup_logger
from launcher_core.mojang import have_minecraft
logger = setup_logger(enable_console=False, level=logging.INFO, filename="microsoft_account.log")
async def login_microsoft_account():
AZURE_APP = microsoft_account.AzureApplication()
Login = microsoft_account.Login(azure_app=AZURE_APP)
login_url = await Login.get_login_url()
print(f"Please open {login_url} in your browser and copy the URL you are redirected into the prompt below.")
code_url = input()
code = await microsoft_account.Login.extract_code_from_url(code_url)
auth_code = await Login.get_ms_token(code)
print(f"Refresh token: {auth_code['refresh_token']}")
xbl_token = await microsoft_account.Login.get_xbl_token(auth_code["access_token"])
xsts_token = await microsoft_account.Login.get_xsts_token(xbl_token["Token"])
uhs = xbl_token["DisplayClaims"]["xui"][0]["uhs"]
mc_token = await microsoft_account.Login.get_minecraft_access_token(xsts_token["Token"], uhs)
await have_minecraft(mc_token["access_token"])
login_data = {
"access_token": mc_token["access_token"],
"refresh_token": auth_code["refresh_token"],
"expires_in": auth_code["expires_in"],
"uhs": uhs,
"xsts_token": xsts_token["Token"],
"xbl_token": xbl_token["Token"]
}
return login_data["access_token"]
if __name__ == "__main__":
access_token = asyncio.run(login_microsoft_account())
print(f"Access token: {access_token}")
Documentation & More Examples
Comparison: This Fork vs. JakobDev/minecraft-launcher-lib
| Feature/Design | This Fork | JakobDev Original |
|---|---|---|
| Python Version Support | 3.10+, more complete type annotations | 3.7+, partial type annotations |
| Logging System | Built-in setup_logger, file & console output |
No built-in logging, user must implement |
| Microsoft Login Flow | Example & API fully async/await | All sync |
| Dependencies | aiofiles, aiohttp, requests, requests-mock | requests |
| Documentation | Primarily in Chinese, tailored for TW/Chinese users | English |
| Branch Strategy | main/dev auto-sync (GitHub Actions) | Single main branch |
| Others | Optimized for async/await and type annotations | Focus on broad compatibility |
Please refer to both the original and this fork to choose the version that best fits your needs!
Contributing
PRs and issues are welcome!
Acknowledgements
Thanks to tomsik68 for documenting Minecraft launcher internals.
Thanks to JakobDev for the original code (BSD-2).
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file async_mc_launcher_core-0.4.tar.gz.
File metadata
- Download URL: async_mc_launcher_core-0.4.tar.gz
- Upload date:
- Size: 66.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.21
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
49c94f112d205e33eb2f2320b89ac5aafb424cbc1143da4db341a15f458aded3
|
|
| MD5 |
ae567203600967a6c5e18fa45f4998de
|
|
| BLAKE2b-256 |
3ab8da3f82fa9e8fe1a728f40c2e57c181d27c5dc6cc823dac4e38326fd6f789
|
File details
Details for the file async_mc_launcher_core-0.4-py3-none-any.whl.
File metadata
- Download URL: async_mc_launcher_core-0.4-py3-none-any.whl
- Upload date:
- Size: 78.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.21
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fadf3a04671ea9c2c750146815fdfa0edae974a8e27de6526c346f93dad7d104
|
|
| MD5 |
96c2f9e130f6dcd3636e52406d2727c2
|
|
| BLAKE2b-256 |
bcc1c7335274b89bd0a6c5e0d823735e891e33ac57463727e69bf5308358117d
|