Warning
π§ Under Construction β This project is currently in active development. Features and APIs may change without notice.
A terminal-based Minecraft server management tool built with Go and Bubble Tea.
- π World Management β Create, configure, and manage multiple Minecraft server worlds with an intuitive form-based interface
- βοΈ Server Support β Vanilla, Fabric, and Forge servers with automatic JAR downloading
- β Java Management β Automatic Java version detection and installation (Eclipse Temurin) per world
- β¨οΈ Script Generation β Auto-generates start scripts for Windows (.bat) and Unix (.sh) with proper JVM flags
- π€ Server Configuration β Full control over RAM allocation, port, gamemode, difficulty, PVP, and more
- π₯οΈ Session Management β Run servers in tmux sessions or foreground mode
- π Progress Tracking β Real-time creation progress with stage indicators and scrollable logs
- π¨ Beautiful TUI β Full-screen terminal interface powered by Bubble Tea with modern styling
# Clone the repository
git clone https://github.com/neuronexul/mcworker.git
cd mineworker-go
# Build
go build -o mcworker ./cmd/cli
# Run
./mcworker- Go 1.25 or later
- Linux, macOS, or Windows
- tmux (optional, for background server sessions)
Simply run the mcworker command to launch the interactive TUI:
mcworkerAll functionality is driven through the TUI with proper interactive elements β no subcommands required.
| Key | Action |
|---|---|
β / k |
Navigate up |
β / j |
Navigate down |
1-4 |
Quick select menu item |
Enter |
Confirm selection |
Tab |
Next field (in forms) |
Shift+Tab |
Previous field (in forms) |
q |
Quit |
When creating a new world, MineWorker automatically handles:
- Directory Setup β Creates the world directory structure
- Java Runtime β Downloads and installs the required Java version (if not present)
- Server Download β Fetches the server JAR for your selected server type and version
- EULA Acceptance β Automatically accepts the Minecraft EULA
- Script Generation β Creates start scripts with optimized JVM arguments
- Configuration β Saves the world configuration and generates
server.properties - Network Setup β Configures port and DNS settings
Each world is a self-contained unit with its own worker.json configuration:
{
"world": {
"name": "my-survival-world",
"path": "./",
"minecraft_version": "1.21.11",
"description": "This is my survival forever world"
},
"server": {
"type": "fabric",
"jar": "fabric-server-1.21.11-0.18.4.jar",
"eula_accepted": true
},
"java": {
"version": "21",
"vendor": "temurin",
"path": "/home/neuronexul/.mcworker/java/temurin-21/bin/java"
},
"resources": {
"ram": {
"min": "2G",
"max": "4G"
},
"cpu": {}
},
"network": {
"port": 25565,
"dns": "mc.nexul.in"
},
"backups": {}
}ββββββββββββββββββββββββββββββββ
β Bubble Tea TUI β β Main menu, create world form, progress screen
ββββββββββββββββ²ββββββββββββββββ
β
ββββββββββββββββ΄ββββββββββββββββ
β Application / Tasks β β Server creation orchestration
ββββββββββββββββ²ββββββββββββββββ
β
ββββββββββββββββ΄ββββββββββββββββ
β Domain / Core Logic β β World, server types, validation
ββββββββββββββββ²ββββββββββββββββ
β
ββββββββββββββββ΄ββββββββββββββββ
β Runtime / System Services β β Java, scripts, sessions, network
ββββββββββββββββββββββββββββββββ
mineworker-go/
βββ cmd/cli/ # Entry point
βββ internal/
β βββ app/ # Application orchestration
β β βββ create.go # Server creation workflow
β βββ domain/ # Pure business logic
β β βββ server/ # Server type definitions
β β βββ world/ # World configuration & validation
β βββ network/ # Network configuration
β βββ runtime/ # System integrations
β β βββ java/ # Java installation & management
β β βββ scripts/ # Start script generation
β β βββ session/ # Process & session management
β βββ servers/ # Server type implementations
β β βββ vanilla/ # Vanilla server support
β β βββ fabric/ # Fabric server support
β β βββ forge/ # Forge server support
β βββ tui/ # Bubble Tea UI components
β β βββ root.go # Root model & screen management
β β βββ main_menu.go # Main menu screen
β β βββ create_world.go # World creation form
β β βββ creation_progress.go # Progress tracking screen
β β βββ styles.go # UI styles & theming
β βββ utils/ # Cross-platform utilities
β βββ paths.go # Path management
βββ assets/ # Screenshots & media
| Server Type | Description |
|---|---|
| Vanilla | Official Minecraft server from Mojang |
| Fabric | Lightweight modding toolchain |
| Forge | Popular modding platform |
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
- Bubble Tea β TUI framework
- Lip Gloss β Style definitions
- Charm β For the amazing terminal tools ecosystem
- Eclipse Temurin β Java runtime distribution
