A branch-first dev loop for Neon: link, checkout and env pull Neon released three new CLI commands — `neonctl link`, `neonctl checkout`, and `neonctl env pull` — to streamline branch-first development workflows for its serverless Postgres platform. The commands allow developers to link a local workspace to a Neon project, switch between database branches, and automatically pull branch-specific environment variables, eliminating manual configuration steps. The update aims to make isolated development environments the default for both human developers and coding agents. We're hard at work shipping the private preview of Neon Platform https://neon.com/blog/were-building-backends and while we're at it we're rethinking Neon's developer experience from the ground up. A lot of that work is about making branch-first development the default, not something you have to wire up yourself. The first piece is shipping today: three new Neon CLI commands that make branch-first development easier than ever. neonctl link , neonctl checkout and neonctl env pull . They benefit you whether you only use Neon Serverless Postgres or you're reaching for more of the Neon Platform going forward. And they're especially useful once you hand the feature-dev loop to a coding agent. Link your workspace to a Neon project neonctl link connects your local dev workspace to a Neon project, the same way vercel link does for your Vercel project. It's interactive: pick a Neon org, pick or create a project and branch, then the CLI writes the org, project and branch IDs into a local .neon file. That file is git-ignored by default, so it stays a per-developer pointer. And for agents that don't do interactive mode, there's neonctl link --agent . If you're a long-time neonctl user, you'll know this was already possible through the lower-level set-context command. link is just an interactive wrapper on top of the lower-level primitive. Once a workspace is linked, project- and branch-scoped commands stop needing --project-id and --branch flags. For example, this lists every branch in the linked project, no arguments required: That's convenient on its own. It becomes a game-changer once you add env pull . Pull branch-scoped env vars with env pull neonctl env pull fetches the current branch's Neon environment variables into your existing .env file, or .env.local if you don't have one. You can also point it at any file with --file . It pulls the env variables based on your current branch's enabled services. You always get DATABASE URL and DATABASE URL UNPOOLED the pooled and direct Postgres connection strings , plus the Neon Auth and Data API secrets when those services are enabled on the branch. And as our preview features roll out object storage and an AI gateway you'll get those too if you're using them. Only the Neon-managed keys are written, so everything else in your file is left untouched. There's no branch ID to pass, because it's already in .neon . Giving your teammates, both human and agent, an isolated Neon branch for development is great. Pulling all the branch-scoped connection details for that branch by hand is the annoying part. env pull is the fix. In fact, you'll rarely run env pull yourself: as you'll see below, link and checkout run it for you, so pinning a branch and pulling its env are a single step. Switch branches with checkout The last ingredient is switching branches. Neon brings git-like branching to Postgres and soon the full suite of Neon backend primitives , so inspired by git again, we added a quick utility command for it: checkout . neonctl checkout