> ## Documentation Index
> Fetch the complete documentation index at: https://nango-scrips-ref.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# CLI

### Install the Nango CLI

Install the Nango CLI globally:

```bash
npm install nango -g
```

In the folder where you want your integration folder (e.g. root of your project), run:

```bash
nango init # Creates `./nango-integrations` with initial config
```

### CLI Authentication

Add the following env vars. We recommend that you have a `.env` file in `./nango-integrations`:

```bash
NANGO_SECRET_KEY_PROD='<prod-secret-key>'
NANGO_SECRET_KEY_DEV='<dev-secret-key>'
```

Get your `prod` and `dev` secret keys from the [Project Settings tab](https://app.nango.dev/project-settings) (toggle between the `prod` and `dev` environment in the left nav bar).

<Info>
  For self-hosting, set the `NANGO_HOSTPORT` env variable to `http://localhost:3003` (for local development) or your instance's URL.
</Info>

## All CLI commands & command details

Check out all CLI commands by running:

```bash
nango
```

Get details about a specific command by running:

```bash
nango [command] --help
```

| Command                 | Description                                                                                           | Details                                                                                       |
| ----------------------- | ----------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- |
| `nango init`            | Creates the `nango-integrations` directory with a demo Github integration.                            | Generates `models.ts`, but not the compiled `.js` files.                                      |
| `nango dev`             | Necessary to edit sync configurations and scripts.                                                    | Watches the `nango.yaml` and sync scripts, re-generates `models.ts` and compiled `.js` files. |
| `nango generate`        | Generates an sync script `.ts` file with initial scaffold when new syncs appear in your `nango.yaml`. | Re-generates `models.ts`, not the compiled `.js` files.                                       |
| `nango dryrun <params>` | Lets you test sync scripts locally.                                                                   |                                                                                               |
| `nango deploy <env>`    | Lets you deploy your sync to your `dev` or `prod environment`                                         | Generates the compiled `.js` files.                                                           |

## Flags & environment variables

Global command flags:

```bash
# Command flag to auto-confirm all prompts (useful for CI).
--auto-confirm 
```

Environment variables:

```bash
# Recommendation: in a ".env" file in ./nango-integrations.

# Authenticates the CLI (get the keys in the dashboard's Projects Settings).
NANGO_SECRET_KEY_DEV=xxxx-xxx-xxxx
NANGO_SECRET_KEY_PROD=xxxx-xxx-xxxx

# Nango's instance URL (OSS: change to http://localhost:3003 or your instance URL).
NANGO_HOSTPORT=https://api.nango.dev # Default value

# How to handle CLI upgrades ("prompt", "auto" or "ignore").
NANGO_CLI_UPGRADE_MODE=prompt # Default value

# Whether to prompt before deployments.
NANGO_DEPLOY_AUTO_CONFIRM=false # Default value
```

<Tip>
  **Questions, problems, feedback?** Please reach out in the [Slack community](https://nango.dev/slack).
</Tip>
