A CLI tool for creating and managing Minecraft modpacks
Project description
Modpack Manager (mpm)
An interactive CLI tool for creating and managing Minecraft (Java Edition) modpacks via the Modrinth platform.
Features
- Create & Manage Modpacks with custom names, versions, and Minecraft versions
- Multiple Loader Support: Fabric, Forge, Quilt, and NeoForge
- Auto Loader Version Detection for all supported loaders
- Mod Management: Add, remove, list mods with required/optional status
- Import/Export: Import from modrinth.index.json or export your own format
- Build & Archive: Generate modrinth.index.json with automatic build archiving
- Version Management: Update modpack and mod versions
- Smart Updates: Check for mod updates with selective update options
- Direct CLI Mode: All commands support non-interactive flags for scripting
- Auto Minecraft Version Detection: Fetches latest MC version from Modrinth API automatically
- Auto Dependency Resolution: Optional automatic dependency installation when adding mods
- API Caching: Reduces redundant Modrinth API calls
Installation
From PyPI (Recommended)
pip install mcmpm
From GitHub
pip install git+https://github.com/AhmedShah29/MP-Manager.git
From Source
git clone https://github.com/AhmedShah29/MP-Manager.git
cd MP-Manager
pip install .
Usage
Interactive Mode
mpm
Direct CLI Mode
# Create modpack non-interactively (auto-detects latest MC version)
mpm -n --name "MyPack" --loader fabric --mc-version 26.1.2
# Add mod
mpm -am AANobbMI --t # required mod
mpm -am AANobbMI --f # optional mod
# Open, build, list
mpm -omp "MyPack"
mpm -mpb
mpm -lmp
# Show help
mpm -help
mpm --help
mpm -h
Commands
| Command | Description | Direct Flags |
|---|---|---|
-n |
Create new modpack | --name, --loader, --mc-version, --loader-version |
-imp |
Import from app export | (interactive) |
-imp-mr |
Import from modrinth.index.json | (interactive) |
-mpe |
Export modpack to JSON | (interactive) |
-omp <name> |
Open modpack | name positional arg |
-emp |
Deactivate modpack | — |
-am [id] |
Add mod | --t (required), --f (optional) |
-rm |
Remove mod (interactive) | — |
-rmp |
Remove modpack completely | — |
-lmp |
List modpacks | — |
-lm |
List mods | — |
-mpi |
Show modpack info | — |
-mpb |
Build modrinth.index.json | — |
-mpvc |
Change version & update mods | — |
-mu |
Check and apply updates | — |
-help, -h, --help |
Show all commands | — |
File Structure
# Config (platform-specific)
# Linux/macOS: ~/.config/mpm/config.json
# Windows: %LOCALAPPDATA%\Modpack Manager\mpm\config.json
{storage_path}/
└── {modpack}/
├── modpack.json # Main data file
├── build/
│ └── modrinth.index.json # Export file
└── build_archive/
└── build_YYYYMMDD_HHMMSS/
├── modrinth.index.json
└── modpack.json # Backup of app data
Key Features
Smart Build System
- Mods with complete metadata are included in
modrinth.index.json - Mods with missing data stay in
modpack.jsonbut are excluded from build - Clear reporting of included/excluded mods
Archive System
When archiving old builds, both files are saved:
modrinth.index.json- The Modrinth-compatible exportmodpack.json- Complete app data backup- Auto-cleanup: Only the 10 most recent archives are kept
Update Handling
-mpvc: Change MC version with option to keep unsupported mods-mu: Check for updates within same MC version- Selective updates: choose specific mods or update all
- Loader compatibility check: Verifies loader exists for new MC version before updating
Environment Variables
| Variable | Purpose |
|---|---|
MPM_STORAGE_PATH |
Override the modpack storage path (stored in config) |
Requirements
- Python 3.8+
requests(auto-installed)platformdirs(auto-installed)
Development
pip install -r requirements.txt
python -m unittest test_mpm -v
Package Structure
mpm/
├── __init__.py # Package init with version info
├── __main__.py # Entry point with argparse CLI
├── core.py # Main ModpackManager class
└── ...
Notes
- Config stored in platform-specific config directory via
platformdirs - Get Project IDs from mod pages on Modrinth
- Generated
modrinth.index.jsoncan be used for.mrpackfiles
License
MIT License - See LICENSE file for details
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
mcmpm-1.0.2.tar.gz
(24.7 kB
view details)
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
mcmpm-1.0.2-py3-none-any.whl
(24.7 kB
view details)
File details
Details for the file mcmpm-1.0.2.tar.gz.
File metadata
- Download URL: mcmpm-1.0.2.tar.gz
- Upload date:
- Size: 24.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8255dc82b9efe6c79f69f76e8f6a41c7a4239ed24fd95f4921d82b590e935eb8
|
|
| MD5 |
70186b62c8ed1899be78b0feeb28152c
|
|
| BLAKE2b-256 |
792d0788013f5c01bc5a364203856ae969f7841cc781d52c1999ee4b5b4ed270
|
File details
Details for the file mcmpm-1.0.2-py3-none-any.whl.
File metadata
- Download URL: mcmpm-1.0.2-py3-none-any.whl
- Upload date:
- Size: 24.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6abc8af55113eb8559b331e273ab878a87f4071e19a001a75f10e00d92936bf0
|
|
| MD5 |
7b5102d87418a7d10d92fc6f0d3445c8
|
|
| BLAKE2b-256 |
b1259fbf5df12e995f4e85fbe381dab7da00cf220a5dae9cba1749a14be853ad
|