Install the Nango CLI
Install the Nango CLI globally:
In the folder where you want your integration folder (e.g. root of your project), run:
nango init nango-integrations
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
├── index.ts
└── demo-github-integration # this is the integration unique ID and must match an 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:
Get details about a specific command by running:
Interactive Mode
The Nango CLI includes an interactive mode that prompts you for missing arguments. For example, if you run nango create without specifying the function type, integration, or name, the CLI will prompt you for them.
This mode is enabled by default when you’re in an interactive terminal session.
Usage Examples
Interactive Usage:
If you run a command without all the required arguments, the CLI will prompt you for them.
# Running "nango create" without arguments
$ nango create
? What type of function do you want to create?
❯ sync
action
on-event
Non-Interactive (Explicit) Usage:
You can provide all arguments upfront to bypass the interactive prompts. This is ideal for scripting.
nango create --sync --integration my-api --name get-contacts
Disabling Interactive Mode
You can disable interactive mode in two ways:
- Using a flag: Pass the
--no-interactive flag to any command.
nango create --no-interactive
- In a CI environment: Interactive mode is automatically disabled when the
CI environment variable is set. This is the standard way to detect CI/CD environments.
Backwards Compatibility
Interactive mode is fully backward compatible. If you provide all the required arguments for a command, the CLI will not prompt you for anything and will behave exactly as it did before.
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
# Command flag to disable interactive mode.
--no-interactive
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