Features
CLI Tool

A JSON Translation CLI Built With i18n In Mind

Use the JTranslate CLI to pull your web projects language files, and keep your translations up to date, all from your development environment.

Push & pull

Upload source files and download translations with simple commands.

CI/CD ready

Ready to use in automation workflows.

Secure project keys

Project-scoped keys keep access controlled and safe for teams.

~/my-project
# Install globally
$|

Commands You're Already Familiar With

No need to learn anything new here, these are commands you likely already know from git - but this time used to manage your translations. See the commands more in depth

jtranslate init

Triggers the setup wizard and links your local directory to your remote web project. You only need to run this once per project.

jtranslate init <cli_key>

jtranslate status

Compares your local source and target languages with your web project. Shows which targets are due an update.

jtranslate status

jtranslate push

Uploads your source JSON and initiates the update wizard.

jtranslate push

jtranslate pull

Pulls the target languages from your JTranslate web project.

jtranslate pull

Where the CLI fits into real workflows

Whether you use the CLI as a localization companion whilst you develop, or only run it once as part of your CI pipeline - the goal remains the same: keep target languages up to date and in sync with the source as effortlessly as possible.

A localization companion

Keep your target languages up to date as you work on your next feature.

Pipeline automation

Sync locale files as part of your build & deploy pipelines, so releases always ship with the latest translations.

Built With Security In Mind

The CLI is designed to be used securely, with project-scoped access and keychain support so you can integrate with peace of mind.

Project-scoped keys

CLI access is tied to a specific project, your key includes both your project identifer as well as your user authentication token.

Keychain by default

On developer machines, keys can be stored in the OS keychain instead of any plaintext config or .env files.

Secrets for CI

Build servers can authenticate via secrets, keeping your key in your CI provider's vault.

A GitHub Actions Example

Automate your translation on push to main. Here's a ready-to-use example workflow:
https://docs.jtranslate.dev/cli/ci-cd

.github/workflows/translate.yml
GitHub Actions
name: Translate all locales

on:
  push:
    branches: [ main ]

jobs:
  jtranslate:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 20

      - name: Sync translations
        env:
          JTRANSLATE_CLI_KEY: $JTRANSLATE_CLI_KEY
        run: |
          npx jtranslate-cli push \
            --locales ./locales \
            --source ./locales/en.json \
            --all \
            --approve-cost

      - name: Commit changes
        run: |
          git config user.name "github-actions[bot]"
          git config user.email "github-actions[bot]@users.noreply.github.com"
          git add locales .jtranslate.config.json
          git commit -m "chore(i18n): update translations" || exit 0
          git push

CLI FAQ

Start with 375 free translation keys

Try it free now, then upgrade any time for projects, change detection, CLI sync, and more.

Start for free