Tool pages / Neon CLI

Neon CLI 8.3.5: latest version, login command, deploy flags and gotchas

Latest: Neon CLI 8.3.5, released (release notes).

Last verified 2026-10-10 against 8.3.5. Page updated . Also as Markdown and JSON.

The latest Neon CLI (neonctl, alias neon) is 8.3.5, released 2026-10-09 16:44 UTC. Upgrade with npm i -g neonctl@latest or npm i -g neon@latest. From 8.0.11 to 8.3.5, the help tree adds neon login and removes neon auth; auth remains its alias. The release line also adds -y/--yes confirmation aliases for deploy and config apply, replaces --services none with --services postgres, and defaults connection-string and inspect db to neondb_owner on Data API branches. The surface diff and errors below were run in throwaway Linux sandboxes on 2026-10-10.

How do I install or upgrade to Neon CLI 8.3.5?

npm (neonctl compatibility package):

npm i -g neonctl@latest
neonctl --version   # 8.3.5

npm (neon package directly):

npm i -g neon@latest
neon --version      # 8.3.5

pnpm:

pnpm add -g neonctl@latest

Homebrew (community formula):

brew install neonctl

Pin a specific version:

npm i -g neonctl@8.3.5

Neon CLI key facts

What changed in the last 5 Neon CLI releases?

Neon CLI 8.3.5 (2026-10-09 16:44 UTC)

  • neon connection-string and neon inspect db default to neondb_owner on branches with the Data API or Neon Auth roles; pass --role-name when multiple application roles remain. (source)
  • The release also fixes two Neon Auth server endpoint paths and removes an unused JWKS entry. (source)

Neon CLI 8.3.4 (2026-10-09 05:11 UTC)

  • neon inspect db resolves the branch once, lists its databases once, and reads endpoints, roles, and databases concurrently. (source)

Neon CLI 8.3.3 (2026-10-09 04:11 UTC)

  • Human table labels spell abbreviations as ID, URL, MiB, and PIDs; JSON and YAML output are unchanged. (source)

Neon CLI 8.3.2 (2026-10-09 03:21 UTC)

  • neon init -y finishes the local setup path without authentication; with --org-id, --project-id, and --branch, it writes .neon offline and prints the next login step. (source)

Neon CLI 8.3.1 (2026-10-09 01:19 UTC)

  • neon snapshots restore and update skip the snapshot listing when given a snapshot ID; create and schedule get / set skip the branch listing when given a branch ID. (source)

Which Neon CLI commands and flags were added or removed?

Neon CLI 8.0.11 → 8.3.5

1 command added, 1 removed, 0 command-with-flag changes reported by the diff tool; 23 help pages changed in any way.

Method: bin/tool-snapshot ran --help for every neonctl subcommand of both versions in throwaway Linux sandboxes (199 and 199 help pages), then bin/tool-diff compared them. Hidden flags do not appear in --help.

Commands added:

  • neonctl login

Commands removed:

  • neonctl auth
CommandFlags addedFlags removed
neonctl deploy-y--yesnone
neonctl config apply-y--yesnone
  • The generated diff reports neonctl login added and neonctl auth removed. The 8.3.5 help still prints auth as the alias of login.
  • The generated diff reports no command-with-flag changes because the new aliases share the existing apply option. The exact help text adds -y, --yes to deploy and config apply; PR #775 maps them to --update-existing, and PR #783 makes yes answer the protected-branch confirmation too.
  • The same help diff documents --services postgres for init and config init, and the --role-name default for connection-string and every inspect db diagnostic.

Neon CLI 8.0.0 → 8.0.11

1 command added (neon feedback), 0 removed, 1 command with flags added (feedback --message); roles create --no-login parsing bug fixed.

Method: Built from source comparison of tags neon@8.0.0 and neon@8.0.11 via GitHub Compare API (from source, not run). Commands and flags verified against packages/cli/src/commands/.

Commands added:

  • neon feedback
CommandFlags addedFlags removed
neon feedback--messagenone
  • From source (not run). 8.0.2 introduced neon feedback --message <text> for anonymous feedback submission, and corrected --no-login flag parsing in neon roles create.

Neon CLI 7.0.8 → 8.0.0

0 commands added, 0 removed, 0 commands with flags added or removed; project directory scoping enforced for neon.ts and .env.local.

Method: Built from source comparison of tags neon@7.0.8 and neon@8.0.0 via GitHub Compare API (from source, not run). Architecture verified against packages/cli/src/project.ts.

  • The 8.0.0 major transition. From source (not run): neon.ts and .env.local resolution moved into packages/cli/src/project.ts, locking config resolution to the directory containing .neon.

What breaks when upgrading Neon CLI, and how do I migrate?

VersionChangeMigration
8.3.5On branches with Data API or Neon Auth roles, connection-string and inspect db prefer neondb_owner instead of failing because the branch exposes several roles. They still fail when more than one application role remains.Use --role-name <role> when the branch has several application roles and the default is not the one you want.
8.2.0neon deploy and neon config apply ask before applying to a protected branch or overriding settings already present on the branch.For automation, pass -y or --yes in 8.3.5, or pass the narrower --allow-protected and --update-existing flags explicitly.
8.1.0neon init --services none and neon config init --services none were removed. The service list now accepts postgres as the Postgres-only starter policy.Replace --services none with --services postgres.
8.0.0neon.ts and default .env.local are scoped to the project directory holding .neon (nearest at or above cwd, or --context-file), or cwd when unlinked. Parent directory neon.ts files are no longer automatically found from subdirectories.Run neon link at repository root to create .neon, move neon.ts next to .neon, or pass --config <path> to target a custom configuration file.
7.0.0Snapshot slugs were removed from the Neon Management API. neon snapshots create --slug is removed; snapshots resolve by ID or unique name.Remove --slug from scripts; use --name <name> or a snapshot ID.
6.0.0neon init -y standardized as Recommended setup with detected agents, link when authenticated, and a default neon.ts. Template flags were removed; the current directory is configured in place.For custom setup in scripts, pass --skill, MCP flags, --no-agent-setup, or --claimable.
5.0.0neon link requires a complete .neon context: organization when the project has one, project, and branch. Org-only, unpinned, and --no-checks writes without --branch fail.Specify --branch <branch> when linking non-interactively without an active default branch.
4.0.0neon neon-auth config email-provider test is restricted to custom SMTP configured on the branch. Connection flags (--host, --port, --username, --password) are rejected.Save the email provider first with neon neon-auth config email-provider update --type standard, then pass only --recipient-email to test.
3.0.0Functions externalPackages archives stage real files for native binaries on the linux-arm64 runtime target rather than packaging symlinks.Declare native dependencies under externalPackages in neon.ts functions configuration.

What Neon CLI errors did we reproduce, and how do I fix them?

`neon me` reports signed out instead of starting browser auth (Neon CLI 8.3.5)

neonctl me
Not signed in: profile "DEFAULT" has no stored credential. Run `neonctl login --profile DEFAULT` to sign in, or use an API key with --api-key or NEON_API_KEY.

Fix: Use neonctl login or neon login interactively, or set a valid NEON_API_KEY. neon me exits 1 as a signed-out check and does not open a browser. (source)

Non-TTY `neon init` requires `-y` (Neon CLI 8.3.5)

neonctl init
ERROR: No interactive terminal. Re-run with -y to set up this directory with Recommended defaults: `neon init -y`. To pick each step instead, run `neon init` in a terminal, or see `neon init --help` for the flag that sets each step.

Fix: Run neon init -y in CI or another non-interactive process. Run neon init in a terminal when you need to choose each setup step. (source)

`--services none` is rejected in 8.1.0 and later (Neon CLI 8.3.5)

neonctl config init --services none --no-install
ERROR: Unknown service none. Supported values: postgres, auth, data-api, functions, object-storage, ai-gateway.

Fix: Use neonctl config init --services postgres --no-install for the Postgres-only starter policy. The same replacement applies to neon init --services. (source)

Neon CLI release history by month

2026-10: neon@7.0.2 to neon@8.3.5 (28 releases through 2026-10-09)

  • 8.0.12 to 8.1.0: checkout request reduction, neon login as the canonical sign-in command, -y / --yes deploy aliases, and --services postgres. (source)
  • 8.2.0 to 8.3.0: deploy confirmation prompts, plain informational lines, branch-named env-pull summaries, and non-TTY neon init guidance. (source)
  • 8.3.1 to 8.3.5: fewer snapshot-list requests, unauthenticated init -y completion, acronym labels, concurrent inspect reads, and neondb_owner role selection. (source)

2026-09: neon@4.13.1 to neon@7.0.1 (34 releases)

  • Three majors: 5.0.0 (link requires complete .neon), 6.0.0 (standardized neon init -y), and 7.0.0 (snapshot slugs removed). (source)
  • 7.0.0: in-process step runner for init and bootstrap, replacing child-process execution. (source)

2026-08: neon@2.39.0 to neon@4.13.0 (40 releases)

  • Two majors: 3.0.0 (Functions externalPackages binary staging and the monorepo transition) and 4.0.0 (email-provider test restricted). (source)
  • Added neon inspect db stalled-queries for read-only inspection of queries running over 30s. (source)

2026-07: neonctl@2.29.2 to neon@2.38.5 (25 releases)

  • Monorepo transition: dual publishing of neon and neonctl packages; agent tooling (neon skills, neon mcp) introduced. (source)

2026-06: 2.22.2 to neonctl@2.29.1 (21 releases)

  • Final v2.27.0 release on the standalone neondatabase/neonctl repository on 2026-06-22 before archiving. (source)
  • The monorepo neondatabase/neon-pkgs was seeded with neonctl@2.27.1 through neonctl@2.29.1. (source)

2026-05: none (0 releases)

  • Development hiatus between standalone v2.22.0 in March 2026 and the monorepo transition in June 2026. (source)

Sources

Last verified: 2026-10-10.