Skip to main content

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.json but 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 export
  • modpack.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.json can be used for .mrpack files

License

MIT License - See LICENSE file for details

Project details


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)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcmpm-1.0.2-py3-none-any.whl (24.7 kB view details)

Uploaded Python 3

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

Hashes for mcmpm-1.0.2.tar.gz
Algorithm Hash digest
SHA256 8255dc82b9efe6c79f69f76e8f6a41c7a4239ed24fd95f4921d82b590e935eb8
MD5 70186b62c8ed1899be78b0feeb28152c
BLAKE2b-256 792d0788013f5c01bc5a364203856ae969f7841cc781d52c1999ee4b5b4ed270

See more details on using hashes here.

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

Hashes for mcmpm-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 6abc8af55113eb8559b331e273ab878a87f4071e19a001a75f10e00d92936bf0
MD5 7b5102d87418a7d10d92fc6f0d3445c8
BLAKE2b-256 b1259fbf5df12e995f4e85fbe381dab7da00cf220a5dae9cba1749a14be853ad

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page