> Full Neon documentation index: https://neon.com/docs/llms.txt

# Lakebase Search, CLI updates, and more

## Get early access to backends for apps and agents

Just a reminder that three new services are on their way to Neon.

- **Storage**: S3-compatible object storage that branches with your database
- **Compute**: Serverless functions that run alongside Postgres
- **AI Gateway**: Route and log LLM calls to OpenAI, Anthropic, or Gemini through a single proxy built into your Neon project

## Lakebase Search (Private Preview)

Lakebase Search brings scalable vector and BM25 full-text search to Neon through two new Postgres extensions, so you can handle semantic and keyword search in a single database without running separate search infrastructure.

- [**`lakebase_vector`**](https://neon.com/docs/extensions/lakebase-vector) adds the `lakebase_ann` index type for approximate nearest-neighbor vector search. Drop-in compatible with `pgvector`: same types, operators, and query syntax. A single index scales to over 1 billion vectors, with builds 50–100x faster than HNSW.

  ```sql
  CREATE INDEX ON items USING lakebase_ann (embedding vector_l2_ops);
  SELECT * FROM items ORDER BY embedding <-> '[3,1,2]' LIMIT 5;
  ```

- [**`lakebase_text`**](https://neon.com/docs/extensions/lakebase-text) adds the `lakebase_bm25` index type for BM25 full-text search. Works with standard `tsvector` types and operators, adding BM25 ranking and top-K pushdown that PostgreSQL's native GIN index doesn't support.

  ```sql
  CREATE INDEX docs_bm25 ON documents USING lakebase_bm25 (vector bm25_ops);
  SELECT id, vector <&> to_bm25query(to_tsvector('english', 'search'), 'docs_bm25') AS score
  FROM documents ORDER BY score LIMIT 5;
  ```

Both indexes live in storage rather than compute memory, so they're available immediately after a cold start. Because Neon branches are copy-on-write, your search indexes are available on every branch without reindexing.

**Lakebase Search is in private preview.** [Request access](https://neon.com/docs/introduction/early-access) to try it, or see the [Lakebase Search overview](https://neon.com/docs/ai/lakebase-search) to learn more. To see both in action, [Build a dual-mode search app with lakebase_vector and lakebase_text](https://neon.com/guides/lakebase-vector-bm25-search) walks through building a Next.js knowledge base with semantic and keyword search.

## Run `neonctl psql` without installing the psql client

The `neonctl psql` command now gives you access to `psql`, the standard PostgreSQL command-line client, without requiring it to be installed. When no native binary is found in your `$PATH`, neonctl falls back to a built-in implementation automatically. If `psql` is already on your system, nothing changes.

```bash
neonctl psql --project-id <project-id>
```

## Manage Neon Auth end-to-end from the CLI

You can now manage [Neon Auth](https://neon.com/docs/auth/overview) end-to-end from the CLI:

- Provision, check, and remove Neon Auth on a branch:

  ```bash
  neonctl neon-auth enable
  neonctl neon-auth status
  neonctl neon-auth disable
  ```

- Configure Google, GitHub, and Vercel OAuth providers:

  ```bash
  neonctl neon-auth oauth-provider add --provider-id google
  ```

- Manage trusted redirect domains:

  ```bash
  neonctl neon-auth domain add https://myapp.com
  ```

- Configure email auth, SMTP, organization settings, and webhooks:

  ```bash
  neonctl neon-auth config email-password update --enabled true
  neonctl neon-auth config webhook update --enabled true --url https://myapp.com/webhook
  ```

- Manage auth users from the terminal:

  ```bash
  neonctl neon-auth user create --email alex@example.com
  neonctl neon-auth user set-role <user-id> --roles admin
  ```

Both are in **neonctl v2.23.0**. For the full command reference, see [`neonctl neon-auth`](https://neon.com/docs/cli/neon-auth). To upgrade, see [Neon CLI install](https://neon.com/docs/cli/install#upgrade).

## A branch-first dev loop for Neon

With **neonctl v2.24.0**, the branch-first dev loop is complete. `neon link` and `neon checkout` shipped last week; this week adds `neonctl env pull`, which makes every branch switch also update your local credentials.

```bash
neonctl link                          # once per project
neonctl checkout my-feature           # create a branch; env pull runs automatically
neonctl env pull                      # or run directly anytime to refresh or use --file
```

In **neonctl v2.24.1**, `link` and `checkout` run `env pull` automatically after pinning a branch, so your `DATABASE_URL` and any Auth or Data API URLs land in `.env` without a separate step. Use `--no-env-pull` to opt out, for example when injecting env at runtime via `neonctl dev`.

If you'd rather not write secrets to disk, the `@neondatabase/env` package injects branch-scoped variables at runtime:

```bash
npm i @neondatabase/env
neon-env run -- npm run dev
```

For the full walkthrough, see [our blog post](https://neon.com/blog/branch-first-dev-loop).

## Fixes and improvements

<details>

<summary>**New NAT gateway IPs and VPC endpoint services in US East (N. Virginia)**</summary>

We've expanded infrastructure capacity in the AWS US East (N. Virginia) region (`us-east-1`) with new NAT gateway IP addresses and new VPC endpoint service addresses for Private Networking.

**Tip: 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 `us-east-1`, you can now use the additional VPC endpoint service addresses for enhanced capacity and reliability. See the [Regions documentation](https://neon.com/docs/introduction/regions#aws-nat-gateway-ip-addresses) for the complete list of NAT gateway IPs and the [Private Networking guide](https://neon.com/docs/guides/neon-private-networking) for VPC endpoint service addresses by region.

</details>

<details>

<summary>**Neon API: consumption history egress fix**</summary>

Fixed an issue in `/consumption_history` v2 where `public_network_transfer_bytes` incorrectly included both ingress and egress traffic, which could overstate public transfer usage. The metric now correctly counts only egress traffic; `private_network_transfer_bytes` continues to include both ingress and egress.

</details>

<details>

<summary>**OpenTelemetry integration: PostHog now supported as an OTLP destination**</summary>

The [Neon OpenTelemetry integration](https://neon.com/docs/guides/opentelemetry) now accepts PostHog as a valid OTLP destination. Use `https://us.i.posthog.com` for the US region or `https://eu.i.posthog.com` for the EU region, and authenticate with your PostHog project API key.

</details>

<details>

<summary>**Project-scoped API keys now require admin permissions**</summary>

Creating project-scoped organization API keys now requires organization admin permissions. Previously, project-level write access was sufficient. Already-issued project-scoped org API keys continue to work as before.

</details>

<details>

<summary>**neonctl branches list: text labels**</summary>

`neonctl branches list` now uses text labels instead of symbols. `[default]`, `[protected]`, and `[current]` replace the old `✱` and `⛨` markers. `[current]` marks whichever branch is pinned in your local `.neon` context.

</details>
