The Neon CLI is a command-line interface that lets you manage Neon Serverless Postgres directly from the terminal. For the complete documentation, see Neon CLI.
npm
npm i -g neonctlRequires Node.js 18.0 or higher.
Howebrew
brew install neonctlBinary (macOS, Linux, Windows)
Download a binary file here.
npm
npm update -g neonctlRequires Node.js 18.0 or higher.
Howebrew
brew upgrade neonctlBinary (macOS, Linux, Windows)
To upgrade a binary version, download the latest binary file, as described above, and replace your old binary with the new one.
Run the following command to authenticate a connection to Neon:
neonctl authThe auth command launches a browser window where you can authorize the Neon CLI to access your Neon account. Running a Neon CLI command without authenticating with neonctl auth automatically launches the browser authentication process.
Alternatively, you can authenticate a connection with a Neon API key using the --api-key option when running a Neon CLI command. For example, an API key is used with the following neonctl projects list command:
neonctl projects list --api-key <neon_api_key>For information about obtaining an Neon API key, see Authentication, in the Neon API Reference.
The Neon CLI supports autocompletion, which you can configure in a few easy steps. See Neon CLI commands — completion for instructions.
| Command | Subcommands | Description |
|---|---|---|
| auth | Authenticate | |
| projects | list, create, update, delete, get |
Manage projects |
| ip-allow | list, add, remove, reset |
Manage IP Allow |
| me | Show current user | |
| branches | list, create, rename, add-compute, set-default, delete, get |
Manage branches |
| databases | list, create, delete |
Manage databases |
| roles | list, create, delete |
Manage roles |
| operations | list |
Manage operations |
| connection-string | Get connection string | |
| set-context | Set context for session | |
| completion | Generate a completion script |
Global options are supported with any Neon CLI command.
| Option | Description | Type | Default |
|---|---|---|---|
| -o, --output | Set the Neon CLI output format (json, yaml, or table) |
string | table |
| --config-dir | Path to the Neon CLI configuration directory | string | /home/<user>/.config/neonctl |
| --api-key | Neon API key | string | "" |
| --analytics | Manage analytics | boolean | true |
| -v, --version | Show the Neon CLI version number | boolean | - |
| -h, --help | Show the Neon CLI help | boolean | - |
-
Sets the output format. Supported options are
json,yaml, andtable. The default istable. Table output may be limited. Thejsonandyamloutput formats show all data.neonctl me --output json
-
Specifies the path to the
neonctlconfiguration directory. To view the default configuration directory containing youcredentials.jsonfile, runneonctl --help. The credentials file is created when you authenticate using theneonctl authcommand. This option is only necessary if you move yourneonctlconfiguration file to a location other than the default.neonctl projects list --config-dir /home/dtprice/.config/neonctl
-
Specifies your Neon API key. You can authenticate using a Neon API key when running a Neon CLI command instead of using
neonctl auth. For information about obtaining an Neon API key, see Authentication, in the Neon API Reference.neonctl <command> --api-key <neon_api_key>
-
Analytics are enabled by default to gather information about the CLI commands and options that are used by our customers. This data collection assists in offering support, and allows for a better understanding of typical usage patterns so that we can improve user experience. Neon does not collect user-defined data, such as project IDs or command payloads. To opt-out of analytics data collection, specify
--no-analyticsor--analytics false. -
Shows the Neon CLI version number.
$ neonctl --version 1.15.0
-
Shows the
neonctlcommand-line help. You can view help forneonctl, aneonctlcommand, or aneonctlsubcommand, as shown in the following examples:neonctl --help neonctl branches --help neonctl branches create --help
To run the CLI locally, execute the build command after making changes:
npm run buildTo develop continuously:
npm run watchTo run commands from the local build, replace the neonctl command with node dist; for example:
node dist branches --help