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| Option | Description |
|---|---|
-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-poll | Start the run and return immediately |
--no-pr | Don'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
✓ SummaryThen 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-pollbabelize 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 resultsDefault extensions: .tsx, .jsx, .ts, .js, .vue, .html.
Modular Architecture
| Module | What Happens |
|---|---|
| Workspace Validation | Framework detection (React, Next.js, Django and static HTML; Vue and React Native in beta) |
| String Extraction | AST parsing finds hardcoded strings |
| Key Generation | Creates i18n keys with collision detection |
| Base Locale | Writes the source locale file |
| Lockfile | Splits keys into already translated (reused) and new or changed (translated), so reruns only pay for new text |
| Translation | Babelize-hosted translation (a hosted LLM, or the NLLB model), or your own key (BYOK) |
| Code Injection | Modifies source files with t() calls, then formats dates, numbers and prices for the locale |
| Finalization | Dependency injection, config file creation |
| Summary | Stats, 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
Projects
Create, manage, sync and archive Babelize projects from the CLI, and manage target languages, team members and translation memory, with command examples.
Pull Requests
List, raise and update GitHub pull requests with translated locale files from the Babelize CLI, so every translation change lands as a reviewable PR.