How mariofritzer/craftkit works
CraftKit is a local Minecraft Java Edition package manager, presented through a browser-based UI and backed by a Go HTTP service. The main workflow is to choose an instance and content, resolve compatibility and dependencies into a plan, fetch packages, and apply them to the instance; instances are also registered as profiles in the official launcher. The graph includes documented discovery, server matching, modpack, update, and maintenance features. Some subsystem links are based on README behavior because their source was not sampled.
Main entry points: server.go HTTP API · instances.go Instance manager · provider.go Mod providers · resolver.go Dependency planner
Components 26
User interface
- CraftKit UI
web/app.js
Application service
- HTTP API
server.go - Self-updater
update.go
Content management
- Dependency planner
resolver.go - Jar scanning
scan.go - Update planning
updates.go - Server matching
servermatch.go - Modpack import
packimport.go - Modpack export
export.go
Instances and state
- Instance manager
instances.go - Instance files
- Profile discovery
discover.go - Crash help
crash.go - World backups
worlds.go - Mod sets
sets.go - Local settings
config.go
External integrations
- Mod providers
provider.go - Server status ping
serverping.go
Other components
- Minecraft player
- Modrinth
- CurseForge
- Official launcher
- Minecraft server
- Mojang
- Loader services
- Eclipse Adoptium
Connections 37
- Minecraft player → CraftKit UI: uses
- CraftKit UI → HTTP API: API requests
- HTTP API → Dependency planner: plans installs
- Dependency planner → Mod providers: queries versions
- Mod providers → Modrinth: queries and downloads
- Mod providers → CurseForge: queries and downloads
- HTTP API → Instance manager: manages instances
- Instance manager → Instance files: reads and writes
- Instance manager → Official launcher: registers profiles
- HTTP API → Profile discovery: discovers profiles
- Profile discovery → Official launcher: reads profiles
- HTTP API → Jar scanning: scans installed jars
- Jar scanning → Instance files: reads jars
- HTTP API → Update planning: previews updates
- Update planning → Dependency planner: resolves updates
- HTTP API → Server status ping: requests server status
- Server status ping → Minecraft server: pings
- HTTP API → Server matching: matches server setup
- Server matching → Server status ping: uses server details
- Server matching → Dependency planner: plans compatible mods
- HTTP API → Modpack import: imports modpacks
- Modpack import → Mod providers: looks up package files
- Modpack import → Instance files: installs pack contents
- HTTP API → Modpack export: exports modpacks
- Modpack export → Instance files: reads installed contents
- HTTP API → Self-updater: checks for updates
- Self-updater → Local settings: reads update settings
- HTTP API → Crash help: analyzes crash reports
- Crash help → Instance files: reads logs and mods
- HTTP API → World backups: backs up worlds
- World backups → Instance files: reads and writes worlds
- HTTP API → Mod sets: manages mod sets
- Mod sets → Local settings: reads and writes sets
- HTTP API → Local settings: loads and saves settings
- Instance manager → Mojang: gets game versions
- Instance manager → Loader services: installs loaders
- Instance manager → Eclipse Adoptium: finds Java if needed