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
| Platform | Stack | Package |
|---|---|---|
| Windows 10 / 11 | .NET Framework 4.8 + WPF | single TYW Launcher.exe |
| Linux x64 / arm64 | Avalonia + .NET | tar.gz |
| macOS arm64 / x64 | Avalonia + .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
| Channel | Purpose | Auto-update |
|---|---|---|
| Stable | Verified releases | Yes |
| Snapshot | New features get a round of testing here | Yes |
| Beta | Per-device keys, for verifying specific changes | No (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
TYW Launcher.exe binary
PCL/ data directory (default next to the binary)
├─ setup.ini settings
├─ versions/
├─ instances/
├─ resources/
├─ extensions/
└─ logs/Linux / macOS / Android:
Linux: ~/.config/TYWLauncher
macOS: ~/Library/Application Support/TYWLauncher
Android: /storage/emulated/0/Android/data/<package>/files