Skip to main content

A CLI tool for creating and managing Minecraft modpacks

Project description

Modpack Manager (mpm) v1.0.3

An interactive CLI tool for creating and managing Minecraft (Java Edition) modpacks via the Modrinth platform.

Note: Version 1.0.2 was skipped due to PyPI package uploading issues.

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.3.tar.gz (24.3 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.3-py3-none-any.whl (25.0 kB view details)

Uploaded Python 3

File details

Details for the file mcmpm-1.0.3.tar.gz.

File metadata

  • Download URL: mcmpm-1.0.3.tar.gz
  • Upload date:
  • Size: 24.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for mcmpm-1.0.3.tar.gz
Algorithm Hash digest
SHA256 3fe086fc0276d6365afae81c923d2c416dd6fccb755df4625cc16a68509c3eb8
MD5 becdda9253b3902686bfe0961fac8843
BLAKE2b-256 634dc8a5f40cdbacf6c1b9c00d611c0da8a6a1171acb21c33ff95100544f5051

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcmpm-1.0.3.tar.gz:

Publisher: publish-to-pypi.yml on AhmedShah29/MP-Manager

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mcmpm-1.0.3-py3-none-any.whl.

File metadata

  • Download URL: mcmpm-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 25.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for mcmpm-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 d336f817f7758fa5a815aa248c44c4f893a81c5f2fb79241ecce0576f6adb01d
MD5 47cef2be9f3db563bd29d1bbb1c2c826
BLAKE2b-256 b9eb3b195b718685f832c01a84ee6f369475d28107c345789b4f24510ba5bf14

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcmpm-1.0.3-py3-none-any.whl:

Publisher: publish-to-pypi.yml on AhmedShah29/MP-Manager

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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