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.

npm versionnode version

Installation & Authentication

We recommend using npx to guarantee you are running the latest version, but global installation is fully supported.

$npx @intlpullhq/cli login

Auth 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 init

Key Options

--project <id>Specify project ID to link
--framework <type>Framework: next, react, vue, svelte, astro
-y, --yesAuto-detect and initialize without prompts

upload / push

Upload local translation keys to IntlPull. Automatically detects project, files, and git branch.

Usage

$npx @intlpullhq/cli upload

Key Options

--file <path>Specific file to upload
--source-onlyUpload only source language keys
--apply-tmApply Translation Memory matches after pushing
--dry-runPreview without uploading

download / pull

Download translations from IntlPull to your local project. Uses highly optimized parallel fetching by default.

Usage

$npx @intlpullhq/cli download

Key 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 files

sync

One-time fast synchronization (pull). Designed specifically for CI/CD environments.

Usage

$npx @intlpullhq/cli sync --quiet

Key Options

--quietMinimal output for build logs
--no-parallelDisable parallel fetching

watch / listen

Watch for translation updates and auto-sync to local files in real-time. Perfect for local development.

Usage

$npx @intlpullhq/cli watch

Key Options

--interval <sec>Polling interval in seconds
--onceSync once and exit

check & fix

Identify and automatically resolve missing translations across target languages.

Usage

$npx @intlpullhq/cli check --fix

Key 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 ./locales

Key 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 safely

workflow

Enterprise approval workflows. Review, approve, or reject translation changes from the terminal.

Usage

$npx @intlpullhq/cli workflow pending

Key Options

approve <id>Approve a pending translation
reject <id> -mReject a translation with reason

emails & documents

Manage localized React Email templates and documents (PDF, DOCX) directly.

Usage

$npx @intlpullhq/cli emails push --dir ./emails

Key Options

documents uploadUpload a document for translation
zendesk syncSync Help Center articles

CI/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 Translations
on:
push:
branches: [ "main" ]
jobs:
sync:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '20'
- name: Pre-build Translation Sync
env:
INTLPULL_API_KEY: ${{ secrets.INTLPULL_API_KEY }}
run: npx @intlpullhq/cli sync --quiet
- name: Build Project
run: npm run build

GitLab CI

sync-translations:
stage: build
image: node:20-alpine
script:
- npx @intlpullhq/cli sync --quiet
- npm run build
variables:
INTLPULL_API_KEY: $INTLPULL_API_KEY
only:
- 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 build

Advanced 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
    CLI Reference - IntlPull Documentation | IntlPull