Skip to main content

Introduction

Welcome to the official documentation site for Crowdin CLI - a fast, dependency-free command-line tool for managing your localization projects on Crowdin. Upload source files, download translations, and keep your localized content up-to-date with just a few simple commands.

Crowdin CLI is fast, portable, and easy to automate. It runs the same on your machine and in CI, and its scriptable output fits naturally into build pipelines and AI agent workflows.

With Crowdin CLI you can:

  • Automate updating your source files in your Crowdin project
  • Download translations from Crowdin and automatically save them in the correct locations
  • Upload all your existing translations to Crowdin in minutes

Crowdin CLI is cross-platform: it runs in a terminal on Linux and macOS, or in Command Prompt on Windows.

Crowdin CLI 5.0 is here! 🚀

The CLI has been rewritten from the ground up in TypeScript, powered by Bun - it starts instantly, requires no Java, and speaks JSON and TOON for your scripts and AI agents. Your crowdin.yml and commands stay the same. Read the announcement and upgrade:

npm install -g @crowdin/cli

Docker Pulls npm homebrew downloads Chocolatey GitHub all releases codecov

GitHub Used by GitHub contributors GitHub GitHub Repo stars

Features​

  • Interactive generation of a configuration file
  • Upload source files and existing translations to a Crowdin project
  • Download the latest translations from Crowdin to the specified place
  • Concurrent upload of source and translation files
  • Show translation and proofreading progress for a project
  • Manage source strings in a Crowdin project
  • Manage glossaries and translation memories
  • Manage tasks in a Crowdin project
  • Manage source files and branches in the current project
  • Machine-readable output for scripts and AI agent workflows
  • Enrich string context with AI agents
  • Run auto-translation via MT, TM, or AI
  • Cached source uploads that skip files unchanged since the last run
  • Polished interactive prompts - select menus, spinners, and graceful cancellation
  • Shell completion for Bash, Zsh, Fish, and PowerShell
  • HTTP Proxy support including authorization
  • and more.

AI Agents​

Crowdin CLI treats AI agents as first-class users. Millisecond startup, stable exit codes, and machine-readable output make it a tool an agent can call dozens of times in a row - cheaply and predictably:

  • Use --output toon when the consumer of the output is an LLM - the same data as json at a fraction of the token cost.

  • Install the crowdin-cli Agent Skill so your agent knows the configuration patterns, the sync workflow, and the exit codes without trial and error:

    npx skills add crowdin/skills --skill crowdin-cli

    It's also available as a Claude Code plugin, a Gemini CLI extension, and more - see the installation options.

  • Let your agent enrich your strings with context: with the crowdin context commands, the agent downloads your strings, analyzes the codebase to see how each one is used, and pushes the descriptions back to Crowdin - so translators and AI translations stop guessing. Read the tutorial: Context Enrichment with AI Agents.

Usage​

Here is an overview of the basics of using the CLI. Use the following command to run the CLI:

crowdin some-command [CONFIG OPTIONS] [OPTIONS]

Options​

Here are the common options for all CLI commands:

OptionDescription
-h, --helpShow the help message and exit
--no-colorsDisable colors and styles
--no-progressDisable progress on executed command
-v, --verboseShow more information on the command execution
-V, --versionPrint version information and exit
--debugProvide additional debugging information in case of errors
-o, --output=…Change the output format (choices: json, toon, plain)
-c, --config=…Specify a path to the configuration file (default: crowdin.yml)
--identity=…Specify a path to user-specific credentials

Config options​

Crowdin CLI config options provide an alternative way to pass options that can be configured via the configuration file. When config options are specified as command parameters, CLI considers them to have higher priority than the options specified in the configuration file. The config options also allow the CLI to be used without a configuration file.

Here are the common config options for all CLI commands:

OptionDescription
-T, --token=…Personal Access Token required for authentication
--base-url=…Base URL of Crowdin server for API requests execution (https://api.crowdin.com for crowdin.com, https://{organization-name}.api.crowdin.com for Crowdin Enterprise)
--base-path=…Path to your project directory on a local machine (default: .)
-i, --project-id=…Numerical ID of the Crowdin project

Some commands have their own config options.

Output formats​

By default, the CLI prints output designed for people. The --output (-o) option switches it to one of three machine-readable formats. Each format has its own purpose and look:

  • text (default) - a human at a terminal. Colors, symbols, spinners, progress, and friendly messages - everything decorative lives here.
  • plain - a shell pipeline. One bare line per entity, identifier first - no symbols, no colors, no prose - so the output composes with grep, awk, and xargs without any extra tooling. An empty result prints nothing.
  • json - a parser. The complete result as a structured document, carrying the same fields the text output shows.
  • toon - an AI agent. The same data as json in TOON's token-efficient encoding - a natural fit for agent workflows.

In the machine-readable formats, stdout carries only the result; warnings and errors go to stderr, so piped output always stays parseable:

crowdin file list --output plain # one "<id> <path>" line per file

For commands that support it, --verbose adds more information to the output in any format.

Further Reading​