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).
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.5npm (neon package directly):
npm i -g neon@latest
neon --version # 8.3.5pnpm:
pnpm add -g neonctl@latestHomebrew (community formula):
brew install neonctlPin a specific version:
npm i -g neonctl@8.3.5Neon CLI key facts
- Latest release: 8.3.5 on 2026-10-09 16:44 UTC. The npm package exposes both
neonctlandneonbinaries. - The committed 8.0.11 to 8.3.5 help diff adds
neonctl loginand removesneonctl authfrom the command list. In 8.3.5,authremains an alias oflogin. neon deployandneon config applyshow-y, --yes; the flag answers the--update-existingand--allow-protectedconfirmations.neon init --services postgresis the Postgres-only starter policy. The older--services nonespelling now fails.neon connection-stringandneon inspect dbdefault toneondb_owneron branches with Data API or Neon Auth roles. Use--role-namewhen more than one application role remains.neon snapshots restoreandupdateskip the snapshot listing when given a snapshot ID.createandschedule get/setskip the branch listing when given a branch ID.neon env pullnames the branch in its summary, andneon init -ycompletes the local setup path without credentials instead of stopping partway.
What changed in the last 5 Neon CLI releases?
Neon CLI 8.3.5 (2026-10-09 16:44 UTC)
Neon CLI 8.3.4 (2026-10-09 05:11 UTC)
neon inspect dbresolves 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, andPIDs; JSON and YAML output are unchanged. (source)
Neon CLI 8.3.2 (2026-10-09 03:21 UTC)
neon init -yfinishes the local setup path without authentication; with--org-id,--project-id, and--branch, it writes.neonoffline and prints the next login step. (source)
Neon CLI 8.3.1 (2026-10-09 01:19 UTC)
neon snapshots restoreandupdateskip the snapshot listing when given a snapshot ID;createandschedule get/setskip 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
| Command | Flags added | Flags removed |
|---|---|---|
neonctl deploy | -y--yes | none |
neonctl config apply | -y--yes | none |
- The generated diff reports
neonctl loginadded andneonctl authremoved. The 8.3.5 help still printsauthas the alias oflogin. - The generated diff reports no command-with-flag changes because the new aliases share the existing apply option. The exact help text adds
-y, --yestodeployandconfig 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 postgresforinitandconfig init, and the--role-namedefault forconnection-stringand everyinspect dbdiagnostic.
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
| Command | Flags added | Flags removed |
|---|---|---|
neon feedback | --message | none |
- From source (not run). 8.0.2 introduced
neon feedback --message <text>for anonymous feedback submission, and corrected--no-loginflag parsing inneon 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.tsand.env.localresolution moved intopackages/cli/src/project.ts, locking config resolution to the directory containing.neon.
What breaks when upgrading Neon CLI, and how do I migrate?
| Version | Change | Migration |
|---|---|---|
| 8.3.5 | On 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.0 | neon 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.0 | neon 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.0 | neon.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.0 | Snapshot 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.0 | neon 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.0 | neon 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.0 | neon 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.0 | Functions 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 meNot 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 initERROR: 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-installERROR: 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 loginas the canonical sign-in command,-y/--yesdeploy 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 initguidance. (source) - 8.3.1 to 8.3.5: fewer snapshot-list requests, unauthenticated
init -ycompletion, acronym labels, concurrent inspect reads, andneondb_ownerrole selection. (source)
2026-09: neon@4.13.1 to neon@7.0.1 (34 releases)
2026-08: neon@2.39.0 to neon@4.13.0 (40 releases)
2026-07: neonctl@2.29.2 to neon@2.38.5 (25 releases)
- Monorepo transition: dual publishing of
neonandneonctlpackages; agent tooling (neon skills,neon mcp) introduced. (source)
2026-06: 2.22.2 to neonctl@2.29.1 (21 releases)
2026-05: none (0 releases)
- Development hiatus between standalone v2.22.0 in March 2026 and the monorepo transition in June 2026. (source)
Sources
- neondatabase/neon-pkgs releases (GitHub API) (read 2026-10-10)
- neonctl on the npm registry (read 2026-10-10)
- neon on the npm registry (read 2026-10-10)
- Neon CLI 8.0.12 release notes (read 2026-10-10)
- Neon CLI 8.1.0 release notes (read 2026-10-10)
- Neon CLI 8.2.0 release notes (read 2026-10-10)
- Neon CLI 8.3.0 release notes (read 2026-10-10)
- Neon CLI 8.3.1 release notes (read 2026-10-10)
- Neon CLI 8.3.2 release notes (read 2026-10-10)
- Neon CLI 8.3.3 release notes (read 2026-10-10)
- Neon CLI 8.3.4 release notes (read 2026-10-10)
- Neon CLI 8.3.5 release notes (read 2026-10-10)
- Neon CLI 8.0.11 to 8.3.5 compare (read 2026-10-10)
- Neon CLI PR #761: reduce checkout round trips (read 2026-10-10)
- Neon CLI PR #775: deploy yes aliases (read 2026-10-10)
- Neon CLI PR #776: Postgres-only service selection (read 2026-10-10)
- Neon CLI PR #778: login command (read 2026-10-10)
- Neon CLI PR #774: signed-out me behavior (read 2026-10-10)
- Neon CLI PR #782: informational lines (read 2026-10-10)
- Neon CLI PR #783: deploy confirmations (read 2026-10-10)
- Neon CLI PR #785: non-TTY init guidance (read 2026-10-10)
- Neon CLI PR #788: env pull branch heading (read 2026-10-10)
- Neon CLI PR #789: snapshot request reduction (read 2026-10-10)
- Neon CLI PR #792: unauthenticated init completion (read 2026-10-10)
- Neon CLI PR #786: table acronym labels (read 2026-10-10)
- Neon CLI PR #794: inspect db concurrent reads (read 2026-10-10)
- Neon CLI PR #795: default connection role (read 2026-10-10)
- Neon Auth PR #803: endpoint paths (read 2026-10-10)
- Neon CLI 8.0.0 major release notes (read 2026-10-10)
- Neon CLI 7.0.0 major release notes (read 2026-10-10)
- Neon CLI 6.0.0 major release notes (read 2026-10-10)
- Neon CLI 5.0.0 major release notes (read 2026-10-10)
- Neon CLI 4.0.0 major release notes (read 2026-10-10)
- Neon CLI 3.0.0 major release notes (read 2026-10-10)
- Neon CLI official documentation (read 2026-10-10)
Last verified: 2026-10-10.