Neon CLI
Use the Neon CLI to manage Neon directly from the terminal
The Neon CLI is a command-line interface that lets you manage Neon directly from the terminal. This documentation references all commands and options available in the Neon CLI.
Install
For more about installing, upgrading, and connecting, see Neon CLI — Install and connect.
Use the Neon CLI without installing
You can run the Neon CLI without installing it using npx (Node Package eXecute) or the bun
equivalent, bunx. For example:
# npx
npx neonctl <command>
# bunx
bunx neonctl <command>
Synopsis
neonctl --help
usage: neonctl <command> [options] [aliases: neon]
Commands:
neonctl auth Authenticate [aliases: login]
neonctl me Show current user
neonctl projects Manage projects [aliases: project]
neonctl ip-allow Manage IP Allow
neonctl branches Manage branches [aliases: branch]
neonctl databases Manage databases [aliases: database, db]
neonctl roles Manage roles [aliases: role]
neonctl operations Manage operations [aliases: operation]
neonctl connection-string [branch] Get connection string [aliases: cs]
neonctl set-context Set the current context
neonctl completion generate completion script
Global options:
-o, --output Set output format
[string] [choices: "json", "yaml", "table"] [default: "table"]
--config-dir Path to config directory [string] [default: ""]
--api-key API key [string] [default: ""]
--analytics Manage analytics. Example: --no-analytics, --analytics false
[boolean] [default: true]
-v, --version Show version number [boolean]
-h, --help Show help [boolean]
Options:
--context-file Context file [string] [default: (current-context-file)]
Commands
Command | Subcommands | Description |
---|---|---|
auth | Authenticate | |
me | Show current user | |
projects | list , create , update , delete , get | Manage projects |
ip-allow | list , add , remove , reset | Manage IP Allow |
branches | list , create , reset , restore , rename , schema-diff , set-primary , add-compute , 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
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 | NEON_API_KEY environment variable |
--color | Colorize the output. Example: --no-color , --color false | boolean | true |
--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. Thejson
andyaml
output formats show all data.neonctl me --output json
-
Specifies the path to the
neonctl
configuration directory. To view the default configuration directory containing youcredentials.json
file, runneonctl --help
. The credentials file is created when you authenticate using theneonctl auth
command. This option is only necessary if you move yourneonctl
configuration file to a location other than the default.neonctl projects list --config-dir /home/<user>/.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 Create an API key.neonctl <command> --api-key <neon_api_key>
To avoid including the
--api-key
option with each CLI command, you can export your API key to theNEON_API_KEY
environment variable.export NEON_API_KEY=<neon_api_key>
info
The authentication flow for the Neon CLI follows this order:
- If the
--api-key
option is provided, it is used for authentication. - If the
--api-key
option is not provided, theNEON_API_KEY
environment variable setting is used. - If there is no
--api-key
option orNEON_API_KEY
environment variable setting, the CLI looks for thecredentials.json
file created by theneonctl auth
command. - If the credentials file is not found, the Neon CLI initiates the
neonctl auth
web authentication process.
- If the
-
Colorize the output. This option is enabled by default, but you can disable it by specifying
--no-color
or--color false
, which is useful when using Neon CLI commands in your automation pipelines. -
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-analytics
or--analytics false
. -
Shows the Neon CLI version number.
$ neonctl --version 1.15.0
-
Shows the
neonctl
command-line help. You can view help forneonctl
, aneonctl
command, or aneonctl
subcommand, as shown in the following examples:neonctl --help neonctl branches --help neonctl branches create --help
Options
Option | Description | Type | Default |
---|---|---|---|
--context-file | The context file for CLI sessions | string | current-context-file |
-
Sets a background context for your CLI sessions, letting you perform project or branch-specific actions without having to specify the project or branch id in every command. For example, this command lists all branches using the
branches list
command. No need to specify the project since the context file provides it.neonctl branches list --context-file path/to/context_file_name
To define a context file, see Neon CLI commands — set-context.
GitHub repository
The GitHub repository for the Neon CLI is found here.
Last updated on