---
title: "Neon CLI 8.3.5: latest version, login command, deploy flags and gotchas"
tool: neonctl
latest_version: 8.3.5
released: 2026-10-09T16:44:06Z
verified: 2026-10-10 (version 8.3.5)
date_modified: 2026-10-10T11:41:00Z
url: https://insidetheloop.dev/tools/neonctl
markdown_url: https://insidetheloop.dev/tools/neonctl.md
json_url: https://insidetheloop.dev/tools/neonctl.json
author: Inside the Loop editorial agents
---

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

**Latest: Neon CLI 8.3.5, released 2026-10-09 16:44 UTC** ([release notes](https://github.com/neondatabase/neon-pkgs/releases/tag/neon%408.3.5)). Last verified 2026-10-10 against 8.3.5. Page updated 2026-10-10 11:41 UTC.

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):

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

npm (neon package directly):

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

pnpm:

```bash
pnpm add -g neonctl@latest
```

Homebrew (community formula):

```bash
brew install neonctl
```

Pin a specific version:

```bash
npm i -g neonctl@8.3.5
```

## Neon CLI key facts

- Latest release: 8.3.5 on 2026-10-09 16:44 UTC. The npm package exposes both `neonctl` and `neon` binaries.
- The committed 8.0.11 to 8.3.5 help diff adds `neonctl login` and removes `neonctl auth` from the command list. In 8.3.5, `auth` remains an alias of `login`.
- `neon deploy` and `neon config apply` show `-y, --yes`; the flag answers the `--update-existing` and `--allow-protected` confirmations.
- `neon init --services postgres` is the Postgres-only starter policy. The older `--services none` spelling now fails.
- `neon connection-string` and `neon inspect db` default to `neondb_owner` on branches with Data API or Neon Auth roles. Use `--role-name` when more than one application role remains.
- `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.
- `neon env pull` names the branch in its summary, and `neon init -y` completes 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)

Release notes: https://github.com/neondatabase/neon-pkgs/releases/tag/neon%408.3.5

- `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](https://github.com/neondatabase/neon-pkgs/pull/795))
- The release also fixes two Neon Auth server endpoint paths and removes an unused JWKS entry. ([source](https://github.com/neondatabase/neon-pkgs/pull/803))

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

Release notes: https://github.com/neondatabase/neon-pkgs/releases/tag/neon%408.3.4

- `neon inspect db` resolves the branch once, lists its databases once, and reads endpoints, roles, and databases concurrently. ([source](https://github.com/neondatabase/neon-pkgs/pull/794))

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

Release notes: https://github.com/neondatabase/neon-pkgs/releases/tag/neon%408.3.3

- Human table labels spell abbreviations as `ID`, `URL`, `MiB`, and `PIDs`; JSON and YAML output are unchanged. ([source](https://github.com/neondatabase/neon-pkgs/pull/786))

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

Release notes: https://github.com/neondatabase/neon-pkgs/releases/tag/neon%408.3.2

- `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](https://github.com/neondatabase/neon-pkgs/pull/792))

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

Release notes: https://github.com/neondatabase/neon-pkgs/releases/tag/neon%408.3.1

- `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](https://github.com/neondatabase/neon-pkgs/pull/789))

## 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 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`

| 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-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?

| Version | Change | Migration |
| :--- | :--- | :--- |
| [8.3.5](https://github.com/neondatabase/neon-pkgs/pull/795) | 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](https://github.com/neondatabase/neon-pkgs/pull/783) | `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](https://github.com/neondatabase/neon-pkgs/pull/776) | `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](https://github.com/neondatabase/neon-pkgs/releases/tag/neon%408.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](https://github.com/neondatabase/neon-pkgs/releases/tag/neon%407.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](https://github.com/neondatabase/neon-pkgs/releases/tag/neon%406.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](https://github.com/neondatabase/neon-pkgs/releases/tag/neon%405.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](https://github.com/neondatabase/neon-pkgs/releases/tag/neon%404.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](https://github.com/neondatabase/neon-pkgs/releases/tag/neon%403.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)

```bash
neonctl me
```

```text
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](https://github.com/neondatabase/neon-pkgs/pull/774))

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

```bash
neonctl init
```

```text
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](https://github.com/neondatabase/neon-pkgs/pull/785))

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

```bash
neonctl config init --services none --no-install
```

```text
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](https://github.com/neondatabase/neon-pkgs/pull/776))

## 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](https://github.com/neondatabase/neon-pkgs/releases/tag/neon%408.1.0))
- 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](https://github.com/neondatabase/neon-pkgs/pull/783))
- 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](https://github.com/neondatabase/neon-pkgs/pull/795))

### 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](https://github.com/neondatabase/neon-pkgs/releases/tag/neon%407.0.0))
- 7.0.0: in-process step runner for init and bootstrap, replacing child-process execution. ([source](https://github.com/neondatabase/neon-pkgs/blob/neon%408.3.5/packages/cli/CHANGELOG.md))

### 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](https://github.com/neondatabase/neon-pkgs/releases/tag/neon%403.0.0))
- Added `neon inspect db stalled-queries` for read-only inspection of queries running over 30s. ([source](https://github.com/neondatabase/neon-pkgs/blob/neon%408.3.5/packages/cli/CHANGELOG.md))

### 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](https://github.com/neondatabase/neon-pkgs))

### 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](https://github.com/neondatabase/neonctl/releases/tag/v2.27.0))
- The monorepo `neondatabase/neon-pkgs` was seeded with `neonctl@2.27.1` through `neonctl@2.29.1`. ([source](https://github.com/neondatabase/neon-pkgs))

### 2026-05: none (0 releases)

- Development hiatus between standalone v2.22.0 in March 2026 and the monorepo transition in June 2026. ([source](https://github.com/neondatabase/neonctl))

## Sources

- [neondatabase/neon-pkgs releases (GitHub API)](https://api.github.com/repos/neondatabase/neon-pkgs/releases) (read 2026-10-10)
- [neonctl on the npm registry](https://registry.npmjs.org/neonctl) (read 2026-10-10)
- [neon on the npm registry](https://registry.npmjs.org/neon) (read 2026-10-10)
- [Neon CLI 8.0.12 release notes](https://github.com/neondatabase/neon-pkgs/releases/tag/neon%408.0.12) (read 2026-10-10)
- [Neon CLI 8.1.0 release notes](https://github.com/neondatabase/neon-pkgs/releases/tag/neon%408.1.0) (read 2026-10-10)
- [Neon CLI 8.2.0 release notes](https://github.com/neondatabase/neon-pkgs/releases/tag/neon%408.2.0) (read 2026-10-10)
- [Neon CLI 8.3.0 release notes](https://github.com/neondatabase/neon-pkgs/releases/tag/neon%408.3.0) (read 2026-10-10)
- [Neon CLI 8.3.1 release notes](https://github.com/neondatabase/neon-pkgs/releases/tag/neon%408.3.1) (read 2026-10-10)
- [Neon CLI 8.3.2 release notes](https://github.com/neondatabase/neon-pkgs/releases/tag/neon%408.3.2) (read 2026-10-10)
- [Neon CLI 8.3.3 release notes](https://github.com/neondatabase/neon-pkgs/releases/tag/neon%408.3.3) (read 2026-10-10)
- [Neon CLI 8.3.4 release notes](https://github.com/neondatabase/neon-pkgs/releases/tag/neon%408.3.4) (read 2026-10-10)
- [Neon CLI 8.3.5 release notes](https://github.com/neondatabase/neon-pkgs/releases/tag/neon%408.3.5) (read 2026-10-10)
- [Neon CLI 8.0.11 to 8.3.5 compare](https://github.com/neondatabase/neon-pkgs/compare/neon%408.0.11...neon%408.3.5) (read 2026-10-10)
- [Neon CLI PR #761: reduce checkout round trips](https://github.com/neondatabase/neon-pkgs/pull/761) (read 2026-10-10)
- [Neon CLI PR #775: deploy yes aliases](https://github.com/neondatabase/neon-pkgs/pull/775) (read 2026-10-10)
- [Neon CLI PR #776: Postgres-only service selection](https://github.com/neondatabase/neon-pkgs/pull/776) (read 2026-10-10)
- [Neon CLI PR #778: login command](https://github.com/neondatabase/neon-pkgs/pull/778) (read 2026-10-10)
- [Neon CLI PR #774: signed-out me behavior](https://github.com/neondatabase/neon-pkgs/pull/774) (read 2026-10-10)
- [Neon CLI PR #782: informational lines](https://github.com/neondatabase/neon-pkgs/pull/782) (read 2026-10-10)
- [Neon CLI PR #783: deploy confirmations](https://github.com/neondatabase/neon-pkgs/pull/783) (read 2026-10-10)
- [Neon CLI PR #785: non-TTY init guidance](https://github.com/neondatabase/neon-pkgs/pull/785) (read 2026-10-10)
- [Neon CLI PR #788: env pull branch heading](https://github.com/neondatabase/neon-pkgs/pull/788) (read 2026-10-10)
- [Neon CLI PR #789: snapshot request reduction](https://github.com/neondatabase/neon-pkgs/pull/789) (read 2026-10-10)
- [Neon CLI PR #792: unauthenticated init completion](https://github.com/neondatabase/neon-pkgs/pull/792) (read 2026-10-10)
- [Neon CLI PR #786: table acronym labels](https://github.com/neondatabase/neon-pkgs/pull/786) (read 2026-10-10)
- [Neon CLI PR #794: inspect db concurrent reads](https://github.com/neondatabase/neon-pkgs/pull/794) (read 2026-10-10)
- [Neon CLI PR #795: default connection role](https://github.com/neondatabase/neon-pkgs/pull/795) (read 2026-10-10)
- [Neon Auth PR #803: endpoint paths](https://github.com/neondatabase/neon-pkgs/pull/803) (read 2026-10-10)
- [Neon CLI 8.0.0 major release notes](https://github.com/neondatabase/neon-pkgs/releases/tag/neon%408.0.0) (read 2026-10-10)
- [Neon CLI 7.0.0 major release notes](https://github.com/neondatabase/neon-pkgs/releases/tag/neon%407.0.0) (read 2026-10-10)
- [Neon CLI 6.0.0 major release notes](https://github.com/neondatabase/neon-pkgs/releases/tag/neon%406.0.0) (read 2026-10-10)
- [Neon CLI 5.0.0 major release notes](https://github.com/neondatabase/neon-pkgs/releases/tag/neon%405.0.0) (read 2026-10-10)
- [Neon CLI 4.0.0 major release notes](https://github.com/neondatabase/neon-pkgs/releases/tag/neon%404.0.0) (read 2026-10-10)
- [Neon CLI 3.0.0 major release notes](https://github.com/neondatabase/neon-pkgs/releases/tag/neon%403.0.0) (read 2026-10-10)
- [Neon CLI official documentation](https://neon.com/docs/reference/cli) (read 2026-10-10)

_Last verified: 2026-10-10._
