Install the Nango CLI

Install the Nango CLI globally:

npm install nango -g

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

nango init

This creates the ./nango-integrations folder with some initial configuration and an example sync script. The nango-integrations directory looks like this:

nango-integrations/
├── .env
├── nango.yaml
├── models.ts
└── demo-github-integration # this is the integration unique ID and must match the nango.yaml entry and the integration ID in the UI
    └── syncs/
        └── github-issue-example.ts

CLI Authentication

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

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

Get your prod and dev secret keys from the Environment Settings tab (toggle between the prod and dev environment in the left nav bar).

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

All CLI commands & command details

Check out all CLI commands by running:

nango

Get details about a specific command by running:

nango [command] --help
CommandDescriptionDetails
nango initCreates the nango-integrations directory with a demo Github integration.Generates models.ts, but not the compiled .js files.
nango devNecessary to edit integration configurations and scripts.Watches the nango.yaml and integration scripts, re-generates models.ts and compiled .js files.
nango generateGenerates an integration 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 integration scripts locally.
nango deploy <env>Lets you deploy your sync to your dev or prod environmentGenerates the compiled .js files.
nango migrate-to-directoriesFor earlier iterations of the nango-integrations directory all script files were located at the root level of the nango-integrations directory.Moves the script files to syncs and actions directory within the integration name.

Flags & environment variables

Global command flags:

# Command flag to auto-confirm all prompts (useful for CI).
# Note: Destructive changes (like removing a sync or renaming a model) requires confirmation, even when --auto-confirm is set. To bypass this restriction, the --allow-destructive flag can be passed to nango deploy.
--auto-confirm

Environment variables:

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

# Authenticates the CLI (get the keys in the dashboard's Environment 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.
# Note: Destructive changes (like removing a sync or renaming a model) requires confirmation, even when NANGO_DEPLOY_AUTO_CONFIRM is set to true. To bypass this restriction, the --allow-destructive flag can be passed to nango deploy.
NANGO_DEPLOY_AUTO_CONFIRM=false # Default value

Questions, problems, feedback? Please reach out in the Slack community.