BabelizeBabelize
CLI

Engine Runs

Start a Babelize translation run from the CLI and watch the pipeline live, phase by phase, from string extraction to the pull request. Includes run history.

Commands

babelize run start

Start a full Babelize engine run on a cloud project (a "babel"). It runs on Babelize's servers and, for GitHub projects, opens a pull request when it's done.

babelize run start                                   # project and languages from .babelize/config.json
babelize run start --project <id> --languages es,fr,de
babelize run start --project <id> --languages ja,zh --branch develop
OptionDescription
-p, --project <id>Project ID. Defaults to the project in .babelize/config.json (written by babelize init).
-l, --languages <codes>Target languages, comma-separated. Defaults to the project's languages in .babelize/config.json.
--branch <branch>Git branch to run on
--no-pollStart the run and return immediately
--no-prDon't open a pull request when the run completes (never attempted for ZIP projects)

The CLI follows the run, ticking off each phase as it finishes:

  ✓ Workspace validation
  ✓ String extraction
  ✓ Key generation
  ✓ Base locale and lockfile
  ✓ Translation
  ✓ Code injection
  ✓ Finalization
  ✓ Summary

Then it prints the run's status (credits used, languages, translation stats) and opens the PR, or tells you to run babelize pr update if the project's PR is still open. It exits 0 when the run completed, 6 when it failed and 128 when it was cancelled.

Use --no-poll to start the run and return immediately:

babelize run start --project <id> --languages es --no-poll

babelize run status <babelId>

Check the status of a specific babel job.

babelize run status <babel-uuid>
babelize run status <babel-uuid> --watch   # Keep polling until done
babelize run status <babel-uuid> --watch --json   # Final status as JSON (CI-friendly)

babelize run analyze

Analyze source code to detect framework, config, and string patterns.

babelize run analyze --project <id>

babelize scan [directory]

Scan a local directory for hardcoded strings without a project or API key. It's useful for checking i18n readiness before your first run. It uses the same extractor as babelize translate, so it lists exactly what a translate run would extract. It honors include and exclude in .babelize/config.json (details).

babelize scan                          # Scan the current directory
babelize scan ./src                    # Scan a subdirectory
babelize scan --extensions .ts,.tsx    # Restrict file extensions
babelize scan --exclude src/registry   # Leave a folder out (repeatable; --include too)
babelize scan --json                   # Machine-readable results

Default extensions: .tsx, .jsx, .ts, .js, .vue, .html.

Modular Architecture

ModuleWhat Happens
Workspace ValidationFramework detection (React, Next.js, Django and static HTML; Vue and React Native in beta)
String ExtractionAST parsing finds hardcoded strings
Key GenerationCreates i18n keys with collision detection
Base LocaleWrites the source locale file
LockfileSplits keys into already translated (reused) and new or changed (translated), so reruns only pay for new text
TranslationBabelize-hosted translation (a hosted LLM, or the NLLB model), or your own key (BYOK)
Code InjectionModifies source files with t() calls, then formats dates, numbers and prices for the locale
FinalizationDependency injection, config file creation
SummaryStats, diffs, and analysis

Babels (Run History)

babelize babels list                         # All runs
babelize babels list --project <id>          # Filter by project
babelize babels list --limit 50             # More results
babelize babels get <babel-uuid>            # Single run with logs
babelize babels cancel <babel-uuid>         # Stop a queued or running run (credits are returned)

Last updated: 2026-11-01

How is this guide?

On this page