# gt: General Translation CLI tool: gt init
URL: https://generaltranslation.com/es/docs/cli/reference/commands/init.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Ejecuta el asistente de configuración de General Translation para configurar un proyecto. Referencia de la API para el comando `gt init`.

`init` es el comando predeterminado: si ejecutas `npx gt` sin ningún comando, se ejecuta.

El asistente detecta tu framework y, según el proyecto, instala dependencias, configura el framework, crea un `gt.config.json` y genera credenciales. Para ver una guía paso a paso, consulta [Configurar la CLI](/docs/cli/guides/configuring).

```bash
npx gt init
```

## Cómo funciona [#how-it-works]

1. Detecta tu framework. Si es un Project con Next.js App Router o Mintlify, en su lugar ofrece conectar el agente de IA de [Locadex](/docs/platform/locadex/quickstart).
2. En un Project basado en React, instala opcionalmente el runtime correspondiente y configura el framework (experimental). Las aplicaciones con Next.js App Router reciben [`GTProvider`](/docs/react/reference/components/gt-provider) y `withGTConfig`. Las aplicaciones de Vite reciben una inicialización de [`initializeGTSPA`](/docs/react/reference/config#initialize-spa) que se ejecuta antes del punto de entrada de la aplicación existente. Las aplicaciones de TanStack Start reciben `gt-tanstack-start`, `src/loadTranslations.ts`, [`gtMiddleware`](/docs/react/tanstack-start/reference/functions/gt-middleware) en `src/start.ts`, [`initializeGT`](/docs/react/tanstack-start/setup#initialize) en `src/router.tsx` y [`GTProvider`](/docs/react/reference/components/gt-provider) en la ruta raíz. En las demás aplicaciones de React solo se instala la biblioteca.
3. Resuelve las configuraciones regionales predeterminada y de destino, y crea o actualiza `gt.config.json`. `--locales` reemplaza la lista de configuraciones regionales definida y `--file-formats` reemplaza los formatos que ofrece la configuración; los demás formatos y los ajustes no relacionados se conservan. Si `gt.config.json` no es válido, la configuración se detiene antes de realizar ningún cambio. Si usas almacenamiento local de Vite o TanStack Start, también crea un archivo para [`loadTranslations`](/docs/react/reference/functions/load-translations) y archivos vacíos para las configuraciones regionales de destino.
4. Instala `gt` como dependencia de desarrollo cuando el flujo de trabajo configurado requiere una instalación persistente de la CLI. La configuración del framework Vite no añade `gt`; sigue ejecutándolo con `npx gt`.
5. Opcionalmente, selecciona o crea un Project y genera una clave de runtime de desarrollo en `.env.local`. La configuración solo inicia sesión para este paso, antes de modificar archivos, y usa una clave de herramientas explícita o una sesión guardada si está disponible. Con Vite o TanStack Start y almacenamiento local, te pregunta si quieres habilitar las traducciones de desarrollo en vivo (por defecto, no); si lo rechazas, se omiten el inicio de sesión, la detección de Projects y la creación de la clave.

*Nota: El paso de configuración de React es experimental y puede no funcionar en todos los Projects. Revisa los cambios que realiza.*

### Selección del Project y credenciales de runtime

Si hay un ID del Project configurado, se reutiliza. De lo contrario, el asistente muestra una lista de [Projects accesibles](/docs/platform/openapi/reference/project/list-projects) para que selecciones uno, o te ofrece crear uno nuevo. Al crear un Project, elige una Organization en la que tengas permiso para crear Projects. Si no hay ninguna disponible, crea una Organization en el Dashboard o pide acceso a un administrador. En el modo interactivo, el nombre del Project es, por defecto, el nombre del directorio de la app; la creación en modo headless requiere `--project-name`. El Project se crea con la configuración regional de origen que hayas seleccionado.

Para seleccionar un Project existente no se necesita permiso para crear Projects en la Organization. Aun así, para aprovisionar una clave se necesita autorización de escritura de claves y permiso para delegar la generación en runtime. Si se proporciona explícitamente una clave de herramientas no válida o sin permisos suficientes, nunca se recurre al inicio de sesión como alternativa.

El aprovisionamiento crea una clave llamada `Development key (gt init)` que solo tiene el permiso `project:translations:generate`. Escribe el ID del Project y la clave de desarrollo sin mostrar el secreto ni modificar un `GT_API_KEY` existente. Esta clave de runtime no sirve para autenticar posteriormente los comandos de gestión de la CLI; usa tu inicio de sesión o una clave de herramientas con su propio alcance. (Consulta [credenciales](/docs/cli/guides/configuring#credentials)).

Si ya existen credenciales de runtime del framework para el mismo Project, se puede omitir el aprovisionamiento. Las configuraciones exclusivas de servidor que ya tengan un ID del Project y `GT_API_KEY` también lo omiten; los frameworks que traducen en el navegador no consideran un `GT_API_KEY` sin prefijo como clave de runtime.

Las variables generadas son `GT_PROJECT_ID` y `GT_DEV_API_KEY`, con los siguientes prefijos para los frameworks que traducen en el navegador:

* Next.js (App Router y Pages Router): `NEXT_PUBLIC_`
* Vite y TanStack Start: `VITE_`
* Gatsby: `GATSBY_`
* React: `REACT_APP_`
* Redwood: `REDWOOD_ENV_`

Las demás configuraciones usan variables sin prefijo. Las claves de desarrollo son solo para desarrollo local; para las credenciales de producción, consulta [credenciales de Next.js](/docs/react/nextjs/config#credentials). Nunca incluyas API Keys en los bundles desplegados en navegadores o dispositivos móviles.

## Flags [#flags]

Las flags responden a las preguntas del asistente, de modo que, al ejecutarlo, solo pregunta lo que falta. Las mismas flags de configuración y de credenciales funcionan con [`gt configure`](/docs/cli/reference/commands/configure).

### Modo de configuración

| Parámetro             | Descripción                                                                                                                                                                    | Tipo      | Opcional | Predeterminado   |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------- | -------- | ---------------- |
| `--no-interactive`    | No muestra ninguna solicitud. Se detiene antes de modificar archivos e indica las opciones que aún faltan. Se activa automáticamente cuando stdin o stdout no es una terminal. | `boolean` | Sí       | `false`          |
| `--json`              | Escribe en stdout los eventos de inicio de sesión, traspaso y resultado como líneas JSON, y el resto de la salida en stderr. Implica `--no-interactive`.                       | `boolean` | Sí       | `false`          |
| `--defaults`          | Acepta el valor recomendado para cada opción local que no esté resuelta por ningún flag ni por `gt.config.json`. Nunca crea Projects ni claves.                               | `boolean` | Sí       | —                |
| `--no-defaults`       | No ofrece los valores predeterminados recomendados.                                                                                                                            | `boolean` | Sí       | —                |
| `-c, --config <path>` | Ruta al archivo de configuración.                                                                                                                                              | `string`  | Sí       | `gt.config.json` |

### Configuración

| Parámetro                       | Descripción                                                                                                                                                                                                                                                                           | Tipo       | Opcional | Predeterminado                                       |
| ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------- | -------- | ---------------------------------------------------- |
| `--src <paths...>`              | Patrones glob para el código fuente de la aplicación.                                                                                                                                                                                                                                 | `string[]` | Sí       | [Según el framework](/docs/cli/reference/config#src) |
| `--default-locale <locale>`     | Configuración regional predeterminada, como `en`.                                                                                                                                                                                                                                     | `string`   | Sí       | `en` con `--defaults`                                |
| `--locales <locales...>`        | Configuraciones regionales de destino, como `fr es`. Reemplaza la lista configurada.                                                                                                                                                                                                  | `string[]` | Sí       | —                                                    |
| `--storage <storage>`           | Dónde se almacenan las traducciones del framework: `local` o `cdn`. `gt-vue` solo admite `local`.                                                                                                                                                                                     | `string`   | Sí       | `local` con `--defaults`                             |
| `--translations-dir <path>`     | Directorio de los archivos de traducción locales.                                                                                                                                                                                                                                     | `string`   | Sí       | Según el framework con `--defaults`                  |
| `--file-formats <formats...>`   | `json`, `md`, `mdx`, `ts`, `js`, `yaml` o `none`. Reemplaza la selección configurada entre estos formatos; los demás formatos configurados se conservan y se muestra una advertencia.                                                                                                 | `string[]` | Sí       | `none` con `--defaults` en proyectos con frameworks  |
| `--file-patterns <patterns...>` | Patrones `<format>=<glob>` que incluyen `[locale]`, como `json=./locales/[locale]/*.json`. Selecciona el formato.                                                                                                                                                                     | `string[]` | Sí       | `./**/[locale]/*.<format>` con `--defaults`          |
| `--package-manager <id>`        | Administrador de paquetes que se usa para las instalaciones: `npm`, `yarn_v1`, `yarn_v2`, `pnpm`, `bun` o `deno`. Para detectarlo, se busca el campo `packageManager` o `devEngines`, el archivo de bloqueo o el indicador de workspace reconocido más cercano, hasta la raíz de Git. | `string`   | Sí       | Detectado                                            |

### Credenciales del Project y de desarrollo

| Parámetro               | Descripción                                                                                                                                                                                 | Tipo      | Opcional | Valor predeterminado                                |
| ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- | -------- | --------------------------------------------------- |
| `--dev-credentials`     | Guarda un ID del Project y una nueva clave de desarrollo en `.env.local`. Usa `--no-dev-credentials` para omitir este paso.                                                                 | `boolean` | Sí       | —                                                   |
| `--live-translations`   | Almacenamiento local de Vite o TanStack Start: configura las traducciones de desarrollo en vivo, lo que genera una clave de desarrollo. Usa `--no-live-translations` para omitir este paso. | `boolean` | Sí       | `false` con `--defaults`                            |
| `--project-id <id>`     | Project existente que se usará para las credenciales de desarrollo.                                                                                                                         | `string`  | Sí       | —                                                   |
| `--create-project`      | Crea un nuevo Project para las credenciales de desarrollo.                                                                                                                                  | `boolean` | Sí       | `false`                                             |
| `--org-id <id>`         | Organization propietaria del nuevo Project. Solo es necesario si tienes acceso a más de una.                                                                                                | `string`  | Sí       | —                                                   |
| `--project-name <name>` | Nombre del nuevo Project.                                                                                                                                                                   | `string`  | Sí       | Nombre del directorio de la app, cuando se solicita |

### Configuración del framework

Estos flags solo se aplican a `gt init`. En Projects `gt-vue`, `gt init` acepta los flags de [`gt configure`](/docs/cli/reference/commands/configure) y omite la configuración de React.

| Parámetro                 | Descripción                                                                                                                                                                                                                             | Tipo      | Opcional | Valor predeterminado        |
| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- | -------- | --------------------------- |
| `--locadex`               | Mintlify y Next.js App Router: delega la configuración al agente de IA de Locadex a través de GitHub. Usa `--no-locadex` para realizar la configuración en local.                                                                       | `boolean` | Sí       | `false` con `--defaults`    |
| `--react-setup`           | Projects de React: instala la biblioteca y, en Next.js App Router, Vite o TanStack Start, añade su configuración (consulta [Cómo funciona](#how-it-works)). Usa `--no-react-setup` para no modificar el código fuente de la aplicación. | `boolean` | Sí       | `true` con `--defaults`     |
| `--framework <framework>` | Framework de React para `--react-setup`. Reemplaza el framework detectado automáticamente.                                                                                                                                              | `string`  | Sí       | Detectado, con `--defaults` |
| `--format`                | Next.js App Router: formatea los archivos modificados durante la configuración con el formateador detectado. Usa `--no-format` para omitir este paso.                                                                                   | `boolean` | Sí       | `true` con `--defaults`     |

## Ejecuciones headless [#headless]

Una ejecución no interactiva resuelve cada respuesta a partir de su flag; si no, de `gt.config.json` y, por último, del valor recomendado cuando se indica `--defaults`. Si aún falta alguna respuesta, finaliza antes de modificar archivos y enumera las opciones que debes pasar. Las credenciales de desarrollo nunca se crean de forma predeterminada. Para el almacenamiento local de Vite y TanStack Start, pasa `--live-translations` con un ID del Project o `--create-project --project-name <name>`, o bien pasa `--no-live-translations`. Para otras configuraciones, usa `--dev-credentials` o `--no-dev-credentials`. No combines las familias de flags `--[no-]live-translations` y `--[no-]dev-credentials`; la CLI rechaza cualquier combinación de ambas antes de modificar archivos. Si el Project ya tiene credenciales de runtime, este paso se omite.

La configuración solo inicia sesión cuando aprovisiona credenciales y no dispone de una clave de herramientas ni de una sesión guardada. Sin una terminal, el inicio de sesión utiliza un código de dispositivo y espera a que una persona lo apruebe; no abre ningún navegador. Con `--json`, el comando escribe un objeto JSON por línea, identificado por su campo `type`:

* `authorization_required` — `verificationUri`, `userCode` y, cuando esté disponible, `verificationUriComplete`.
* `handoff` — la `url` de GitHub de Locadex, con `reason: "locadex"`.
* `result` — `command`, `outcome` (`success`, `needs_human_action` o `failed`), `completedSteps` y, cuando estén presentes, `url`, `actions` para el seguimiento manual, `missingOptions` y `error`.

`completedSteps` no incluye en la lista `gt.config.json` ni los archivos del loader de traducciones generados si no han cambiado. Si alguno de ellos cambia, el paso indica si se ha creado o actualizado.

## Ejemplo [#example]

```bash
# Ejecutar el asistente de configuración completo
npx gt init

# Ejecutar gt sin ningún comando hace lo mismo
npx gt

# Configuración local en modo headless: sin crear un proyecto nuevo ni una clave de desarrollo
npx gt init --no-interactive --defaults --locales fr es --no-dev-credentials --json
```

## Otras notas [#notes]

* `init` comparte con [`gt configure`](/docs/cli/reference/commands/configure) la configuración, el loader, la instalación de la CLI y el flujo de credenciales, y añade el paso experimental de configuración de React. No ejecuta [`gt setup`](/docs/cli/reference/commands/setup), que sube tus archivos de origen.
* En un monorepo, ejecuta `init` desde el directorio de la app específico. El comando se detiene sin cambiar archivos en la raíz de un workspace con `pnpm-workspace.yaml` o un campo `workspaces`, a menos que solo enumere la propia app.
* La configuración automática no está disponible para aplicaciones Electron.
* La API Key y el ID del Project no son necesarios para usar `gt-react` o `gt-next`; solo se necesitan para hacer llamadas a la API de General Translation.
* Si la configuración experimental de React no funciona en tu Project, configúralo manualmente siguiendo la documentación de [React](/docs/react/react-quickstart).
* Git debe estar instalado para aprovisionar credenciales de desarrollo. Mantén `.env.local` fuera del control de versiones e inclúyelo en `.gitignore`, y usa la configuración de Git habitual de tu repositorio. Init rechaza ubicaciones de archivo inseguras y anulaciones de Git. Un enlace simbólico debe apuntar a un archivo regular existente que cumpla los mismos requisitos de seguridad. Las variables de entorno existentes que no estén relacionadas se conservan.
* Ejecuta un solo comando de configuración a la vez. Si no se puede actualizar `.env.local` (por ejemplo, por asignaciones multilínea no admitidas), es posible que queden Projects o claves recién creados. Los cambios anteriores de configuración y dependencias no se revierten.

## Sitemap

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