Features
mcTUI is strictly an educational utility packed with high-performance mechanics to deliver the fastest startup possible, prioritizing a zero GUI bloat philosophy.
Core Mechanics
- TUI Interface: Smooth keyboard navigation built on the Elm architecture via
charmbracelet/bubbletea. No heavy graphical overhead like Electron or CEF. - Safety First UX: Live input validation ensures usernames comply with strict Minecraft network protocols (1-16 characters, no spaces), preventing deep JVM runtime crashes before they happen.
- Secure LAN Multiplayer: Generates dynamic v4 UUIDs in each session to avoid "duplicate name" conflicts on local
online-mode=falseservers. - XDG Persistence: Saves your configuration (username, modloader state, and last played version) following Linux and Windows OS directory standards.
- Legitimacy First: Verifies existing official Minecraft installations for proprietary binaries (like
client.jar) before taking action, acting as a local utility rather than a direct distributor.
Vanilla & Fabric Native Support
mcTUI natively resolves both Vanilla and modded environments:
- Vanilla Resolution: Resolves dependency trees directly from the official Mojang manifest.
- Fabric Meta API: Resolves modding profiles connecting directly to the Fabric Meta API, parses Maven coordinates, and seamlessly intercepts the vanilla boot process to load your
~/.minecraft/mods.
Download Engine (Responsible Concurrency)
The download engine maximizes network throughput while preventing OS resource exhaustion.
- Responsible Concurrency: Downloads thousands of Minecraft assets utilizing goroutines, strictly controlled by a semaphore pattern (buffered channels limited to 20-50 workers) to avoid exhausting OS network file descriptors.
- Smart Validation: Checks local file size and existence (
os.Stat) to guarantee near-instant startups in subsequent sessions. - SHA-1 Validation: Validates all downloaded files using SHA-1 hashes provided by Mojang on the fly, immediately discarding files corrupted by network drops.
Smart JRE Discovery
Finds the exact Java version required by the game. Scans the PATH, common OS installation directories (Windows/Linux/macOS), and even embedded runtimes if the user has previously installed the official Microsoft launcher.
| Order | Search Location | Description |
|---|---|---|
| 1 | System PATH | Standard environment variable |
| 2 | OS Standard Paths | Default installation directories or IDE-managed JDKs |
| 3 | Mojang Embedded | Runtimes bundled by the official Mojang launcher |
Smart World Protection
- Native NBT parsing: Uses a zero-dependency binary parser written from scratch. Utilizing a generic
Walk/Visitor/descendPathabstraction pattern to navigate NBT streams seamlessly, it avoids the need for massive third-partyGo-MClibraries. - Version Syncing: Reads
level.datto extract the exact version a world was last played on. The launcher automatically switches versions to prevent chunk corruption upon loading. - Relative Timestamps: Parses UNIX epochs into human-readable relative formats (e.g., "played 2 hours ago").
Offline Mode Considerations
Currently, the launcher does not implement Microsoft OAuth or JWT tokens. The game boots with --accessToken 0. This restricts connectivity exclusively to Local Area Network (LAN) games or private servers explicitly configured with online-mode=false in their server.properties.
Live Roadmap
The "Future Changes" panel inside the TUI ingests a remote JSON from the project's GitHub repository via REST API. You always see the latest plans without needing to update mcTUI.