> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nt3.io/llms.txt
> Use this file to discover all available pages before exploring further.

# nt3 pull

> Pull translations from Entri to your local project.

Download translation files from Entri and write them to your local project. By default, all target languages configured in your Entri project are pulled.

## Usage

```bash theme={null}
nt3 pull [options]
# alias: nt3 down
```

## Examples

```bash theme={null}
# Pull all target languages
nt3 pull

# Pull a single language
nt3 pull -l fr

# JSON output for CI/CD
nt3 pull --json
```

## Options

| Flag                    | Description                                   |
| ----------------------- | --------------------------------------------- |
| `-l, --language <lang>` | Pull a specific language only (e.g., `-l fr`) |
| `--json`                | Output results as JSON                        |

## How pull works

`nt3 pull` fetches translations from the Entri export API and writes them to the file paths defined in your `.nt3.yml`. The `{lang}` placeholder in each file pattern is replaced with the language code.

For example, with this config:

```yaml theme={null}
file_patterns:
  - path: "src/locales/{lang}.json"
    format: json-nested
```

Running `nt3 pull` with French and Dutch configured as target languages writes:

* `src/locales/fr.json`
* `src/locales/nl.json`

If the target directory does not exist, it is created automatically.

## Pulling a single language

Use `-l` to pull one language at a time instead of all configured languages:

```bash theme={null}
nt3 pull -l de
```

This is useful when you only need to refresh a specific locale, or when running language-specific jobs in parallel.

## JSON output

With `--json`, the command suppresses progress output and prints a structured result:

```json theme={null}
{
  "success": true,
  "files": [
    {
      "language": "fr",
      "path": "src/locales/fr.json",
      "format": "json-nested"
    },
    {
      "language": "nl",
      "path": "src/locales/nl.json",
      "format": "json-nested"
    }
  ],
  "errors": []
}
```

On failure, the relevant file entry includes an `error` field and the process exits with code `1`.

## What gets exported

The export reflects the current state of translations in Entri — all keys with their latest translated values. Keys that have not been translated yet are included with their source-language fallback value, depending on the export format.

To ensure translations are up to date before pulling, run `nt3 translate --all` first, or trigger translation from the Entri dashboard.
