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

# Commands

> Commands supported by the CLI

## Fetching text

Once you've [installed](/cli-reference/authentication#installation), [authenticated](/cli-reference/authentication#authentication), and [configured](/cli-reference/configuration) the CLI, you'll be able to pull down up-to-date text by running the CLI:

```bash theme={null}
npx @dittowords/cli pull
```

This will fetch the latest text values from Ditto and write them to the output directory as specified by your [config file](/cli-reference/configuration). For more information on the structure of files created by Ditto, see [files](/cli-reference/files).

Because the Ditto CLI updates your string files locally, you can continue to manage it as you would with any other product update (push it to staging, commit changes to a branch, etc.).

**Custom config file location**

By default, the pull command will look for a config file in `./ditto/config.yml` (relative to where you run the CLI command). To use a config file from a different location, provide the path via `-c` or `--config` flag:

```bash theme={null}
npx @dittowords/cli pull -c ./ditto/path/to/myConfig.yml
```

**Legacy support**

Version `5.x` of the CLI is set up to pull text from the latest version of Ditto by default. However, it still contains support for all features from `4.x` via the `--legacy` flag. To run the CLI in legacy mode, add the `--legacy` flag to any command that was supported by `v4.5.2`. View the [legacy documentation](/legacy/cli-reference-legacy/authentication) for full details.

```bash theme={null}
npx @dittowords/cli --legacy help
npx @dittowords/cli --legacy pull
```

## Scan

The `scan` command analyzes a path for user-facing text and sends the candidates it finds to Ditto, where you can review them and turn them into Ditto components from within the web app.

```bash theme={null}
npx @dittowords/cli scan <path>
```

`<path>` is the file or directory to scan. The CLI extracts text candidates, uploads them to Ditto, and prints a link to view progress and results in the web app:

```
Scan initiated! Visit https://app.dittowords.com/scan/<id> to view progress and see results.
```

<Info>
  **Requires Node.js 20 or higher.** Scan depends on packages that require Node
  20+. See [Installation](/cli-reference/authentication#installation).
</Info>

**Output candidates locally**

To write the extracted candidates to disk instead of uploading them to Ditto, pass `--local` along with `--out-dir`:

```bash theme={null}
npx @dittowords/cli scan <path> --local --out-dir ./out
```

Use `--prefix <prefix>` to prefix the names of the output files.
