Skip to content

Introduction to mcTUI

mcTUI is an extremely lightweight, fast, and pure terminal (TUI) Minecraft launcher written in Go, designed for minimalist environments and users who prefer the console.

Requirements

  • Operating System: Linux (Tested on Arch Linux), macOS, or Windows.
  • Java Runtime Environment (JRE):
    • jre17-openjdk (For Minecraft 1.17 to 1.20.4)
    • jre21-openjdk (For Minecraft 1.20.5+)

Installation

Quick Install (Linux & macOS)

Installs the optimized binary directly into your local bin path:

bash
git clone https://github.com/agmonetti/mcTUI.git /tmp/mctui && \
cd /tmp/mctui && go mod tidy && \
go build -ldflags="-s -w" -o ~/.local/bin/mctui main.go && \
rm -rf /tmp/mctui

(Ensure ~/.local/bin is in your $PATH)

Manual Compilation (Linux & macOS)

If you prefer to compile it step by step:

bash
# 1. Clone the repository
git clone https://github.com/agmonetti/mcTUI.git
cd mcTUI

# 2. Download Go dependencies
go mod tidy

# 3. Compile the optimized binary
go build -ldflags="-s -w" -o mctui main.go

# 4. Install on your system
mkdir -p ~/.local/bin
mv mctui ~/.local/bin/

Windows (Pre-built Binaries)

For Windows users who do not wish to compile from source:

  1. Download the latest mctui-windows-amd64.exe from the Releases page.
  2. Ensure you have the correct Java version installed (e.g., Eclipse Temurin). Crucial: You must check the option to add Java to your system's PATH variable during installation.
  3. Open a PowerShell window in the directory where you downloaded the executable.
  4. Run the launcher:
powershell
.\mctui-windows-amd64.exe

Basic Usage

Launch the binary from your terminal:

bash
mctui
  • / : Navigate lists and options.
  • Enter: Confirm selection or toggle settings.
  • Esc / q: Go back or quit the application.

Important: Username Validation

mcTUI strictly enforces the official Minecraft network protocol for usernames. Your LAN profile name must be between 1 and 16 characters long and can only contain alphanumeric characters and underscores (no spaces). This active input validation prevents deep JVM runtime crashes from occurring on local servers.