Our mission
CT exists to give Minecraft Java Edition players a launcher that is exact, transparent, and self-contained. "Exact" means every file CT downloads is checked against the SHA-1 hash and byte size published in Mojang's official version metadata before it is used. "Transparent" means every launch argument is built from that same public metadata, and anything CT cannot interpret is a loud error instead of a silent guess. "Self-contained" means one game directory, one settings file, and one ZIP that runs on Windows, macOS, and Linux.
The project is not a company and not a game distributor. It is a client tool: it reads Mojang's official version manifest, installs official game files from official hosts, and starts the game. It stores no Minecraft assets, no game files, and no account credentials in its repository or releases.
What we do, in detail
The launcher
The desktop launcher, CT Client, covers the whole lifecycle of playing Minecraft Java Edition:
- Version selection. It reads Mojang's official version manifest live, so every release, snapshot, special, and legacy version ID is available — over 900 at the time of the current release — plus the latest-release shortcut.
- Installation. For the selected version it downloads and installs the version metadata, the client JAR, every rule-matched library, the asset index, all game assets, the official log configuration, and the platform natives, then installs the exact Java runtime component the version declares.
- Verification. Every download with a published SHA-1 and size is checked against both. Files land as
.partand move into place only after verification. Non-HTTPS sources are refused, archive paths that escape their target are rejected, and interrupted installs resume instead of restarting. - Launch. The JVM and game argument lists are built from the official metadata — rule evaluation against OS and architecture, feature flags such as custom resolution, demo mode, and quick play, and placeholder substitution. An unknown placeholder stops the launch; it is never dropped silently. The game process starts without a shell, so nothing is re-parsed or expanded.
- Output. Game output streams to the launcher console and is appended to
logs/ct-client-launch.login the game directory.
Accounts
CT supports two ways to identify yourself. Microsoft sign-in uses the OAuth 2.0 device code flow, then the Xbox Live, XSTS, and Minecraft services, and confirms the account owns Java Edition before launch. The default built-in sign-in needs no Azure application and signs in with the Microsoft account email; a custom Azure client ID method remains available for users who registered their own application. The access token lives only in memory for the current session and is redacted from any echoed command. Offline profiles derive a stable UUID from a 3–16 character name and are meant for development and single-player testing; they cannot join online-mode servers.
The mod loader
CT Loader is the project's own mod system. It discovers CT mod JARs in the game's mods/ directory, reads each ct.mod.json, checks required dependencies, rejects duplicate IDs and dependency cycles, initializes dependencies first, and invokes each mod's Java entrypoint. CT's mod API provides initialization and logging only, and is deliberately separate from Fabric, Forge, and NeoForge.
Loader interop
CT detects Fabric mod JARs and automatically launches the sole installed Fabric profile matching the selected Minecraft version, and it can launch installed Forge and NeoForge profiles the same way. Their installers must be run separately; CT does not download or repair third-party loader files.
The website
This site is the project's release and documentation portal: the beginner guide, the full professional reference (features, configuration keys, CLI flags, API member tables, architecture), the mods guide, downloads for every release, update notes, security documentation, and troubleshooting — all searchable from the header on every page.
How we build
Verify everything
No file is trusted because it arrived. Hashes, sizes, transport security, and extraction paths are all checked.
Fail loudly
Unsupported metadata, unsafe paths, and missing runtime pieces are hard errors with actionable messages, not silent fallbacks.
Keep secrets out
Settings files hold no credentials. Tokens exist only in memory for one session and are redacted from logs.
Stay boring where it counts
Standard Java, a single shaded JAR, plain properties files, and a documented directory layout — no magic, no background services.
Document both tracks
Beginners get plain-language steps; professionals get every key, flag, class, and rule with nothing summarized away.
Respect the game
CT ships none of Mojang's content. Players obtain game files through official channels and agree to the Minecraft EULA themselves.
Where the project stands
The current release is CT v4.3.0. The launcher has progressed through ten releases: v1.0.0 and v1.0.1 established the core install-and-launch pipeline; v2.0.0 introduced CT Loader, the native ct.mod.json mod format, and Fabric, Forge, and NeoForge profile launching; v2.0.0.1 added Fabric mod detection with automatic profile routing; v2.2.0.1 rebuilt the desktop interface around the CT dark theme with grouped settings cards, custom-drawn controls, and a rounded console; v3.0.0.1 made Microsoft sign-in work immediately with a built-in method that needs no Azure application while keeping the classic client ID method as an option; v4.0.0 split the launcher into a module platform with a bare CT-Main host and thirteen feature module jars; v4.1.0 made every module jar runnable, so a downloaded module installs itself into the folder CT-Main reads; v4.2.0 accepts dropped module jars, so several features can be installed at once by dragging them onto CT-Main; and v4.3.0 adds a one-click full download, fetches a module's missing requirements automatically, and installs modules from inside the launcher.
CT is built with standard Java (JDK 21 or later) and Maven. CT-Main ships as one shaded JAR next to one runnable JAR per feature module, with launch scripts for all three major platforms, and every public class is documented in the API reference.
Licensing and what CT is not
The CT license covers only project-owned code, documentation, and explicitly identified project assets. CT does not grant rights to Minecraft, Mojang, Microsoft, or their assets and trademarks, and releases never include unauthorized Minecraft game files. Users obtain game files through official authorized channels and comply with the applicable Minecraft EULA and terms of service. Mods are executable Java code, not sandboxed plugins — only install JARs from sources you trust.
Read the full terms in the project's LICENSE.md and the license and distribution notes.
Find us
The fastest way to reach the community and get help is the Discord server. For problems, start with the troubleshooting table; for setup, the beginner guide. Release archives live on the downloads page.