Today we are happy to announce Crowdin CLI 4.0! ๐ฅณ

It has been almost five years since the release of Crowdin CLI 3.0. During this time, we have received extensive feedback from our users and worked diligently to improve the tool. As a result, we've made many changes and improvements.
The new version of Crowdin CLI introduces a lot of new features and enhancements. We've added new commands, updated existing ones, and significantly improved the overall user experience.
This post is intended to highlight the most important changes and help you migrate from CLI 3.x with ease. It is not a comprehensive guide, but rather a list of the most important changes.
Requirementsโ
As part of this release, the minimum Java version has been updated to 17 LTS.
New commandsโ
crowdin configcrowdin projectcrowdin languagecrowdin branch clonecrowdin branch mergecrowdin completion
New command optionsโ
Command | Option/Description |
|---|---|
init | --quiet option to skip interactive input prompts |
string add | --branch option to specify the branch to which the new string should be added |
string list | --directory and --scope options to filter strings by directory and scope |
pre-translate | --file option to specify the file(s) in the Crowdin project to pre-translate |
pre-translate | ai method and --ai-prompt parameter to allow pre-translation via AI |
file upload | --type and --parser-version options to specify the file type and parser version respectively |
file upload | --context option to provide a context about the whole file |
file list | --verbose option to show more information about the files |
language list | --all option to list all languages for the current account |
Command updatesโ
Pre-translateโ
We've made significant changes to the pre-translate command. The command now requires the --file parameter for file-based projects. The --file parameter determines which files to pre-translate. Previously, the command relied on the current configuration, and it was only possible to pre-translate the files that matched the configuration patterns. Now you can specify any file(s) in the Crowdin project to pre-translate.
Tip: Use the file list command to get the file paths in the current project.
Stringโ
- The
string editcommand changes:- Moved id to a parameter instead of a command option.
- Now --identifier is used as an option to edit and not to find the needed string.
- The
string deletecommand changes:- Moved id to a parameter instead of a command option. Now only 1 string can be removed at a time.
- Removed the --text and --identifier options. Only ID is used as a string identifier.
- The
commentcommand has been replaced with thecomment addcommand.
-crowdin string add Download --file main/src/strings.xml --identifier "download"
+crowdin string add Download --file src/strings.xml --branch main --identifier "download"
-crowdin string edit --id 12 --text new
+crowdin string edit 12 --text new
-crowdin string delete --id 12
+crowdin string delete 12
Listโ
- The
list branchescommand has been replaced with thebranch listcommand. - The
list sourcescommand has been replaced with theconfig sourcescommand. - The
list translationscommand has been replaced with theconfig translationscommand. - The
list projectcommand has been replaced with thefile listcommand. - The
list languagescommand has been replaced with thelanguage listcommand.
-crowdin list branches
+crowdin branch list
-crowdin list project
+crowdin file list
-crowdin list sources
+crowdin config sources
-crowdin list translations
+crowdin config translations
-crowdin list languages
+crowdin language list
The default language code for the language list command output has been changed from two_letters_code to id.
This change makes it more convenient, as the id is used consistently for the --language parameter across various commands.
Glossaryโ
The --name option has been removed from the upload and download commands, and the <id> parameter is now used instead:
-crowdin glossary download --id <id>
-crowdin glossary download --name <name>
+crowdin glossary download <id>
-crowdin glossary upload <file> --name <name>
+crowdin glossary upload <file> --id <id>
Tip: Use the glossary list command to get the id.
TMโ
The --name option has been removed from upload and download commands, and the <id> parameter is now used instead:
-crowdin tm download --id <id>
-crowdin tm download --name <name>
+crowdin tm download <id>
-crowdin tm upload <file> --name <name>
+crowdin tm upload <file> --id <id>
Tip: Use the tm list command to get the id.
Screenshotโ
The --name option has been replaced with the <id> parameter for the delete command because there can be multiple screenshots with the same name:
-crowdin screenshot delete <name>
+crowdin screenshot delete <id>
Tip: Use the screenshot list command to get the id.
Initโ
The generate alias has been removed:
-crowdin generate
+crowdin init
Lintโ
The lint command has been replaced with the config lint command:
- crowdin lint
+ crowdin config lint
Bundleโ
The download bundle command has been replaced with the bundle download command.
Exit codesโ
This release also includes more exit codes (previously we only had 0 for success and 1 for failure).
See the official documentation for more details.
Environment variablesโ
Previously, it was necessary to specify the environment variables in the configuration file in order to load the configuration from them.
Now the CLI can automatically pick up the environment variables if they are set in the shell. The supported environment variables are:
CROWDIN_PROJECT_IDCROWDIN_PERSONAL_TOKENCROWDIN_BASE_PATHCROWDIN_BASE_URL
Thanks to this change, it's now easier to work with the CLI in CI/CD environments, especially in the no-configuration-file use case.
Visit the Configuration File article for more details.
Deprecations and backward compatibilityโ
Download targetsโ
The deprecated download targets command has been removed. The configuration file no longer supports the targets section as well. Use Bundles instead.
Task commandโ
Removed backward compatibility for file numeric id in the task add command. Now only file path is supported:
-crowdin task add --file 12 --language uk
+crowdin task add --file src/strings.xml --language uk
Command output updatesโ
In this release, we've also reviewed and improved the output of many commands to make them more informative and user-friendly. Changes include list, add, upload, download, delete, and other commands for various resources.
Need help or have questions? Let's discuss it!

