A Command-line Minecraft Java Edition Launcher written in Kotlin
Chinese: [CMCL2.0]命令行版MC启动器, 支持正版登录|外置登录|统一通行证|模组/整合包搜索安装|自定义皮肤披风
If you still have any problems after watching the video or using it, you can refer to Troubleshooting or ask the author through the author's contact information found in About Author.
- If your operating system is Windows, you can download
cmcl.exe
in Releases, then open cmd, usecd /d <directory path>
to open the directory wherecmcl.exe
is located, and execute the commandcmcl
, followed by options and parameters. If you want to use CMCL in any directory, please refer to "How to use CMCL in any path?" in Troubleshooting. - If you are a Linux or macOS user, you can find the latest version in Releases, download
cmcl
, and then open the directory wherecmcl
is located in the terminal, execute. /cmcl
, followed by options and parameters. - If none of the above methods apply to you, you can find the latest version in Releases, download
cmcl.jar
, then open the directory wherecmcl.jar
is located in the terminal (or cmd under Windows), and execute the following command, Followed by options and parameters. This method is available on most operating systems.
java -jar cmcl.jar
For specific usage, please refer to Help Documentation. If you want to modify the configuration of the launcher, please refer to Configurations.
Get general help documentation via cmcl -h
or cmcl --help
To get help documentation of a single function, add -h
or --help
after the function option, such as cmcl account --help
Note: Content in square brackets is optional. A comma in an option means that both options can do the same thing.
For specifying content for options, you can only add content directly after the abbreviated option (a hyphen) (no spaces), such as cmcl -lD:\.minecraft
,
you can only add an equal sign after the complete option (two hyphens) and then enter the content, such as cmcl --list=D:\.minecraft
,
or add a space after the two and then enter the content, such as cmcl -l D:\.minecraft
; cmcl --list D:\.minecraft
, for details, please refer to the example after the option description.
For some commands that may be entered frequently, you can set simplified commands, see "Can I make a 'shortcut' for a command I type often?" in Troubleshooting.
The configurations are storing in a JSON file named cmcl.json in the launcher running directory (userDirectory/.config/cmcl
under Linux and macOS), you can edit them by a file editor (need to know JSON tutorial, recommended to backup before modification) or the program arguments config <config name> <content>
(see Help Documentation Configuration Related).
If you edit configurations by a file editor, the configuration name and text configuration content need to be enclosed in double quotes ("").
If you edit by command, if the configuration content contains spaces, it needs to be enclosed in double quotes ("").
You can view the table below through the options config --view
.
Note: For configurations whose type is Boolean, its value can be true
which means "yes", or false
which means "no".
Configuration Name | Type | Meaning |
---|---|---|
accounts | JSON Array | Accounts (Non-direct modification, please use "account -h" to get the relevant tutorial for modification) |
downloadSource | Integer | Download source, 0 is the official, 1 is BMCLAPI |
language | Text | Language, zh is Simplified Chinese, en is English and cantonese is Cantonese (Simplified) |
selectedVersion | Text | Selected start version, you can directly use "cmcl" to start it |
maxMemory | Integer | [Game related] Maximum (Unit: MB) |
gameDir | Text | [Game related] Custom the path of the game directory (or set working directory), default is .minecraft |
assetsDir | Text | [Game related] Custom assets resource directory path, if empty, it is the assets directory in the game directory |
resourcesDir | Text | [Game related] Custom resource pack directory path, if empty, it is the resourcepacks directory in the game directory |
javaPath | Text | [Game related] Java Path (It will get automatically if it is empty) |
windowSizeWidth | Integer | [Game related] The width of the game window |
windowSizeHeight | Integer | [Game related] The height of the game window |
isFullscreen | Boolean | [Game related] Whether the game window is fullscreen or not |
exitWithMinecraft | Boolean | [Game related] When running the game, whether or not you need to exit the launcher and exit the game by the way |
printStartupInfo | Boolean | [Game related] When starting the game, whether to output startup information (Java path, maximum memory, etc.) |
checkAccountBeforeStart | Boolean | [Game related] Check whether the account is available before starting the game |
jvmArgs | JSON Array | [Game related] Customize JVM arguments (Check out the examples below or use "jvmArgs -h" to get the relevant tutorial for modification) |
gameArgs | JSON Object | [Game related] Customize game arguments (Check out the examples below or use "gameArgs -h" to get the relevant tutorial for modification) |
qpLogFile | Text | [Game related] The log file path (relative to the game directory) of Quick Play (a new feature of Minecraft 1.20, set the following three configurations to start the game and directly enter the save, server or realms, only one item can be set), optional |
qpSaveName | Text | [Game related] The name of the save that the quick play will join directly |
qpServerAddress | Text | [Game related] The address (including port) of the server that the quick play will join directly, this configuration also applies to versions prior to 1.20 |
qpRealmsID | Text | [Game related] The ID of the realms that the quick play will join directly |
proxyEnabled | Boolean | Whether to enable network proxy |
proxyHost | Text | Proxy Host Address |
proxyPort | Integer | Proxy Port |
proxyUsername | Text | Proxy authentication username(optional for proxy) |
proxyPassword | Text | Proxy authentication password(optional for proxy) |
modDownloadSource | Text | Mod download source, curseforge or modrinth |
modpackDownloadSource | Text | Modpack download source, curseforge or modrinth |
simplifyCommands | JSON Object | Simplify commands (use "simplify -h" to get the relevant tutorial for modification) |
Example for jvmArgs
["-Dfile.encoding=UTF-8", "-Djava.library.path=natives", "-XX:+PrintGC"]
The above content means that the JVM arguments -Dfile.encoding=UTF-8
, -Djava.library.path=natives
and -XX:+PrintGC
will be added.
Example for gameArgs
{
"fullscreen": "",
"arg1": "value1",
"arg2": "value2",
"arg3": "space value3"
}
The above content means that the game arguments --fullscreen --arg1 value1 --arg2 value2 --arg3 "space value3"
will be added.
Use cmcl config language <language code>
to switch languages.
Language | Language Code |
---|---|
English | en |
Simplified Chinese | zh |
Cantonese (Simplified) | cantonese |
MrShiehX owns the copyright of this program.
Anyone can take advices of this program to us.
The software is distributed under GPL v3 with additional terms.
Console Minecraft Launcher (Kotlin)
Copyright (C) 2021-2024 MrShiehX
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your function) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
You must not remove the copyright declaration displayed in the software. [under GPLv3, 7(b).]
- The copyright of Minecraft belongs to Mojang Studios and Microsoft. The software producer is not responsible for any copyright issues arising from the use of CMCL. Please support the official game.
- All consequences arising from the use of CMCL by the user shall be borne by the user himself. Any legal disputes and conflicts involving CMCL have nothing to do with the developer, and CMCL and the developer will not bear any responsibility.
MrShiehX
- Bilibili:
@MrShiehX