Skip to content

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=false servers.
  • 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.

OrderSearch LocationDescription
1System PATHStandard environment variable
2OS Standard PathsDefault installation directories or IDE-managed JDKs
3Mojang EmbeddedRuntimes 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 / descendPath abstraction pattern to navigate NBT streams seamlessly, it avoids the need for massive third-party Go-MC libraries.
  • Version Syncing: Reads level.dat to 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.