Autoscaling Report: Production databases on Neon use 2.4x less compute and 50% less cost than if they were running on a provisioned platform.
/Changelog

Changelog

The latest product updates from Neon

Subscribe to our changelog. No spam, guaranteed.

New neon api command in the Neon CLI

The Neon CLI now ships an api command: call any Neon Platform API route from the terminal using your existing CLI login, without hand-building curl requests or giving agents raw API keys.

Dedicated CLI commands cover common workflows, but the Platform API moves faster. With the neon api command, you get full API reach the moment an endpoint exists. Run neon api --list to browse every route from the OpenAPI spec.

Read the announcement for why we built this for agent workflows.

List projects for your organization:

neon orgs list
neon api /projects -Q org_id=org-cool-darkness-12345678

Create a dev branch on an existing project:

neon api /projects/late-frost-12345678/branches -X POST -F branch.name=dev

The -F branch.name=dev flag builds the JSON body { "branch": { "name": "dev" } } automatically. See the api command reference for query parameters, file bodies (-d @file), and output formats.

Cmd+K support for the Neon Console

You can now press Cmd+K (Mac) or Ctrl+K (Windows/Linux) from anywhere in the Neon Console to open a searchable command bar with actions scoped to your current branch and project: navigate to branches, open the SQL editor, create a snapshot, go to settings, and more.

Neon Console command bar

Neon MCP Server: branch expiration on create

The Neon MCP Server create_branch tool now accepts an optional expiresAt parameter (ISO 8601) to set automatic branch deletion when creating a branch, matching the Neon API and console Auto-delete behavior. See branch expiration.

Connect the MCP Server in your editor:

npx add-mcp https://mcp.neon.tech/mcp

For full setup (API key auth, agent skills, and more), run npx neon@latest init. See Connect MCP clients to Neon.

New NAT gateway IPs and VPC endpoint services in US East (Ohio), Europe (London), and Asia Pacific (Singapore)

We've expanded infrastructure capacity in the AWS US East (Ohio) (us-east-2), Europe (London) (eu-west-2), and Asia Pacific (Singapore) (ap-southeast-1) regions with new NAT gateway IP addresses and new VPC endpoint service addresses for Private Networking.

Update your IP allowlists

If you have IP allowlists on external systems that Neon connects to, update those allowlists to include the new NAT gateway addresses. Connections may be affected intermittently if traffic routes through non-allowlisted NAT gateways.

If you use Private Networking in these regions, you can now use the additional VPC endpoint service addresses for enhanced capacity and reliability. See the Regions documentation for the complete list of NAT gateway IPs and the Private Networking guide for VPC endpoint service addresses by region.

Postgres turns 30

Postgres turned 30 on July 8. See our post on X.

Neon is a long-term bet on Postgres. We support Postgres 14 through 18 today, with Postgres 19 support on the way. Our team includes Postgres hackers who contribute upstream and support the wider ecosystem through our Open Source Program. We run standard Postgres, not a fork: Neon is Postgres, with serverless branching and autoscaling built around the database millions of developers already rely on.

Happy birthday, Postgres. 🎂🐘

Neon CLI enhancements

We're continually improving the Neon CLI and the developer experience around it. Recent additions include branch-first dev loop (neon link, neon checkout, and neon env pull) commands and neon.ts. This week brings a shorter name plus two additional commands.

  • The CLI is now just neon

    You can now install the Neon CLI from npm as neon instead of neonctl: npm i -g neon (or run it with npx neon@latest). All commands are now documented as neon rather than neonctl. If you already use neonctl, nothing changes: it's the same CLI, neonctl still works as a command, and no migration or re-authentication is needed. See the Neon CLI install guide.

    The latest CLI now requires Node.js 20.19.0 or higher (previously 18). An existing installation keeps working on your current Node.js version; if you're on an older version, upgrade Node.js before updating the CLI.

  • Set up declarative branch management in one step

    The new neon config init command scaffolds a starter neon.ts config file and installs the @neon/config and @neon/env packages, so you can define how each branch is set up (compute size, scale-to-zero, TTL, and which services it uses) declaratively, without any manual setup. It runs entirely locally, and neon link now offers to run it as its final step.

    neon config init
  • Check your current branch instantly, with no network call

    The new neon status command is a top-level alias for neon config status. Add --current-branch to print just the branch pinned in your local .neon file:

    neon status --current-branch

    Because it makes no network call, it's fast enough to run on every shell prompt. For example, add your current Neon branch to a starship prompt by appending this [custom.neon] module to ~/.config/starship.toml:

    # ~/.config/starship.toml
    [custom.neon]
    description = "Current Neon branch"
    command = "neon status --current-branch"   # prints the branch pinned in .neon (no network)
    when = "neon status --current-branch"       # exits non-zero when no branch -> segment is hidden
    symbol = "🌿 "
    style = "bold green"
    format = "[$symbol$output]($style) "

    See the config command reference for more.

Neon Storage in the Files SDK

Neon Storage now has a first-class adapter in the Files SDK, the open-source library that gives you one upload, download, and presigned-URL API across S3, R2, GCS, and more. The neon adapter is wired up from the AWS_* variables Neon injects, so pointing your storage backend at Neon is a one-line config change:

import { Files } from 'files-sdk';
import { neon } from 'files-sdk/neon';

const files = new Files({ adapter: neon({ bucket: 'assets' }) });

// Upload a file, then get a presigned URL to view it
await files.upload('logos/neon-logo.png', body, { contentType: 'image/png' });
const url = await files.url('logos/neon-logo.png', { expiresIn: 3600 });

See the with-files-sdk example for a minimal script that uploads files to a branch-scoped bucket.

Neon Storage is part of Neon's new backend services, currently in private preview. If you haven't signed up yet, you can sign up and learn more.

Learn more about Lakebase Search

We recently opened Lakebase Search to all Neon users, adding scalable vector, keyword, and hybrid search to Postgres through the lakebase_vector and lakebase_text extensions. This week, our engineering team goes under the hood.

Read Lakebase Search: vector and BM25 on Neon blog post to learn why the usual pgvector + GIN setup breaks down at scale, and how lakebase_ann (IVF + RaBitQ) and lakebase_bm25 (Block-Max WAND) keep indexes on object storage so they stay ready across scale-to-zero and branching.

Update snapshot expiration anytime

You can now update a snapshot's expiration with the Update snapshot endpoint. Set expires_at to a future timestamp to change the retention deadline, or send null to remove it so the snapshot never expires. Previously, expiration could only be set when the snapshot was created.

curl --request PATCH \
  --url 'https://console.neon.tech/api/v2/projects/{project_id}/snapshots/{snapshot_id}' \
  --header 'authorization: Bearer $NEON_API_KEY' \
  --header 'content-type: application/json' \
  --data '{
    "snapshot": {
      "expires_at": "2026-12-31T00:00:00Z"
    }
  }'

Planned update notifications change

So that we can ship Neon improvements and fixes faster, the advance notice period for planned updates on the Scale and Enterprise plans is changing from 7 days to 3 days, effective July 10, 2026. Updates take only a few seconds, and Neon prewarms your cache so performance isn't affected.

You can check for update notifications in your project's settings (Settings > Updates). On the Scale and Enterprise plans, you also receive an email notification in advance, in addition to the in-console notice. To learn more, see Updates.

Neon Community Corner

This week, we're spotlighting contributions and integrations from the Neon community and ecosystem.

Neon Testing now supports Bun Test

Neon Testing, the community-built integration testing library by Mikael Lirbank, shipped v3.0.0 with support for Bun Test alongside Vitest. Each test runs against its own isolated Neon branch, with DATABASE_URL set up and torn down automatically, so your tests hit the same schema and constraints as production without mocks or a shared local database.

npm install --save-dev neon-testing

View the package on npm and read the v3.0.0 release notes on GitHub.

Connect Neon to Gamut

Gamut, an AI agent hosting platform with native support for remote MCP servers, now connects to Neon through the Neon MCP server. Setup uses OAuth, matching the existing client flow. To get started, add Neon to your Gamut agent.

Docs & Postgres tutorial contributors

Our docs and Postgres tutorials get better thanks to fixes and improvements from the community. A quick thank you to contributors.

@AayushGoswami @AhmedYasinKUL @Arul-1911 @bcw117 @camro @chibx @codenim34 @crebelskydico @da-vaibhav @DorianDragaj @duffuniverse @fcdm @flow145 @harry-whorlow @houssaineamzil @ifeoluwak @Jaskaranrehal @jayhyp @karlhorky @keugenek @michaelgomeh @noo-dev @rahulrao0209 @Ranzeplay @realihorrud @rhutch117 @sanaeft @sdarnadeem @SefterM-zade @slotix @solisoares @this-fifo @VIM4L-M @webwurst

Agent skills for Neon Storage, Functions, and AI Gateway

Neon Agent Skills are instruction files that teach AI coding assistants how to work with Neon. The collection now includes skills for Neon Functions, Object Storage, and AI Gateway, the backend services currently in private preview.

If you haven't requested preview access yet, sign up below and we'll send you the private preview guide to get started.

Get early access to the Neon backend platform

We're expanding Neon into a complete backend platform. Drop your email and we'll reach out soon for early access.

To install all Neon agent skills:

npx skills add neondatabase/agent-skills

For the complete list of skills and other install options, see the Agent Skills documentation.

Lakebase Search is now available to all users

Lakebase Search is now available to all Neon users on Postgres 16+. Two extensions, lakebase_vector and lakebase_text, bring vector, keyword, and hybrid search into Postgres, so you can run semantic RAG, exact-term lookups, and combined rankings without a separate search stack.

First, enable the shared preload libraries and restart your compute. Then install the extensions and query with the same operators you already know from pgvector and full-text search:

CREATE EXTENSION IF NOT EXISTS lakebase_vector CASCADE;
CREATE EXTENSION IF NOT EXISTS lakebase_text CASCADE;

-- Semantic: nearest neighbors by embedding
SELECT title FROM documents ORDER BY embedding <=> $query_vector LIMIT 5;

-- Keyword: BM25 relevance with top-K pushdown
SELECT title FROM documents
ORDER BY body_tsv <@> to_bm25query(to_tsvector('english', 'vector search'), 'documents_bm25')
LIMIT 5;

For production search, combine both with Reciprocal Rank Fusion (RRF): merge top vector and BM25 candidates into one score. The get started guide includes a full hybrid example in TypeScript.

Why Lakebase Search on Neon:

  • lakebase_ann: drop-in pgvector compatibility; scales to 1B+ vectors; index builds 50-100× faster than HNSW
  • lakebase_bm25: standard tsvector types; BM25 ranking GIN can't do natively
  • Scale-to-zero: indexes live in storage, so they're ready immediately after a cold start; branches copy indexes without rebuilds

See the Lakebase Search overview to get started.

Postgres version updates

We updated supported Postgres versions to 14.23, 15.18, 16.14, 17.10, and 18.4, respectively.

When a new minor version is available on Neon, it is applied the next time your compute restarts. For more about how we handle Postgres version upgrades, refer to our Postgres version support policy.

Ephemeral database branches for Vercel Eve agent sessions

In June, Vercel introduced Eve, an open-source, filesystem-first framework for durable agents. Sessions checkpoint as they run, can last for days, and pause for human approval before resuming. Eve includes a sandbox, evals, and built-in channels.

We published a guide that pairs Eve with Neon branching. The integration is a small hook in agent/hooks/provision-branch.ts: create a branch when a session starts, delete it when the session ends. Agent tools read the branch connection URI and work against an isolated copy of your production schema.

export default defineHook({
  events: {
    async "session.started"(_event, ctx) {
      const branch = await createBranch(`eve-${ctx.session.id.slice(0, 12)}`);
      dbBranch.update(() => ({ connectionUri: branch.connectionUri }));
    },
  },
});

Read the guide: Running Vercel Eve agents and evals on disposable Neon branches

Was this page helpful?
Edit on GitHub