Localization CLI
for Developers

The fastest way to automate i18n workflows. Synchronize localization files between your code and the cloud with one command.

No credit card required14-day free trialTracking-free service
Terminal
# Upload translations to the cloud $ simplelocalize upload --path ./translations/{lang}.json --format single-language-json ✓ Successfully uploaded all translations! # Download translated files $ simplelocalize download --path ./translations/{lang}.json --format single-language-json ✓ Downloaded 12 languages
GitHub ActionsGitLab CIBitbucket PipelinesJenkinsCircleCIAzure DevOpsJSONYAMLXLIFFPO/POTARBAndroid XMLiOS StringsGitHub ActionsGitLab CIBitbucket PipelinesJenkinsCircleCIAzure DevOpsJSONYAMLXLIFFPO/POTARBAndroid XMLiOS Strings

We power your product localization
From first commit to global launch

Used at IntersportUsed at IKEAUsed at InvisalignUsed at AmdocsUsed at OSRAMUsed at project44Used at nglUsed at SpitfireAudioUsed at SagemathUsed at UNICEFUsed at AstraZenecaUsed at nabooUsed at walcuUsed at vocal remover

What is SimpleLocalize CLI

Automate your i18n from terminal

SimpleLocalize CLI is a developer-first tool designed to bridge the gap between your local codebase and our cloud-based translation management system. It acts as a powerful automation layer that eliminates manual file handling, allowing you to push and pull translations directly from your terminal or CI/CD pipelines.

Built for performance, it is a standalone binary with no runtime dependencies (like Node.js or Python), making it incredibly easy to install and run on macOS, Windows, and Linux.

Localization CLI publishing translations to the cloud

How the localization CLI works

From local files to translated app in four steps

SimpleLocalize CLI bridges your local project and the cloud-based translation editor. Upload source strings, translate with your team or AI, and pull translations back into your build.

1

Install the CLI

Run a single shell command to install. Create a simplelocalize.yml config file with your project settings.

2

Upload source strings

Push your local translation files to the cloud editor. Supports JSON, YAML, XLIFF, and 30+ formats.

3

Translate in the editor

Use the web-based translation editor, invite translators, or auto-translate with DeepL, Google, or OpenAI.

4

Download translations

Pull finished translations back into your repo. Use in CI/CD pipelines for fully automated localization.

For a step-by-step walkthrough, see the getting started guide.

What you can do with the CLI

Upload, download, auto-translate, and extract translation keys, all from your terminal.
Integrate into any CI/CD pipeline and keep your localization workflow fully automated.

Upload translations
from any format

Push local translation files to the cloud editor with a single command. The CLI auto-detects your file format and maps keys, languages, and namespaces. Upload from JSON, YAML, XLIFF, PO, ARB, and 30+ other formats.

Upload docs
Upload localization files using the SimpleLocalize CLI

Download translations
in any format

Pull finished translations back into your project. Export to a different format than you uploaded: import JSON, export Android XML. Use --languageKey and --namespace flags to download exactly what you need.

Download docs
Download localization files using the SimpleLocalize CLI

Auto-translate
from the terminal

Trigger auto-translation directly from the CLI using DeepL, Google Translate, or OpenAI. Fill in missing translations before downloading, or use it as part of your CI/CD pipeline to keep every language up to date automatically.

More commands
Auto-translate localization files with CLI and AI

File format support

Supports 30+
localization formats

Import and export JSON, YAML, XLIFF, PO/POT, ARB (Flutter), Android XML, iOS Strings, Java Properties, PHP, CSV, Excel, and many more. Import in one format, export in another. The CLI handles the conversion.

Use namespaces to manage translations for a React frontend (JSON), an Android app (XML), and an iOS app (Strings) all in the same project.

JSON
YAML
XLIFF
PO / POT
ARB (Flutter)
Android XML
iOS Strings
Java Properties
PHP
CSV
Excel
Ruby YAML

Built for CI/CD pipelines

Automate your entire localization workflow. Run the CLI in any CI/CD environment to upload source strings, auto-translate, and download finished translations as part of your build.

How to get started
with SimpleLocalize CLI

SimpleLocalize CLI is a powerful tool that helps you to automate the translation process in your project.
You can easily synchronize translation files between you local project and SimpleLocalize Translation Editor.

# macOS / Linux / Windows (WSL) curl -s https://get.simplelocalize.io/2.10/install | bash # Windows (PowerShell) . { iwr -useb https://get.simplelocalize.io/2.10/install-windows } | iex; # npm npm install @simplelocalize/cli
# macOS / Linux / Windows (WSL)
curl -s https://get.simplelocalize.io/2.10/install | bash

# Windows (PowerShell)
. { iwr -useb https://get.simplelocalize.io/2.10/install-windows } | iex;

# npm
npm install @simplelocalize/cli

Install CLI

0
Execute a shell script to auto-install CLI or download a binary file. Create a YAML file with configuration for your project.
Get started with CLI

Upload translations

1
Execute upload command to push your local translation files to translation editor.
See how to upload translations
$ simplelocalize upload \ --apiKey YOU_API_KEY \ --uploadFormat single-language-json \ --uploadPath ./source_messages.json
$ simplelocalize upload \
        --apiKey YOU_API_KEY \
        --uploadFormat single-language-json \
        --uploadPath ./source_messages.json
translation editor for translation strings and localization files

Manage translations

2
Your translations will show up in a translation editor. In web client you start auto-translation, see translations suggestions, edit translations and more.
Go to Translation Editor

Download translations

3
Download translations in any format you want. You can use CLI command or download translations manually.
See how to download translations
$ simplelocalize download \ --apiKey YOUR_API_KEY \ --downloadFormat single-language-json \ --downloadPath ./messages_{lang}.json
$ simplelocalize download \
        --apiKey YOUR_API_KEY \
        --downloadFormat single-language-json \
        --downloadPath ./messages_{lang}.json
cdn.simplelocalize.io
{ "en": { "CREATE_ACCOUNT": "Create account", "SIGN_IN": "Sign in", "WELCOME_TO_THE_JUNGLE" : "Welcome to the jungle" }, "es": { "CREATE_ACCOUNT": "Crear cuenta", "SIGN_IN": "Iniciar", "WELCOME_TO_THE_JUNGLE": "Bienvenido a la jungla" } }
{
  "en": {
    "CREATE_ACCOUNT": "Create account",
    "SIGN_IN": "Sign in",
    "WELCOME_TO_THE_JUNGLE" : "Welcome to the jungle"
  },
  "es": {
    "CREATE_ACCOUNT": "Crear cuenta",
    "SIGN_IN": "Iniciar",
    "WELCOME_TO_THE_JUNGLE": "Bienvenido a la jungla"
  }
}

Host translations

4
Instead of downloading translations, you can host them on SimpleLocalize CDN. It's free and you can use it with any programming language.
Learn about Translation Hosting

Why use a localization CLI

CLI automation vs. manual file management

Manually copying translation files between your repo and TMS leads to missed strings, stale translations, and broken builds. A localization CLI eliminates these risks.

Sync frequencyCopy files manually before each releaseAutomated sync on every push or build
Missing keysDevelopers forget to add new keys to the TMSExtract keys from source code automatically
Time to translateDays of back-and-forth with translatorsAuto-translate missing strings instantly
Format conversionConvert between formats manually or with scriptsImport in one format, export in another
CI/CD integrationNo automation, manual steps before deployRuns in GitHub Actions, GitLab CI, Jenkins, or any pipeline
ConsistencyTranslations drift between repo and TMSSingle source of truth, always in sync

Pro tip: Use a configuration file

Instead of passing flags every time, define your upload and download settings in a simplelocalize.yml file. The CLI reads it automatically, keeping your commands short and your setup version-controlled.

simplelocalize.yml
apiKey: YOUR_API_KEY uploadPath: ./src/translations/{lang}.json uploadFormat: single-language-json downloadPath: ./src/translations/{lang}.json downloadFormat: single-language-json
apiKey: YOUR_API_KEY
uploadPath: ./src/translations/{lang}.json
uploadFormat: single-language-json
downloadPath: ./src/translations/{lang}.json
downloadFormat: single-language-json

Why SimpleLocalize?

Most tools are overkill.
SimpleLocalize is fast, simple, and works out of the box.

Fast and customizable

SimpleLocalize is easy to get started with and focuses on the features that you and your team need the most. You can customize the editor to your needs choosing from a variety of options.

Flat pricing

No hidden costs! SimpleLocalize offers a simple and affordable plans for you and your projects. Within easy integration options and intuitive translation editor, it creates a wonderful selection.

Team members included

Every paid plan comes with a number of users you can add to your project. You don't need to worry about number of users as the price does not increase with every user.

Auto-translation included

Every paid plan comes with auto-translation characters that you receive every month. You can also use bring your own API keys and use them with SimpleLocalize in any plan (even free!).

Tools for Developers

SimpleLocalize gives developers the tools they need to automate and integrate localization into any workflow, such as CLI tool, VS Code extension, IntelliJ plugin, Figma integration, and more.

Personal support

From “how do I get started” to “I need XYZ” requests, when you need that extra helping hand, we’re here for you. We are here to make sure you get the most out of SimpleLocalize.

Start automating your i18n workflow

  • Install with a single command on macOS, Windows, or Linux
  • Upload and download 30+ translation file formats
  • Auto-translate with DeepL, Google Translate, or OpenAI
  • Extract translation keys from source code automatically
  • Integrate with GitHub Actions, GitLab CI, or any pipeline
  • Use YAML config file for a zero-configuration setup
Install the CLI
No credit card required5-minute setup
"The product
and support
are fantastic."
Laars Buur|CTO
"The support is
blazing fast,
thank you Jakub!"
Stefan|Developer
"Interface that
makes any dev
feel at home!"
Dario De Cianni|CTO
"Excellent app,
saves my time
and money"
Dmitry Melnik|Developer

What is a localization CLI?

A localization CLI (command-line interface) is a developer tool that automates the synchronization of translation files between a local codebase and a cloud-based translation management system (TMS). Instead of manually copying JSON, YAML, or XLIFF files back and forth, developers run a single command to upload source strings and download finished translations.

The SimpleLocalize CLI is an open-source i18n CLI tool that works on macOS (Apple Silicon and Intel), Windows, and Linux. It requires no runtime dependencies: just download the binary and run it. It integrates with any CI/CD pipeline including GitHub Actions, GitLab CI, Bitbucket Pipelines, Jenkins, and CircleCI.

How the SimpleLocalize CLI fits into continuous localization

Continuous localization means keeping translations in sync with your code at all times — not as a one-time export before a release. The SimpleLocalize CLI enables this by running as part of your build or deploy process. On every push, the CLI uploads new or changed source strings to the TMS, triggers auto-translation if configured, and downloads the latest translations into your repo.

This eliminates the manual handoff between developers and translators. Developers commit code with new strings, the CI pipeline uploads them, translators or AI complete the translations in the online translation editor, and the next build pulls everything back. The entire flow is automated and version-controlled.

Supported file formats

The CLI supports over 30 localization file formats including JSON (single-language and multi-language), YAML, XLIFF 1.2 and 2.0, PO/POT (Gettext), ARB (Flutter), Android XML, iOS Strings and Stringsdict, Java Properties, PHP arrays, CSV, Excel, and Ruby YAML. You can import in one format and export in another, for example, import from a single-language JSON used in your React app and export to Android XML for your mobile team.

Translation key extraction from source code

The CLI can scan your JavaScript, TypeScript, React, and other source files to automatically extract translation keys. It detects calls to t(), formatMessage(), and other i18n functions, then uploads the discovered keys to your SimpleLocalize project. This ensures that every translatable string in your code is tracked in the TMS — no manual key management required. Learn more in the extraction documentation.

Frequently asked questions

How do I install the SimpleLocalize CLI?

Run a single shell command to download and install the CLI binary. On macOS and Linux: curl -s https://get.simplelocalize.io/2.0/install | bash. On Windows, download the binary from GitHub releases. No runtime dependencies are required. See the getting started guide for details.

What file formats does the CLI support?

The CLI supports 30+ formats including JSON, YAML, XLIFF, PO/POT, ARB (Flutter), Android XML, iOS Strings, Java Properties, PHP, CSV, Excel, and more. You can import in one format and export in another.

Can I use the CLI in CI/CD pipelines?

Yes. The CLI is a standalone binary with no dependencies, making it easy to add to GitHub Actions, GitLab CI, Bitbucket Pipelines, Jenkins, CircleCI, Azure DevOps, or any other CI/CD tool. Use it to upload source strings and download translations as part of your build.

Does the CLI support auto-translation?

Yes. You can trigger auto-translation from the command line using DeepL, Google Translate, OpenAI or other AI models. This is useful in CI/CD pipelines to fill in missing translations before downloading.

How does the CLI relate to the SimpleLocalize TMS?

The CLI is part of the SimpleLocalize Translation Management System. It acts as the bridge between your local code and the cloud-based translation editor. Upload strings via CLI, manage translations in the editor, and pull them back with the CLI. It also works with the REST API and CDN hosting.

Is the CLI open-source?

Yes. The SimpleLocalize CLI is fully open-source and available on GitHub. You can inspect the code, contribute, or build from source.

Does the CLI work with customer-specific translations?

Yes. Use the --customerId flag to download translations for a specific tenant or customer context. This is useful for white-label and multi-tenant applications where each client needs customized text.