Skip to content

Introduction ​

TYW Launcher is a multi-platform Minecraft launcher. The project codename is TML.

Highlights ​

  • Extensions: Java / Python / Node.js scripts as well as native binaries built with C / C++ / Go / Rust / Zig. Drop a package into the window to install it; enable, disable, verify trust and open each extension's folder from Settings.
  • Bedrock downloads: the stable and preview builds install straight from Download → Vanilla, then share one version list and one launch button with Java.
  • Multiplayer: EasyTier networking is built in — no separate tunnelling or virtual-LAN tool for hosting or joining a room.
  • Isolated instances: each version gets its own environment; mods, configs and saves stay separate.
  • Downloader: switch between official, mirror and custom sources, SHA-1 verification with automatic re-download, CurseForge / Modrinth modpacks supported.
  • Short launch path: read instance → verify files → build arguments → spawn process. Notices, version lists and mirror status load lazily and never block launching; every list is virtualised, so hundreds of versions stay smooth.

Platforms ​

PlatformStackPackage
Windows 10 / 11.NET Framework 4.8 + WPFsingle TYW Launcher.exe
Linux x64 / arm64Avalonia + .NETtar.gz
macOS arm64 / x64Avalonia + .NET.app (zip / dmg)
Android 8.0+Kotlin.apk

Each platform has its own release cadence. Windows at 1.1.37 while Linux is still on 1.1.36 is normal.

Channels ​

ChannelPurposeAuto-update
StableVerified releasesYes
SnapshotNew features get a round of testing hereYes
BetaPer-device keys, for verifying specific changesNo (always shown as off)

Beta requires a reachable server. When the key is revoked the launcher falls back to stable (or snapshot) automatically.

Relationship to PCL ​

The Windows build is a modified PCL: the UI skeleton, downloader and argument assembly come from the open-source PCL2 implementation, rewritten and extended on top of it.

The other platforms are rebuilt from the PCL UI: Linux and macOS reimplement the same interface with Avalonia, Android does it natively in Kotlin — same interaction and information structure as Windows, with platform differences kept behind one abstraction layer.

What was added on top:

  • A platform abstraction layer (ModPlatform.vb) where all Windows / Linux / macOS differences live, so business code never branches on platform.
  • The server side: notices, version distribution, bans, beta keys.
  • The extension system: manifest validation, trust records, multi-runtime host.

Licensing and third-party notices: LICENCE and THIRD-PARTY-NOTICES.md in the repository.

Directory layout ​

text
TYW Launcher.exe          binary
PCL/                      data directory (default next to the binary)
├─ setup.ini              settings
├─ versions/
├─ instances/
├─ resources/
├─ extensions/
└─ logs/

Linux / macOS / Android:

text
Linux:   ~/.config/TYWLauncher
macOS:   ~/Library/Application Support/TYWLauncher
Android: /storage/emulated/0/Android/data/<package>/files

Next ​