# gt: General Translation CLI tool: gt setup URL: https://generaltranslation.com/en-GB/docs/cli/reference/commands/setup.mdx --- title: gt setup 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, just as [`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 queuing 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 ` | Production API key. | `string` | Yes | `GT_API_KEY` | | `--project-id ` | Project ID. | `string` | Yes | `GT_PROJECT_ID` | | `-c, --config ` | 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, queue 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.