Sanity Studio v5.15.0: Upgrade CLI tool, annotation, form field, and releases improvements

New CLI (@sanity/cli upgrade)

The Sanity CLI has undergone a big behind-the-scenes overhaul. If you were previously running the CLI package directly, you'll want to switch to using sanity for all commands. In addition, there are some new fixes and improvements.

Dataset embeddings commands: New commands to configure embeddings for datasets.

Global --project-id and --dataset flags: Run commands outside a project directory without needing a sanity.cli.ts config.

Non-interactive environment detection: Prompts detect CI/pipeline environments automatically, preventing hangs in automated workflows.

SDK templates are ESM by default: New projects created via sanity init use ESM.

Improved MCP setup process.

Bugfix: Boolean flags no longer get confused with commands that have positional arguments.

Bugfix: GraphQL and certain other commands now support Vite aliases.

Bugfix: Strict flag parsing means unknown flags now produce an error instead of being silently ignored (for example, a --datset foo typo now errors instead of doing nothing).

Studio fixes

Annotation popover fix: The Portable Text annotation toolbar popover now appears on the first click instead of requiring two clicks (regression fix).

Form field column alignment: Using options.columns now aligns fields to the top instead of the bottom, fixing an issue where opening a long field would push adjacent columns out of view.

Releases overview on mobile: Improved layout and navigation for viewing releases on mobile screens.

Releases nav menu fix: Links in the release nav menu now work consistently when navigating from the releases overview or drafts.