About the project

Who we are and what we do.

CT is an independent, open documentation project building a precise Minecraft Java Edition launcher and its own mod loader. This page explains, in full detail, what the project does, how it works, and the rules it holds itself to.

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 .part and 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.log in 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

PRINCIPLE / 01

Verify everything

No file is trusted because it arrived. Hashes, sizes, transport security, and extraction paths are all checked.

PRINCIPLE / 02

Fail loudly

Unsupported metadata, unsafe paths, and missing runtime pieces are hard errors with actionable messages, not silent fallbacks.

PRINCIPLE / 03

Keep secrets out

Settings files hold no credentials. Tokens exist only in memory for one session and are redacted from logs.

PRINCIPLE / 04

Stay boring where it counts

Standard Java, a single shaded JAR, plain properties files, and a documented directory layout — no magic, no background services.

PRINCIPLE / 05

Document both tracks

Beginners get plain-language steps; professionals get every key, flag, class, and rule with nothing summarized away.

PRINCIPLE / 06

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.

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.