IntlPull CLI
The official command-line interface for modern localization workflows. Engineered for scale, the IntlPull CLI acts as the bridge between your codebase, your Translation Management System (TMS), and your deployment pipelines.
Installation & Authentication
We recommend using npx to guarantee you are running the latest version, but global installation is fully supported.
npx @intlpullhq/cli loginAuth Priority: Environment Variable (INTLPULL_API_KEY) > Local Config (~/.intlpull/auth.json).
Commands Reference
init
Initialize IntlPull in your project. Creates config file (.intlpull.json) and detects framework settings automatically.
Usage
npx @intlpullhq/cli initKey Options
--project <id>Specify project ID to link--framework <type>Framework: next, react, vue, svelte, astro-y, --yesAuto-detect and initialize without promptsupload / push
Upload local translation keys to IntlPull. Automatically detects project, files, and git branch.
Usage
npx @intlpullhq/cli uploadKey Options
--file <path>Specific file to upload--source-onlyUpload only source language keys--apply-tmApply Translation Memory matches after pushing--dry-runPreview without uploadingdownload / pull
Download translations from IntlPull to your local project. Uses highly optimized parallel fetching by default.
Usage
npx @intlpullhq/cli downloadKey Options
--format <type>Output format (json, yaml, ts, ios, android, etc.)--languages <langs>Languages to download (comma-separated)--namespace <names>Namespaces to download--clean-orphansRemove orphaned local filessync
One-time fast synchronization (pull). Designed specifically for CI/CD environments.
Usage
npx @intlpullhq/cli sync --quietKey Options
--quietMinimal output for build logs--no-parallelDisable parallel fetchingwatch / listen
Watch for translation updates and auto-sync to local files in real-time. Perfect for local development.
Usage
npx @intlpullhq/cli watchKey Options
--interval <sec>Polling interval in seconds--onceSync once and exitcheck & fix
Identify and automatically resolve missing translations across target languages.
Usage
npx @intlpullhq/cli check --fixKey Options
--source <lang>Source language (default: en)--fail-on-missingExit with code 2 if missing (CI gate)import / export
Bulk import local files or export to ZIP archives.
Usage
npx @intlpullhq/cli import --path ./localesKey Options
--pattern <glob>File pattern to match (e.g., *.json)--format <type>File format (json, ios, android, etc.)migrate
Seamless migration from competitors (Lokalise, Crowdin, Phrase) or local legacy setups.
Usage
npx @intlpullhq/cli migrate from lokalise --api-key <key>Key Options
--from <platform>lokalise, crowdin, phrase--dry-runPreview migration mapping safelyworkflow
Enterprise approval workflows. Review, approve, or reject translation changes from the terminal.
Usage
npx @intlpullhq/cli workflow pendingKey Options
approve <id>Approve a pending translationreject <id> -mReject a translation with reasonemails & documents
Manage localized React Email templates and documents (PDF, DOCX) directly.
Usage
npx @intlpullhq/cli emails push --dir ./emailsKey Options
documents uploadUpload a document for translationzendesk syncSync Help Center articlesCI/CD Pipeline Integration
As a principal engineer, you want zero-friction deploys. The IntlPull CLI is designed to operate completely headless in CI/CD environments. All commands support non-interactive modes, gracefully skipping prompts and utilizing environment variables.
GitHub Actions
name: Sync Translationson:push:branches: [ "main" ]jobs:sync:runs-on: ubuntu-lateststeps:- uses: actions/checkout@v4- uses: actions/setup-node@v4with:node-version: '20'- name: Pre-build Translation Syncenv:INTLPULL_API_KEY: ${{ secrets.INTLPULL_API_KEY }}run: npx @intlpullhq/cli sync --quiet- name: Build Projectrun: npm run build
GitLab CI
sync-translations:stage: buildimage: node:20-alpinescript:- npx @intlpullhq/cli sync --quiet- npm run buildvariables:INTLPULL_API_KEY: $INTLPULL_API_KEYonly:- main
Vercel & Netlify Build Overrides
In your Vercel or Netlify project settings, provide INTLPULL_API_KEY as an environment variable and prepend the sync command to your build script:
npx @intlpullhq/cli sync --quiet && next buildAdvanced Configuration & TMS Features
Advanced architectures require complex mappings. Whether you have namespaced iOS String Tables, Android Multi-XML files, or strict ICU plurals, .intlpull.json manages mapping.
{"projectId": "proj_abc123","framework": "next","sourceLanguage": "en","output": "messages/[locale]/[namespace].json","platformDefaults": {"ios": { "defaultTable": "Localizable", "extension": ".strings" },"android": { "defaultFile": "strings", "prefix": "strings_" }}}
Pre-commit Hooks (Husky)
Prevent developers from pushing incomplete translations by adding a sanity check before commits:
npx @intlpullhq/cli check --source en --fail-on-missing