A desktop application for managing and automating multiple Minecraft clients. Each client runs a Fabric mod that connects back to the manager, which can then control it, and run Python scripts against it.
Two components communicate over Protocol Buffers via Unix domain sockets:
- Client (
/client/) - Fabric mod (Java) that runs inside Minecraft, captures game state, and executes commands - Manager (
/manager/) - Qt/C++ desktop application for controlling bots and running scripts
Manager:
- CMake 3.16+
- Qt6 (Widgets, Network, Protobuf, Concurrent, WebEngineWidgets)
- esbuild (must be on
PATH, used to bundle the script editor) - Python 3 with development headers (optional - auto-downloaded via python-build-standalone if not found)
- pybind11, libnbtplusplus, Monaco Editor, and PrismLauncher headers are fetched automatically by CMake
Client:
- Minecraft 1.21.4 or 1.21.11: JDK 21
- Minecraft 26.1.2: JDK 25
- Fabric Loader
- Meteor Client
- Baritone (for pathfinding)
Manager:
cd manager
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build buildThis also builds libprismhook.so / libprismhook_core.so for Prism Launcher integration. The PrismLauncher source is fetched automatically by CMake to provide the headers needed to compile the hook.
Client:
cd client
./gradlew build # defaults to 26.1.2
./gradlew build -Pminecraft_version=1.21.11 # or specify a versionPlace the resulting .jar from client/build/libs/ into your Minecraft mods folder alongside Meteor Client and Baritone.
The manager integrates with Prism Launcher to launch and manage Minecraft instances directly from the UI. It communicates with Prism via a hook library (libprismhook.so) that is preloaded into the Prism process.
To set it up, open the Prism Launcher settings in the manager, set the PrismLauncher data directory (auto-detected on most systems), and enable the hook via the checkbox. The manager will inject the hook library into Prism on launch.
If you installed Prism Launcher via Flatpak, you need to grant it access to the Unix socket that the manager uses for IPC. The socket lives in $XDG_RUNTIME_DIR/minecraft_manager, which corresponds to xdg-run/minecraft_manager in Flatpak's filesystem namespace. By default Flatpak sandboxes access to this path, so Prism cannot reach the socket and launching bots will fail silently.
Run this once to grant the permission:
flatpak override --user --filesystem=xdg-run/minecraft_manager org.prismlauncher.PrismLauncherBots are automated using Python scripts in the scripts/ directory. The manager embeds a Python interpreter and exposes APIs for bot control, inventory, world interaction, and crafting.
See the documentation for the full scripting API and examples.
