This project was an experiment of mine to see how far modern AI coding tools can go. 99% of the code has been created by AI-Models (mostly claude opus 4.6 and chatgpt 5.4). I am not a frontend developer, so I don't understand half of it. Use this tool at your own risk. Based on my testing, it does what's expected, but I'm not promising anything. I spent about 2 full days on this for the initial version, with multiple iterations, improvements and lots of input and guidance to the AI, but the code itself is written by the AI.
This does not mean my minecraft mods will be vibe coded from now on, I actually enjoy writing the java code.
Modpack Inspector is a desktop application for inspecting and debugging Minecraft modpacks.
Download the latest release via: https://github.com/Rearth/Modpack-Inspector/releases
It scans the mods in a selected instance, extracts metadata and dependency information from each JAR, enriches that data with Modrinth and CurseForge when available, and presents the result in a searchable desktop UI built with Wails.
The goal is to make modpack maintenance faster: you can see what is installed, how mods depend on each other, which libraries are unused, which config files likely belong to which mods, and where unresolved dependencies are coming from.
Modpack Inspector reads mod metadata directly from common loader manifests inside JAR files, including:
fabric.mod.jsonquilt.mod.jsonmods.tomlneoforge.mods.tomlFrom those manifests it extracts IDs, names, versions, descriptions, authors, provided module IDs, and declared dependencies.
After local scanning, the app attempts to enrich mods with online metadata:
When those lookups succeed, Modpack Inspector can add:
Dependencies are resolved against the currently loaded mod list and against modules provided by other JARs.
That lets the app distinguish between:
The app also computes a detected library flag used by the Mods view, the dependency graph, and the unused-library report.
This flag is heuristic, not authoritative metadata from the mod host.
The current logic is:
library or api and library, it is treated as a detected libraryThis is intentionally conservative because many gameplay mods also carry API and Library categories even when they are not actually shared-core dependencies.
Modpack Inspector extracts mixin information directly from mod JARs by parsing mixin config JSON files and the Java class bytecode of each mixin class.
For each mod, the detail view shows:
Each mixin entry shows the target class and shadowed/overwritten members (methods and fields). Clicking a target or source mod navigates to that mod's detail view.
Mixin data is resolved across the full mod list so cross-mod relationships are visible even when the target mod does not declare the dependency explicitly.
The UI includes a smart search that combines local mod metadata and embedding-based search support when the ONNX model is available.
You can use the app to:
The app scans the instance config folder and tries to match config files to mods using heuristics and confidence scoring.
You can:
After an instance is selected, Modpack Inspector watches the mod and config folders.
That means:
react-force-graph-2d for the dependency graph@untitled-ui/icons-react and lucide-react for UI iconsmodernc.org/sqlitefsnotifygithub.com/yalue/onnxruntime_goall-MiniLM-L6-v2 sentence embedding modelAn instance should point at a Minecraft profile folder that contains at least:
mods folderconfig folderIf your launcher is not auto-detected, open Settings or the first-run wizard and add custom launcher roots.
In the Mods view you can:
Detected Library pill directly from mod cardsInside the mod detail view you can:
The Graph view shows dependency relationships between mods.
You can use it to:
When a config file is linked to a mod, you can open it in the built-in editor.
The editor supports:
Modpack Inspector already watches file changes.
If you add, remove, or replace a mod while the app is open, it should update automatically.
Use the Scan button when you want to force a full rescan of the whole pack.
You need:
onnxruntime_go uses CGOPlatform notes:
xcode-select --install)Example Linux packages:
sudo apt-get update
sudo apt-get install -y build-essential libgtk-3-dev libwebkit2gtk-4.0-dev
Example macOS bootstrap:
xcode-select --install
go install github.com/wailsapp/wails/v2/cmd/wails@latest
Known working setup in this workspace:
CGO_ENABLED=1CC pointing at the GCC executableExample Windows PowerShell setup:
$env:CGO_ENABLED = "1"
$env:CC = "C:\Users\Darkp\AppData\Local\Microsoft\WinGet\Packages\BrechtSanders.WinLibs.POSIX.UCRT_Microsoft.Winget.Source_8wekyb3d8bbwe\mingw64\bin\gcc.exe"
$env:PATH = "C:\Users\Darkp\AppData\Local\Microsoft\WinGet\Packages\BrechtSanders.WinLibs.POSIX.UCRT_Microsoft.Winget.Source_8wekyb3d8bbwe\mingw64\bin;" + $env:PATH
Install the Wails CLI if needed:
go install github.com/wailsapp/wails/v2/cmd/wails@latest
On Linux and macOS, the default compiler on your PATH is usually enough:
export CGO_ENABLED=1
go install github.com/wailsapp/wails/v2/cmd/wails@latest
From the project root:
cd modpacktool
npm --prefix frontend install
Or let Wails install the frontend dependencies automatically on first run.
Standard development flow:
cd modpacktool
wails dev
That starts:
On Linux, wails dev still depends on the GTK/WebKit packages above.
On macOS, Wails uses the system toolchain from Xcode Command Line Tools.
During wails dev, Wails exposes a browser-accessible preview, typically at:
http://localhost:34115
That is useful when you want to inspect the frontend quickly in a browser while still having access to Wails-bound methods.
Run tests:
go test ./...
Build the frontend only:
cd frontend
npm run build
Build the desktop app:
wails build
High-level structure:
main.go — Wails app bootstrap and window configapp.go — Wails-bound backend methods, scanning, enrichment, watcher behaviorinternal/db — SQLite models and queriesinternal/scanner — JAR scanning, config scanning, watcher implementationinternal/api — Modrinth and CurseForge clientsinternal/resolver — dependency resolution and graph constructioninternal/embeddings — ONNX embedding engine and search supportfrontend/src/components — desktop UI componentsfrontend/src/hooks — frontend data hooksCreate a redistributable desktop build with:
wails build
The packaged output is written under the Wails build output directory, typically in build/bin.
$ claude mcp add Modpack-Inspector \
-- python -m otcore.mcp_server <graph>