ModUpdater is a desktop application that scans your Minecraft mods folder, reads metadata from .jar files, and checks for updates via Modrinth or CurseForge APIs.
Built with Python and customtkinter for a modern, clean interface.
- Scan any
modsfolder (auto-detectsmodssubdirectory) - Reads mod metadata from
fabric.mod.json,META-INF/mods.toml,META-INF/neoforge.mods.toml,mcmod.info - Falls back to filename-based version detection
- Modrinth support — no API key required
- CurseForge support — requires a free API key from console.curseforge.com
- Dark / light theme toggle with smooth animation
- Clean card-based UI with rounded corners
- One-click download links to mod pages
Pre-built executables are available on the Releases page.
Just download ModUpdater.exe, run it, and you're ready to go.
- Launch the application
- Click Browse and select your Minecraft
modsfolder (e.g.%appdata%\.minecraft\mods) - Set your Minecraft version and mod loader (Fabric / Forge / NeoForge / Quilt)
- Choose the source: Modrinth (no key needed) or CurseForge (API key required)
- Click Check for Updates
- Download updates directly from the mod page links
Note: CurseForge uses name-based search — it may occasionally point to the wrong mod.
- Python 3.10 or newer
- pip
pip install -r requirements.txt
python main.pypip install pyinstaller
python -m PyInstaller --noconfirm --onefile --windowed --collect-all customtkinter --add-data "logo.ico;." --icon logo.ico --name ModUpdater main.pyOr use the build script:
.\build.ps1The executable will be created at dist\ModUpdater.exe.
| File | Description |
|---|---|
main.py |
Application entry point |
ui.py |
Graphical user interface (customtkinter) |
mod_scanner.py |
.jar scanning and metadata parsing |
modrinth_api.py |
Modrinth API client |
curseforge_api.py |
CurseForge API client |
requirements.txt |
Python dependencies |
build.ps1 |
Build script for PyInstaller |
logo.ico |
Application icon |
This project is licensed under the GNU General Public License v3.0 — see the LICENSE file for details.
Made by Arekmas