Client.json

client.json is the file that accompanies client.jar in .minecraft/versions/  and lists the version's attributes. When using the latest version of the Minecraft launcher, it is named  .json.

JSON format
As of Java Edition 17w43a, this is the JSON format for client.json.


 * The root tag.
 * : Contains information about the username, the version, the game directory and more. Also contains compound tags, explained below.
 * A value in the list.
 * This tag appears twice.
 * This tag contains "action" and "features".
 * : Its value is "allow".
 * : Appears only in the first appearance of the compound tag.
 * : Appears only in the second appearance of the compound tag.
 * : Appears only in the first appearance of the compound tag. Its value is "--demo".
 * : Appears only in the second appearance of the compound tag. Keeps information about the width and height.
 * : A value in the list.
 * : A list of more compound tags containing "rules" and "value".
 * : This tag appears four times.
 * : This tag contains "action" and "os".
 * : Its value is "allow".
 * : Its value is "osx" for the first appearance of the compound tag and "windows" for the second and third. Does not appear in the fourth appearance.
 * : Appears only in the third appearance of the compound tag. Its value is "^10\\.".
 * : Appears only in the fourth appearance of the compound tag. Its value is "x86".
 * : Appears only in the second and fourth appearance of the compound tag.
 * : Appears only in the first and third appearance of the compound tag.
 * : A value.
 * : The assets version.
 * : A string of letters and numbers.
 * : The size of the version.
 * : The total size of the version.
 * : The URL that the game should visit to download the assets.
 * : As of Java Edition 1.14, this tag's value is "1.14".
 * This tag appears twice. Its name is "client" the first time and "server" the second.
 * : A string of letters and numbers.
 * : The size of the client.jar or the server.jar.
 * : The URL that the game should visit to download the client.jar or the server.jar.
 * : The name of this version client (e.g. 1.14.3).
 * : A giant list of libraries.
 * : A library.
 * : A download.
 * : Info about the download.
 * : Path for an URL.
 * : A string of letters and numbers.
 * : The size of the download.
 * : The URL that the game should visit to download a .jar file.
 * : Appears only for some libraries.
 * : This tag is the "artifact" tag for Linux, but appears even if the game is not run in Linux. Appears only in some libraries.
 * : This tag is the "artifact" tag for MacOS, but appears even if the game is not run in MacOS. Appears only in some libraries.
 * : This tag is the "artifact" tag for Windows, but appears even if the game is not run in Windows. Appears only in some libraries.
 * : This tag is the "artifact" tag for downloading a "java-objc-bridge-1.0.0-javadoc.jar" file. Appears only in one library.
 * : This tag is the "artifact" tag for OS X, but appears even if the game is not run in OS X. Appears only in one library.
 * : This tag is the "artifact" tag for downloading a "java-objc-bridge-1.0.0-sources.jar" file. Appears only in one library.
 * : A name that looks like an APK name, but shows what is downloaded.
 * : Appears only when there are classifiers for natives.
 * : This tag's name depends on the natives that appear in the classifiers, so it can be "linux", "macos", "windows" or "osx". Its value will be the corresponding classifier ("natives-linux" etc.).
 * : Appears only in two libraries.
 * : Shows what to exclude from the extraction.
 * : Its value is "META-INF/".
 * : Appears only in the last two libraries. Contains a compound with the tags "action" and "os", as shown above.
 * : Its value is "-Dlog4j.configurationFile=${path}".
 * : Its value is "client-1.12.xml", but may differ for older versions.
 * : A string of letters and numbers.
 * : The size of the file.
 * : The URL the game should visit to download the file.
 * : Its value is "log4j2-xml".
 * : The main game class; for modern versions, it is, but it may differ for older or ancient versions.
 * : The minimum Launcher version that can run this version of the game.
 * : The release date and time.
 * : Same as "releaseTime".
 * : The type of this game version. It is shown in the version list when you create a new installation. The default values are "release" and "snapshot".
 * : Its value is "client-1.12.xml", but may differ for older versions.
 * : A string of letters and numbers.
 * : The size of the file.
 * : The URL the game should visit to download the file.
 * : Its value is "log4j2-xml".
 * : The main game class; for modern versions, it is, but it may differ for older or ancient versions.
 * : The minimum Launcher version that can run this version of the game.
 * : The release date and time.
 * : Same as "releaseTime".
 * : The type of this game version. It is shown in the version list when you create a new installation. The default values are "release" and "snapshot".