# gt: General Translation CLI tool: gt setup
URL: https://generaltranslation.com/en-US/docs/cli/reference/commands/setup.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Upload source files and register a project for General Translation. API reference for the gt setup command.

Uploads your source files and sets up the project for translation, without downloading results. It runs the same file collection and upload step that [`gt translate`](/docs/cli/reference/commands/translate) performs before translation begins.

Use `setup` when you want to register your source content with the platform as a discrete step — for example, at the start of a split CI pipeline. It requires a production API key and project ID.

*Note: `setup` is available for base (non-framework) projects and the React-family frameworks — `gt-react`, `gt-next`, `gt-react-native`, and `gt-tanstack-start`. It is not registered for `gt-node` or Python projects.*

```bash
npx gt setup
```

## How it works [#how-it-works]

1. Reads `gt.config.json` to determine which source files to collect.
2. Collects and hashes your translatable source files, the same way [`gt translate`](/docs/cli/reference/commands/translate) does before translating.
3. Uploads new and changed source files, registering the project with the platform.
4. Exits without enqueuing translations or downloading results.

## Flags [#flags]

The `setup` command accepts the same flags as [`gt translate`](/docs/cli/reference/commands/translate#flags). The flags most commonly used with it are below; the linked reference above lists the complete set.

| Parameter | Description | Type | Optional | Default |
| --- | --- | --- | --- | --- |
| `--api-key <key>` | Production API key. | `string` | Yes | `GT_API_KEY` |
| `--project-id <id>` | project ID. | `string` | Yes | `GT_PROJECT_ID` |
| `-c, --config <path>` | Path to the config file. | `string` | Yes | `gt.config.json` |
| `--dry-run` | Collect files and report them without uploading. | `boolean` | Yes | `false` |

## Example [#example]

```bash
# Upload and register source files with the platform
npx gt setup

# Report the files that would be uploaded without uploading them
npx gt setup --dry-run
```

## Other notes [#notes]

- `setup` also runs as the source-registration step of the [`gt init`](/docs/cli/reference/commands/init) wizard.
- After registering source files, enqueue and download translations with [`gt enqueue`](/docs/cli/reference/commands/enqueue) and [`gt download`](/docs/cli/reference/commands/download), or run [`gt translate`](/docs/cli/reference/commands/translate) to translate in one step.

## Sitemap

See the full [sitemap](https://generaltranslation.com/sitemap.md) for all pages.
