---
schema_version: 1
route: /t/vercel.md
tool: "vercel"
---

# sincecutoff.com /t/vercel — Vercel CLI

- name: Vercel CLI
- kind: cli
- children: none
- homepage: <https://github.com/vercel/vercel>

Changes to the tools coding agents drive, since a model's training cutoff, each linked to its first-party source. Check installed versions and limitations before acting; a cutoff date does not establish what a model knows.
Original editorial content: [Apache 2.0](https://sincecutoff.com/v1/data-license.txt), by [0xPatrick](https://0xpatrick.dev). Preserve applicable license and [NOTICE](https://sincecutoff.com/notice.txt) attribution when redistributing. Third-party source text and examples retain their own rights. [License scope and attribution](https://sincecutoff.com/v1/license.json).
To stay current, read the changes feed: [`/v1/changes.md?tool=vercel`](https://sincecutoff.com/v1/changes.md?tool=vercel) (or `.json`), adding `since=YYYY-MM-DD` for your training cutoff. Entries for registered children are included; the registry itself is `/v1/tools.json`. How to page and save your place: [llms.txt](https://sincecutoff.com/llms.txt).

### vercel connect discover and categories list connector services and categories (2026-10-14)
- slug: vercel-connect-discover-and-categories-list-connector-services-and-categories-2d64e1ac59fc
- score: 0.98

How to use it:

When you need to choose a connector service, run `vercel connect discover [query]` with optional filters; run `vercel connect categories` to list valid category slugs.

Examples:

```
vercel connect discover [query]
```

```
vercel connect discover --category <SLUG> --connection-method <METHOD> --target <TARGET> --supports-triggers --limit <COUNT> --next <CURSOR>
```

```
vercel connect categories
```

- why_it_matters: Find available connector services and their category slugs before creating a connector.
- sources: <https://vercel.com/docs/cli/release-notes#vercel@64.1.0>, <https://vercel.com/docs/cli/connect>
- gotchas: "Version: 64.1.0"; "query: Searches service names, aliases, keywords, and descriptions."; "--category <SLUG>: Filters by category; repeatable. Use `vercel connect categories` for valid slugs."; "--connection-method <METHOD>: Filters by connection method, such as `oauth`, `api-key`, or `mcp`; repeatable."; "--target <TARGET>: Filters by exposed product, such as `api` or `mcp`; repeatable."; "--supports-triggers: Shows only services that can forward webhook triggers."; "--limit <COUNT>: Sets the number of services to return; default 50, maximum 500."; "--next <CURSOR>: Sets the cursor for the next results page."

### vercel domains buy and renew support nonterminal approval flows (2026-10-08)
- slug: vercel-domains-buy-and-renew-support-nonterminal-approval-flows-e667f781490e
- score: 0.97

How to use it:

When buying or renewing a domain without an interactive terminal, explicitly select the paying team and first request the price without `--amount`. After a person approves the price and terms, run the returned command with the approved amount; for purchases, also provide required registrant details and choose auto-renewal.

Examples:

```
vercel domains buy <domain> --scope <team> --json
```

```
vercel domains buy <domain> --scope <team> --amount <approved-price-in-USD> --first-name <text> --last-name <text> --email <text> --phone <+countrycode-and-number> --address <text> --city <text> --state <text> --zip <text> --country <two-letter-code> --auto-renew --json
```

```
vercel domains renew <domain> --scope <team> --json
```

- why_it_matters: When buying or renewing a domain from a script without a terminal, retrieve the price and renewal terms or submit the approved charge with the required team scope.
- sources: <https://vercel.com/docs/cli/release-notes#vercel@63.1.0>, <https://vercel.com/docs/cli/domains>
- gotchas: "Version: 63.1.0"; "<domain> (required): Domain to buy or renew."; "--scope <team> (required): Select the paying team for a non-interactive charge; saved team selection or `vercel.json` scope alone is insufficient."; "VERCEL_ORG_ID: Alternative to `--scope`: set to the ID of the paying team for a non-interactive charge."; "--amount <USD> (required): Required to charge; must equal the current price approved by a person. Omit to request price and approval instructions without charging."; "--first-name <TEXT> (required): Registrant's first name."; "--last-name <TEXT> (required): Registrant's last name."; "--email <TEXT>: Registrant email; required unless supplied by approved billing details."; "--phone <TEXT> (required): Registrant phone, starting with `+` and containing 10–15 digits including country code."; "--address <TEXT>: Street address; required unless supplied by approved billing details. Quote values containing spaces."; "--city <TEXT>: Registrant city; required unless supplied by approved billing details."; "--state <TEXT>: State or province; required unless supplied by approved billing details. Required for every country when specified as a contact field."; "--zip <TEXT>: Postal or ZIP code; required unless supplied by approved billing details. Required for every country when specified as a contact field."; "--country <CODE>: Two-letter country code; required unless supplied by approved billing details."; "--company <TEXT>: Registrant company name."; "--use-billing-details: Use available team billing email and address fields for registrant details; does not supply first name, last name, or phone. Contact flags override billing details."; "--auto-renew (required): Allow recurring renewal charges at the end of each term. Provide exactly one of this flag and `--no-auto-renew`; neither takes a value."; "--no-auto-renew (required): Turn automatic renewal off. Provide exactly one of this flag and `--auto-renew`; neither takes a value."; "--json: Return structured output without prompts; equivalent documented option: `--format json`."; "Prerequisite: Use Vercel CLI 63.1.0 or later for prompt-free buy/renew commands."; "Prerequisite: Before a non-interactive charge, specify the paying team with `--scope <team>` or `VERCEL_ORG_ID` set to that team's ID."; "Prerequisite: For a purchase, supply required registrant fields and exactly one auto-renew choice; approved billing details can supply available email and address fields."; "Without a terminal, the team must be named with `--scope` or `VERCEL_ORG_ID`."; "Without `--amount`, no charge is made; the command returns the price, paying team, renewal terms, and exact command to run after a person approves the price."; "A failed or unconfirmed charge returns a JSON error, and the charge request is never retried."; "Without a terminal, `domains buy` requires `--auto-renew` or `--no-auto-renew`; auto-renew has no default there because it starts a recurring charge."

### vc curl accepts full URLs and bare hosts (2026-10-06)
- slug: vc-curl-accepts-full-urls-and-bare-hosts-c81bad88aa14
- announced: 2026-05-11
- status: ga
- score: 0.91

How to use it:

When targeting a deployment by full URL or bare host, use `vc curl` with that target; the CLI resolves project authentication from the target URL. [Release note](https://github.com/vercel/vercel/releases/tag/vercel@53.4.0)

Examples:

```
vc curl https://<deployment-host>/<path>
```

```
vc curl <deployment-host>/<path>
```

- why_it_matters: Use `vc curl` to send a request to a project when specifying its target as a full URL or bare host.
- sources: <https://github.com/vercel/vercel/releases/tag/vercel%4053.4.0>, <https://vercel.com/docs/cli/curl>, <https://vercel.com/docs/cli/release-notes#vercel@62.5.0>
- gotchas: "Version: 53.4.0"; "url|path (required): Request target: a full URL, bare hostname, or API path. Full URLs and bare hostnames let the CLI resolve the deployment’s owning project; paths target the linked project’s latest production deployment."; "Prerequisite: Vercel CLI v48.8.0 or later; `curl` must be installed on the system."; "Availability: generally available since 2026-10-06"

### vercel CLI adds webhook management commands (2026-10-06)
- slug: vercel-cli-adds-webhook-management-commands-4a0562fba043
- announced: 2026-02-03
- status: ga
- score: 0.98

How to use it:

When maintaining a Vercel account’s webhooks, use `vercel webhooks ls` to list, `get` to inspect, `create` to add, and `rm` to remove; use `--format json` on list/get and `--yes` to skip the removal prompt.

Examples:

```
vercel webhooks ls --format json
```

```
vercel webhooks create https://example.com/webhook --event deployment.created --event deployment.ready
```

```
vercel webhooks rm <id> --yes
```

- why_it_matters: Manage webhooks while maintaining a Vercel project from the CLI.
- sources: <https://github.com/vercel/vercel/releases/tag/vercel%4050.10.0>, <https://vercel.com/docs/cli/webhooks>, <https://vercel.com/docs/webhooks>, <https://vercel.com/docs/cli/global-options>, <https://vercel.com/docs/cli/release-notes#vercel@62.5.0>
- gotchas: "Version: 50.10.0"; "<id> (required): Webhook identifier for `get` or `rm`."; "<url> (required): Webhook endpoint URL for `create`."; "--event <event> (required): Event to subscribe to when creating; repeat to add events."; "--format json: Output list or get results as JSON; `json` is the only supported value."; "--yes: Skip the removal confirmation prompt."; "Prerequisite: Account webhooks are available on Pro and Enterprise plans."; "Prerequisite: Authenticate the Vercel CLI; docs support a `--token` argument or `VERCEL_TOKEN` environment variable."; "Prerequisite: The CLI webhooks command is marked beta in the current docs."; "Webhook event types are fetched dynamically from the OpenAPI spec."; "Availability: generally available since 2026-10-06"

### vercel flags evaluations supports grouping across flags (2026-10-06)
- slug: vercel-flags-evaluations-supports-grouping-across-flags-2316efc2fdcc
- score: 0.96

How to use it:

To find SDK keys and services still evaluating flags after rotation, query project-wide evaluations grouped by SDK key or client. The release note also supports grouping by variant, flag, environment, or reason.

Examples:

```
vercel flags evaluations --group-by sdk-key
```

```
vercel flags evaluations --group-by client
```

- why_it_matters: Review flag evaluations across a project to identify SDK keys and services still evaluating flags after a key rotation.
- before: The documented command took a flag argument: `vercel flags evaluations [flag]`.
- sources: <https://vercel.com/docs/cli/release-notes#vercel@62.5.0>, <https://vercel.com/docs/cli/flags>
- gotchas: "Version: 62.5.0"; "[flag]: Omit to query evaluations across every flag in the project."; "--group-by <value>: Groups evaluations by variant, flag, sdk-key, client, environment, or reason."; "The `--group-by` values are `variant`, `flag`, `sdk-key`, `client`, `environment`, and `reason`."; "The flag argument is optional to query across every flag in the project."

### vercel pricing lists public plan features (2026-10-06)
- slug: vercel-pricing-lists-public-plan-features-5430cde1def3
- score: 0.93

How to use it:

When reviewing a repository’s Vercel deployment plan, compare Hobby, Pro, and Enterprise feature availability with `vercel pricing`. The command reads the public pricing table and groups features by the lowest plan that includes them.

Examples:

```
vercel pricing
```

```
vercel pricing <query>
```

- why_it_matters: Compare Hobby, Pro, and Enterprise features while reviewing a repository's Vercel deployment plan.
- sources: <https://vercel.com/docs/cli/release-notes#vercel@62.5.0>, <https://vercel.com/docs/cli/pricing>
- gotchas: "Version: 62.5.0"; "query (optional positional argument): Filters the pricing table; multiple words form one query."; "Lists Hobby, Pro, and Enterprise features from the public pricing table."

### vercel build and dev support requestMethod for flat path schedules (2026-10-05)
- slug: vercel-build-and-dev-support-requestmethod-for-flat-path-schedules-d85900a0005e
- score: 0.93

How to use it:

For a flat path schedule that needs a specific HTTP method, set `requestMethod` to `GET` or `POST`; it defaults to `POST`. `vercel build` writes the method to Build Output, and `vercel dev` invokes the schedule with it.

Examples:

```
{"schedules":[{"path":"<path>","schedule":"<cron-expression>","requestMethod":"GET"}]}
```

- why_it_matters: When configuring flat path schedules that need GET requests during local development or build output generation, set the schedule request method.
- sources: <https://vercel.com/docs/cli/release-notes#vercel@62.4.0>, <https://vercel.com/docs/cli/release-notes#vercel@62.1.0>
- gotchas: "Version: 62.4.0"; "requestMethod: HTTP method for a flat path schedule: `GET` or `POST`; defaults to `POST`."; "path (required): Path target for a flat schedule. The flat schedule format aligns with `crons` and uses `schedule` plus one target."; "Prerequisite: Use Vercel CLI 62.4.0 or later for this feature."; "`requestMethod` accepts `GET` or `POST`."; "The default request method is `POST`."; "The behavior applies to flat path schedules."

### vercel traces get accepts trace IDs or request IDs (2026-10-02)
- slug: vercel-traces-get-accepts-trace-ids-or-request-ids-b0fae1bd80ab
- score: 0.90

How to use it:

When you have a trace ID or request ID, run `vercel traces get <trace-or-request-id>` to retrieve the trace details.

Examples:

```
vercel traces get <trace-or-request-id>
```

- why_it_matters: Retrieve trace details when you have a trace ID or request ID.
- sources: <https://vercel.com/docs/cli/release-notes#vercel@62.2.0>, <https://vercel.com/changelog/trace-any-vercel-request-from-the-cli>
- gotchas: "Version: 62.2.0"; "<trace-or-request-id> (required): Trace ID or request ID to retrieve."; "Prerequisite: Use Vercel CLI 62.2.0 or later; the change is included in version 62.2.0."; "Prerequisite: The trace retrieval feature is available on all plans."

### vercel ci logs displays and follows task logs for a run (2026-10-01)
- slug: vercel-ci-logs-displays-and-follows-task-logs-for-a-run-3caf8a3b32db
- score: 0.99

How to use it:

When debugging a Vercel CI run, use `vercel ci logs <run-id>` to inspect task logs; add the documented filters or `--follow` to stream a running task. If the run fails before any tasks start, retrieve its setup logs.

Examples:

```
vercel ci logs <run-id>
```

```
vercel ci logs <run-id> --failed --task <task> --level <level>
```

```
vercel ci logs <run-id> --follow
```

- why_it_matters: Inspect or follow task logs while debugging a Vercel CI run.
- sources: <https://vercel.com/docs/cli/release-notes#vercel@62.1.0>
- gotchas: "Version: 62.1.0"; "<run-id> (required): Vercel CI run to inspect."; "--failed: Filter task logs to failed tasks."; "--task <task>: Filter logs by task."; "--level <level>: Filter logs by level."; "--follow: Stream logs for a running task."; "Follow mode performs a final full-snapshot read without the stream timestamp cursor when a task completes, reconnects healthy stream timeouts, handles JSON snapshot responses, respects stdout backpressure, preserves JSONL errors, and bounds interrupted or invalid response retries."; "For completed retried tasks, empty logs produce a stderr warning when no level filter is applied; valid quiet, cached, or skipped tasks do not fail. JSON mode emits a structured stderr warning and reserves stdout for log records."; "Human output distinguishes runs without failures yet from completed runs; empty `--failed` JSON results include `run.finished`."; "Commands resolve the latest attempt from the attempts endpoint instead of relying on list-row ordering."; "Reconnects replay retained logs and deduplicate by timestamp, level, message, and occurrence count, preserving repeated identical lines and older late arrivals in append-only history."; "Replay stops explicitly at its 8 MiB estimated-state or 50,000 distinct-record limit instead of silently evicting records; the final snapshot recovers retained logs suppressed within the active stream."; "Without server record IDs, an ingestion cursor, and a completion watermark, logs ingested after the final snapshot are not guaranteed; the final read drains logs available at that point, not future ingestion."

### vercel dev serves Vercel Queues and Runtime Cache on local endpoints (2026-09-17)
- slug: vercel-dev-serves-vercel-queues-and-runtime-cache-on-local-endpoints-ed4fa0326b67
- score: 0.92

How to use it:

When developing a project that uses Vercel Queues or Runtime Cache, run `vercel dev` from the project root to use their local endpoints, including when no queue services are configured.

Examples:

```
vercel dev
```

```
vercel dev --queue-port <port> --runtime-cache-port <port>
```

- why_it_matters: Run a project with Vercel Queues or Runtime Cache locally, including when no queue services are configured.
- sources: <https://vercel.com/docs/cli/release-notes#vercel@59.22.0>, <https://vercel.com/docs/cli/dev>, <https://github.com/vercel/vercel/blob/main/packages/cli/src/util/dev/server.ts>
- gotchas: "Version: 59.22.0"; "--queue-port <port>: Pins the local Queues port."; "--runtime-cache-port <port>: Pins the local Runtime Cache port."; "Prerequisite: Install project dependencies with `npm install` before running `vercel dev`."; "A manually set `RUNTIME_CACHE_ENDPOINT` takes precedence."; "Occupied default ports are incremented automatically unless pinned."

### vercel schedules get and list inspect linked-project schedules (2026-09-16)
- slug: vercel-schedules-get-and-list-inspect-linked-project-schedules-db17cd1ef3ae
- score: 0.94

How to use it:

If inspecting schedules in a Vercel project, run `vercel schedules list` to list them or `vercel schedules get <schedule-id>` to inspect one. The project must be linked.

Examples:

```
vercel schedules list
```

```
vercel schedules get <schedule-id>
```

- why_it_matters: Inspect schedules configured for a linked Vercel project.
- sources: <https://vercel.com/docs/cli/release-notes#vercel@59.20.0>, <https://vercel.com/docs/cli/link>
- gotchas: "Version: 59.20.0"; "Prerequisite: The CLI must have a linked Vercel project; `vercel link` links the current directory to a project."; "Prerequisite: The official release note adds these commands in Vercel CLI 59.20.0."; "The project must be linked."

### vercel storage commands manage Blob and Global Config stores (2026-09-14)
- slug: vercel-storage-commands-manage-blob-and-global-config-stores-8b1f24bdfcf6
- score: 0.97

How to use it:

To manage a Vercel project's Blob or Global Config stores, use `vercel storage list|create|get|delete`. For `create`, supply `--type` and that store type's product flags; use `--type` with `get` or `delete` when names collide, and handle `action_required` when deletion is non-interactive.

Examples:

```
vercel storage list
```

```
vercel storage create <name> --type <blob|global-config> [--access <access>] [--region <region>] [--items <items>]
```

```
vercel storage get <name> --type <blob|global-config>
vercel storage delete <name> --type <blob|global-config>
```

- why_it_matters: Manage Blob and Global Config storage resources for a Vercel project.
- sources: <https://vercel.com/docs/cli/release-notes#vercel@59.17.0>, <https://vercel.com/docs/cli>
- gotchas: "Version: 59.17.0"; "--type <blob|global-config> (required): Selects the store type for create; get and delete accept it to disambiguate stores with the same name."; "--access <access>: Blob create product flag; valid values and default are not stated in the release note."; "--region <region>: Blob create product flag; valid values and default are not stated in the release note."; "--items <items>: Global Config create product flag; accepted format is not stated in the release note."; "Prerequisite: Authenticate with `vercel login`, or use a token with `--token` in CI/CD. CLI commands that access resources or perform administrative tasks require authentication."; "Prerequisite: Install the Vercel CLI, for example with `pnpm i -g vercel`."; "`delete` cannot be undone and drops every project connection."; "`delete` always requires interactive confirmation and returns an `action_required` payload in non-interactive contexts."; "`get` and `delete` accept `--type` to distinguish a Blob store and a Global Config with the same name."; "Docs conflict: The current Blob CLI documentation describes older product-specific forms (`vercel blob create-store`, `get-store`, `delete-store`); it does not document the `vercel storage` command. Do not substitute those forms for the 59.17.0 release-note command. https://vercel.com/docs/cli/blob"

### vercel flags inspect supports --json output (2026-09-11)
- slug: vercel-flags-inspect-supports-json-output-68e88e7b9d8c
- score: 0.97

How to use it:

When a workflow needs structured output for a feature flag, run `vercel flags inspect <flag> --json` to print its definition to stdout.

Examples:

```
vercel flags inspect <flag> --json
```

- why_it_matters: Inspect a feature flag definition in a script or other workflow that consumes structured output.
- sources: <https://vercel.com/docs/cli/release-notes#vercel@59.16.0>, <https://vercel.com/docs/cli/flags>, <https://github.com/vercel/vercel-plugin/blob/main/skills/flags-sdk/SKILL.md>
- gotchas: "Version: 59.16.0"; "<flag> (required): Flag key to inspect. The CLI docs show `[flag]` as optional; supply the flag key to inspect a specific definition."; "--json: Output the flag definition as JSON to stdout; added in Vercel CLI 59.16.0."; "Prerequisite: Use an authenticated Vercel CLI. Install with `pnpm i -g vercel`."; "Prerequisite: CLI-only flag management does not require SDK packages, Toolbar, Flags Explorer, or `.env.local`."

### vercel flags entities create adds schema-validated entity creation (2026-09-09)
- slug: vercel-flags-entities-create-adds-schema-validated-entity-creation-1a3d8b6cec23
- score: 0.95

How to use it:

When creating a flag-targeting entity in a linked Vercel project, run `vercel flags entities create` with the entity kind and one or more typed attributes. The CLI validates the entity kind, attribute keys, and attribute types.

Examples:

```
vercel flags entities create <kind> --label <label> --attribute <key>:<type> --attribute <key>:<type>
```

- why_it_matters: Create a flag-targeting entity and its attributes in a project using Flags.
- sources: <https://vercel.com/docs/cli/release-notes#vercel@59.14.0>, <https://vercel.com/docs/cli/flags>, <https://vercel.com/docs/flags/vercel-flags/quickstart>, <https://vercel.com/docs/cli>
- gotchas: "Version: 59.14.0"; "<kind> (required): Entity kind; used to identify the entity. If `--label` is omitted, the CLI derives a label from the kind."; "--attribute <key>:<type> (required): Adds an attribute. Repeat for each attribute. Documented types include `string`, `number`, `boolean`, and `stringArray`."; "--label <label>: Sets the entity label; otherwise the CLI derives one from the kind."; "Prerequisite: Install Vercel CLI and link the local project with `vercel link` if it is not linked."; "Prerequisite: Authenticate with Vercel before accessing project resources; use `vercel login` or a token in CI."; "Docs conflict: The current CLI docs include `timestamp` attributes, but Vercel's timestamp-attributes changelog is dated 2026-10-07, after the card's stated version date. Do not rely on that attribute type for version 59.14.0."

### vercel flags entities rm removes entities with reference checks (2026-09-09)
- slug: vercel-flags-entities-rm-removes-entities-with-reference-checks-10275a56551c
- score: 0.91

How to use it:

When removing an entity from a Vercel Flags project, run `vercel flags entities rm <entity-kind>` and confirm the removal; the CLI checks references across active and archived flags and segments.

Examples:

```
vercel flags entities rm <entity-kind>
```

```
vercel flags entities rm <entity-kind> --yes
```

- why_it_matters: Remove an entity from a Flags project after checking whether active or archived flags and segments reference it.
- sources: <https://vercel.com/docs/cli/release-notes#vercel@59.14.0>, <https://vercel.com/docs/cli/flags>, <https://vercel.com/docs/cli>
- gotchas: "Version: 59.14.0"; "<entity-kind> (required): Entity kind to remove; for example, `device`."; "--yes: Skip the confirmation prompt."; "Prerequisite: Authenticate with Vercel before accessing resources or performing administrative tasks."; "Prerequisite: The CLI uses the linked project by default. Entity deletion fails while flags or segments reference the entity; remove every reference first."; "Removal uses confirmation and checks references across active and archived flags and segments."; "Docs conflict: The current CLI docs say deletion is blocked while flags or segments reference the entity and do not specify active versus archived references. The 59.14.0 release note says the new command performs reference checks across active and archived flags and segments; the docs may describe newer behavior."

### vercel storage connects and manages project storage resources (2026-09-08)
- slug: vercel-storage-connects-and-manages-project-storage-resources-a83ae66452f9
- score: 0.96

How to use it:

When connecting, checking, updating, or disconnecting a project storage resource, run `vercel storage <subcommand> <store>` with its name or ID. For mutations, review the environment-variable change set; use `--dry-run` to stop before applying it, and run `disconnect` interactively to confirm.

Examples:

```
vercel storage connect <store> [--auth oidc] [--add-rw-token]
```

```
vercel storage status <store>
```

```
vercel storage update <store> [--auth oidc] [--add-rw-token] [--dry-run]
```

- why_it_matters: Connect, inspect, update, or disconnect a supported storage resource for a project and manage its environment-variable changes.
- sources: <https://vercel.com/docs/cli/release-notes#vercel@59.12.0>, <https://vercel.com/docs/cli/release-notes>
- gotchas: "Version: 59.12.0"; "<store> (required): Storage resource name or ID; shared across Vercel Blob, Marketplace resources, and other first-party stores."; "--auth oidc: OIDC is the default authentication path."; "--add-rw-token: Explicitly request static credentials."; "--dry-run: Print the environment-variable change set without applying it."; "The same resource identifier (store name or ID) is used for Vercel Blob, Marketplace resources, and other first-party stores."; "Static credentials require explicit `--add-rw-token`."; "`disconnect` removes environment variables from the project, has no `--yes`, and always requires interactive confirmation."; "Non-interactive contexts can only use `disconnect` with `--dry-run`."

### vercel multi-service builds support experimental concurrency (2026-08-29)
- slug: vercel-multi-service-builds-support-experimental-concurrency-0f151fdf49bf
- score: 0.94

How to use it:

For a multi-service project, set `VERCEL_EXPERIMENTAL_BUILD_CONCURRENCY` above `1` to run fork-eligible service builds concurrently; builds are grouped by install scope. The release note allows an integer, a percentage of available parallelism, or `auto`.

Examples:

```
VERCEL_EXPERIMENTAL_BUILD_CONCURRENCY=2 vercel build
```

```
VERCEL_EXPERIMENTAL_BUILD_CONCURRENCY=50% vercel build
```

```
VERCEL_EXPERIMENTAL_BUILD_CONCURRENCY=auto vercel build
```

- why_it_matters: Build a project with multiple services and control how many eligible service builds run concurrently.
- before: Set `VERCEL_EXPERIMENTAL_BUILD_CONCURRENCY` to its default value of 1 for fully sequential service builds.
- sources: <https://github.com/vercel/vercel/blob/main/packages/cli/CHANGELOG.md#59100>
- gotchas: "Version: 59.10.0"; "Availability: Experimental; concurrency values above 1 enable parallel builds."; "VERCEL_EXPERIMENTAL_BUILD_CONCURRENCY: Concurrency setting: integer, percentage of available parallelism, or `auto`; default `1` preserves sequential behavior."; "The default of 1 preserves fully sequential behavior."; "Only fork-eligible service builds run concurrently."; "Builds are grouped by install scope so package-manager installs never race."

### vercel traces config ls lists project sampling rules (2026-08-22)
- slug: vercel-traces-config-ls-lists-project-sampling-rules-c395e8d2a4c1
- score: 0.95

How to use it:

When inspecting trace sampling rules, run `vercel traces config ls` from the linked project directory; add `--project <name-or-id>` and optionally `--scope <team>` to select a project explicitly. Add `--json` to output the rules as JSON.

Examples:

```
vercel traces config ls
```

```
vercel traces config ls --json
```

```
vercel traces config ls --scope <team> --project <name-or-id>
```

- why_it_matters: Inspect a project's trace sampling configuration from its linked directory or a selected scope.
- sources: <https://github.com/vercel/vercel/blob/main/packages/cli/CHANGELOG.md#5950>, <https://vercel.com/docs/cli/traces>, <https://vercel.com/docs/cli/global-options>, <https://vercel.com/docs/cli>
- gotchas: "Version: 59.5.0"; "--json: Output the rules as JSON."; "--project <name-or-id>: Select a project; defaults to the linked project."; "--scope <team>: Run the CLI command in the specified scope."; "Prerequisite: Vercel CLI must be authenticated to access project resources."; "Prerequisite: Project sampling rules are managed for the linked project or the project specified with `--project`."; "The project is taken from the linked directory, or from `--project` looked up in the scope selected by `--scope`; both resolve to ids before the request."; "A `--scope` that disagrees with the linked project is reported instead of applied."; "A project with no rules prints an empty state and the command that adds one."; "Non-interactive runs print an agent envelope with the project, a message, and suggested next commands; API refusals are reported on stdout with a machine-readable reason."

### vercel traces config set adds or replaces a sampling rule (2026-08-22)
- slug: vercel-traces-config-set-adds-or-replaces-a-sampling-rule-ba5cc99af720
- score: 0.95

How to use it:

When adding or changing one sampling rule, run `vercel traces config set <environment> <rate> [requestPath]`; use `any`, `preview`, or `production` and a whole rate from 1 to 100. The rule is matched by environment and path prefix, so repeating that pair changes its rate.

Examples:

```
vercel traces config set <environment> <rate> [requestPath]
```

- why_it_matters: Add or change one trace sampling rule for a project.
- sources: <https://github.com/vercel/vercel/blob/main/packages/cli/CHANGELOG.md#5950>, <https://vercel.com/docs/cli/traces>, <https://vercel.com/docs/cli>
- gotchas: "Version: 59.5.0"; "<environment> (required): `any`, `preview`, or `production`; `any` matches every environment."; "<rate> (required): Whole percentage from 1 to 100: percentage of matching requests to trace."; "[requestPath]: Path prefix, such as `/api`; omit to match every path."; "--project <name-or-id>: Select project; defaults to the linked project."; "--json: Output the new rule as JSON."; "Prerequisite: Vercel CLI must be installed and authenticated to access resources or perform administrative tasks."; "Prerequisite: Changing sampling rules requires a role with project update access."; "Environment and rate are checked before the API call."; "Rules are identified by environment and path prefix."; "The success line reports the old rate, new rate, and rule count."; "Drain domains, ignore paths, and rules not being changed are written back untouched."; "Only the rule being written is rebuilt from the command line; editing another rule does not round a fractional rate that the API accepts but the CLI cannot express."; "An eleventh rule is refused with an error naming the ten-rule limit."

### vercel dns update adds SRV record support (2026-08-22)
- slug: vercel-dns-update-adds-srv-record-support-e4b94282aa7a
- score: 0.97

How to use it:

When a repository's development or service configuration requires an SRV record, use `vercel dns update` with the four SRV flags. The official CLI reference documents SRV creation with `vercel dns add`, but does not document the `update` invocation or its flags.

Examples:

```
vercel dns add <domain> <name> SRV <priority> <weight> <port> <target>
```

- why_it_matters: Update DNS records for a repository's domain when its development or service configuration requires an SRV record.
- sources: <https://github.com/vercel/vercel/blob/main/packages/cli/CHANGELOG.md#5940>, <https://vercel.com/docs/cli/dns>, <https://vercel.com/docs/cli>
- gotchas: "Version: 59.4.0"; "--srv-priority (required): Sets the SRV record priority; the CLI reference does not document this update flag."; "--srv-weight (required): Sets the SRV record weight; the CLI reference does not document this update flag."; "--srv-port (required): Sets the SRV record port; the CLI reference does not document this update flag."; "--srv-target (required): Sets the SRV record target; the CLI reference does not document this update flag."; "Prerequisite: Authenticate with Vercel before accessing resources or performing administrative tasks."

### vercel domains auto-renew controls registrar-managed domains (2026-08-22)
- slug: vercel-domains-auto-renew-controls-registrar-managed-domains-2edd7669caf0
- score: 0.94

How to use it:

For a registrar-managed domain, run `vercel domains auto-renew <domain> on` to enable automatic renewal or `vercel domains auto-renew <domain> off` to disable it. Use `--json` or `--format` for structured output; handle structured errors in non-interactive or agentic mode.

Examples:

```
vercel domains auto-renew <domain> on
```

```
vercel domains auto-renew <domain> off
```

```
vercel domains auto-renew <domain> <on|off> --json
```

- why_it_matters: Change the automatic renewal setting for a registrar-managed domain used by a project.
- before: Automatic renewal could be toggled from the domain’s Vercel Dashboard page.
- sources: <https://github.com/vercel/vercel/blob/main/packages/cli/CHANGELOG.md#5940>, <https://vercel.com/docs/cli>, <https://vercel.com/docs/domains/working-with-domains/renew-a-domain>
- gotchas: "Version: 59.4.0"; "<domain> (required): Domain whose automatic renewal setting to change."; "on|off (required): Enable or disable automatic renewal."; "--json: Request structured JSON output."; "--format: Select structured output format; documented values not found."; "Prerequisite: Authenticate before accessing resources or performing administrative tasks; use `vercel login` interactively or a token with `--token` in CI/CD."; "The command applies to registrar-managed domains."; "Non-interactive or agentic mode returns structured errors."

### vercel project members remove removes a project member (2026-08-22)
- slug: vercel-project-members-remove-removes-a-project-member-51e2cb429e71
- score: 0.96

How to use it:

When removing a collaborator from a Vercel project, run `vercel project members remove <project> <member>`; `<member>` accepts an email, username, or user ID. The currently published CLI docs say removal prompts for confirmation and has no skip flag; this conflicts with the release note’s `--yes` behavior.

Examples:

```
vercel project members remove <project> <member>
```

- why_it_matters: Remove a collaborator from the Vercel project associated with a repository.
- sources: <https://github.com/vercel/vercel/blob/main/packages/cli/CHANGELOG.md#5940>, <https://vercel.com/docs/cli/project>, <https://vercel.com/docs/cli>
- gotchas: "Version: 59.4.0"; "<project> (required): Project name or ID."; "<member> (required): Member email address, username, or user ID."; "Prerequisite: Vercel CLI requires login and authentication to access resources or perform administrative tasks."; "Identity resolution uses the project members listing."; "Docs conflict: Current CLI docs (last updated September 1, 2026) say `remove` asks for confirmation and has no flag to skip it; the release note says `--yes` skips confirmation. The current docs may describe behavior newer than version 59.4.0."

### vercel deploy creates temporary anonymous projects for credential-free deployments (2026-08-13)
- slug: vercel-deploy-creates-temporary-anonymous-projects-for-credential-free-deploymen-73b7d9667b12
- score: 0.96

How to use it:

When no Vercel credentials are configured and anonymous deployments are available, run `vercel deploy --yes` for non-interactive use; it builds locally if needed and deploys the output. Interactive use confirms the first temporary deployment; `--yes` skips that prompt.

Examples:

```
vercel deploy --yes
```

```
vercel build
vercel deploy --prebuilt --yes
```

- why_it_matters: Deploy prebuilt output from a repository when no Vercel credentials are configured.
- before: When anonymous deployments are unavailable, use the previous login behavior.
- sources: <https://github.com/vercel/vercel/blob/main/packages/cli/CHANGELOG.md#58110>, <https://vercel.com/docs/cli/deploy>, <https://vercel.com/docs/cli/deploying-from-cli>, <https://vercel.com/docs/cli>
- gotchas: "Version: 58.11.0"; "--yes: Skips prompts, answering with inferred or default values. The release note says to use it for non-interactive anonymous deployment until `.vercel/anonymous.json` records the temporary project."; "--prebuilt: Deploys build output already generated in `.vercel/output`, typically by `vercel build`."; "vercel build: Builds the project locally and produces `.vercel/output` for prebuilt deployment."; "Prerequisite: Install the CLI with `pnpm i -g vercel`."; "Prerequisite: For `--prebuilt`, the project must have build output in `.vercel/output`, typically generated with `vercel build`."; "Requires no credentials for the anonymous deployment flow."; "Anonymous deployment availability is conditional; when unavailable, the previous login behavior applies."; "Interactive users confirm before the first deployment; `--yes` skips the prompt."; "Non-interactive use requires `--yes` until `.vercel/anonymous.json` records the temporary project."; "The anonymous credential is reused until it expires."

### vercel blob put-image stores optimized image output (2026-08-12)
- slug: vercel-blob-put-image-stores-optimized-image-output-b4c02f5ad6cb
- score: 0.97

How to use it:

When you need to store a transformed local image or public HTTP(S) image URL in Vercel Blob, run `vercel blob put-image` with `--width` and `--pathname`. The command stores the optimized output and prints its URL; use `--json` for the full blob object.

Examples:

```
vercel blob put-image <file-or-url> --pathname <pathname> --width <width> --access <public|private>
```

```
vercel blob put-image <file-or-url> --pathname <pathname> --width <width> --quality <1-100> --format <jpeg|png|webp|avif> --access <public|private> --json
```

- why_it_matters: When storing a locally available image or a public image URL in Vercel Blob, create a transformed image at the required pathname.
- sources: <https://github.com/vercel/vercel/blob/main/packages/cli/CHANGELOG.md#58100>, <https://vercel.com/docs/cli/blob>
- gotchas: "Version: 58.10.0"; "<file-or-url> (required): Local image path or public HTTP(S) URL to optimize."; "--width <width> (required): Output width in pixels (1–8192); preserves aspect ratio."; "--pathname <pathname> (required): Pathname where the optimized output is stored."; "--quality <1-100>: Optimized image quality; defaults to 75."; "--format <jpeg|png|webp|avif>: Output format; omitted preserves the source format."; "--access <public|private> (required): Select the blob's storage access mode."; "--json: Print full blob object, including URL, download URL, pathname and content type."; "--oidc-token and --store-id: Provide OIDC credentials; alternatively set VERCEL_OIDC_TOKEN and BLOB_STORE_ID. Read-write tokens are not accepted."; "Prerequisite: Requires OIDC credentials: pass --oidc-token and --store-id, or set VERCEL_OIDC_TOKEN and BLOB_STORE_ID. A linked project with a connected Blob store populates these automatically; `vercel env pull` can make them available in `.env.local`."; "Source must be a local file or public http(s) URL."; "`--width` and `--pathname` are required; `--quality` defaults to 75."; "Supported formats are jpeg, png, webp and avif; when `--format` is omitted, the original is preserved."; "Requires OIDC credentials using either the stated flag pair or environment variable pair."; "Stored content type comes from the optimizer output; there is no `--content-type` flag."; "Uses the `putImage` method from `@vercel/blob` 2.8.0."; "The command warns when the optimizer keeps the original image because optimized output would have been larger."; "Docs conflict: Current Vercel CLI docs say `--access` is required for `put-image`, but the supplied release note does not mention this flag; the documented runnable command includes it."; "Docs conflict: The current docs describe output format preservation as preserving the source image format, while the release note says the original is preserved when `--format` is omitted. They appear consistent; no conflict recorded."

### vercel vcr permissions manages team access to repository images (2026-07-29)
- slug: vercel-vcr-permissions-manages-team-access-to-repository-images-600ab99857b5
- score: 0.93

How to use it:

To manage which teams can pull images from a VCR repository, run `vercel vcr permissions <repository> ls` to list access, `add` or `rm` with team IDs or slugs to grant or revoke access, or `clear` to remove all team access.

Examples:

```
vercel vcr permissions <repository> ls
```

```
vercel vcr permissions <repository> add <team[,team...]>
```

```
vercel vcr permissions <repository> rm <team[,team...]>
```

- why_it_matters: Manage which teams can pull images from a VCR repository.
- sources: <https://github.com/vercel/vercel/releases/tag/vercel%4058.3.0>, <https://vercel.com/docs/container-registry/cli-reference>
- gotchas: "Version: 58.3.0"; "<repository> (required): Repository name or ID; the repository argument comes before the subcommand."; "<team> (required): One or more team IDs or slugs to grant or revoke access; docs allow comma- or space-separated values. Values starting with `team_` are treated as IDs; others as slugs."; "--project <name-or-id>: Select a project; defaults to the linked project."; "clear (required): Subcommand removing access for every team; prompts for confirmation by default."; "--yes: For `clear`, skip the confirmation prompt."; "Prerequisite: Install the Vercel CLI, log in with `vercel login`, and link the directory to a Vercel project with `vercel link`; commands default to the linked project."; "`add` and `rm` accept one or more comma-separated team ids or slugs."

### vercel ai-gateway api-keys create adds expiration and alert thresholds (2026-07-28)
- slug: vercel-ai-gateway-api-keys-create-adds-expiration-and-alert-thresholds-3faec5f0b74a
- score: 0.93

How to use it:

When creating an AI Gateway API key, set its expiry and spend alert percentages with `--expiration` and `--alert-thresholds`.

Examples:

```
vercel ai-gateway api-keys create --expiration 90d --alert-thresholds 75,100
```

- why_it_matters: Set expiration and alert thresholds when creating an AI Gateway API key from the CLI.
- sources: <https://github.com/vercel/vercel/releases/tag/vercel%4058.1.0>, <https://github.com/vercel/vercel/blob/main/packages/cli/src/commands/ai-gateway/command.ts>, <https://vercel.com/docs/ai-gateway/observability-and-spend/budgets>
- gotchas: "Version: 58.1.0"; "--expiration <PERIOD>: Key expiry: `7d`, `30d`, `60d`, `90d`, `1y`, or `none` (default: `none`)."; "--alert-thresholds <LIST>: Comma-separated subset of `50`, `75`, and `100` spend percentages; for example, `75,100`."

### Vercel AI Gateway leaderboard CLI adds labs, apps, and providers (2026-07-28)
- slug: vercel-ai-gateway-leaderboard-cli-adds-labs-apps-and-providers-7d2c66429b23
- score: 0.95

How to use it:

To inspect AI Gateway leaderboard data, run `vercel ai-gateway leaderboard labs`, `apps`, or `providers`; use the labs filters for its time series and `--format` or `--out` to choose and save output.

Examples:

```
vercel ai-gateway leaderboard labs --modality <all|text|image|video> --metric <requests|tokens|spend|imageCount|videoCount> --date <YYYY-MM-DD> --format <table|json|csv> --out <file>
```

```
vercel ai-gateway leaderboard apps --format <table|json|csv> --out <file>
```

```
vercel ai-gateway leaderboard providers --format <table|json|csv> --out <file>
```

- why_it_matters: Inspect AI Gateway lab, app, or provider leaderboard data from the CLI.
- sources: <https://github.com/vercel/vercel/releases/tag/vercel%4058.1.0>, <https://github.com/vercel/vercel/blob/vercel@58.1.0/packages/cli/src/commands/ai-gateway/command.ts>, <https://github.com/vercel/vercel/blob/main/packages/cli/src/commands/ai-gateway/command.ts>
- gotchas: "Version: 58.1.0"; "--modality <MODALITY>: Labs filter: `all`, `text`, `image`, or `video`; default `all`."; "--metric <METRIC>: Labs metric: `requests`, `tokens`, `spend`, `imageCount`, or `videoCount`; default `requests`."; "--date <YYYY-MM-DD>: Labs day to show; default is the most recent day."; "--format <FORMAT>: Output format: `table`, `json`, or `csv`; defaults to table in a terminal and JSON otherwise."; "--out <FILE>: Write the payload to a file instead of stdout; file output defaults to JSON, or use `--format csv` for CSV."

### vercel ai-gateway leaderboard models exposes model usage rankings (2026-07-28)
- slug: vercel-ai-gateway-leaderboard-models-exposes-model-usage-rankings-8c562bae7377
- score: 0.99

How to use it:

When reviewing AI Gateway model usage, run the leaderboard command to view rankings; filter by modality, metric, or date, and choose an output format or file. [Vercel CLI source](https://github.com/vercel/vercel/blob/vercel%4058.1.0/packages/cli/src/commands/ai-gateway/command.ts)

Examples:

```
vercel ai-gateway leaderboard models
```

```
vercel ai-gateway leaderboard models --modality text
```

```
vercel ai-gateway leaderboard models --format csv --out models.csv
```

- why_it_matters: Inspect AI Gateway model usage data from the CLI when reviewing a repository's gateway usage.
- sources: <https://github.com/vercel/vercel/releases/tag/vercel%4058.1.0>, <https://github.com/vercel/vercel/blob/vercel%4058.1.0/packages/cli/src/commands/ai-gateway/command.ts>
- gotchas: "Version: 58.1.0"; "--modality <MODALITY>: Filter: all, text, image, or video; default all."; "--metric <METRIC>: Table metric: requests, tokens, spend, imageCount, or videoCount; default requests."; "--date <YYYY-MM-DD>: Day shown in the table; default most recent."; "--format <FORMAT>: Output format: table, json, or csv. Defaults to table in a terminal and json otherwise."; "--out <FILE>: Write payload to a file instead of stdout; defaults to json, or use --format csv for CSV."; "Prerequisite: Use Vercel CLI 58.1.0 or later; the command is present in the 58.1.0 source and introduced in that release."; "Interactive terminals display a pretty table; piped output defaults to JSON."

### vercel vcr adds local-engine container image build and push (2026-07-28)
- slug: vercel-vcr-adds-local-engine-container-image-build-and-push-7b955bf5ea51
- score: 0.95

How to use it:

For a linked Vercel project, build and push its container image with `vercel vcr build <engine> <context> <repository>:<tag> --push`; the release note says repository and tag default to the project name and `latest`, and engine arguments after `--` are forwarded. `vercel vcr push` pushes an existing image; combined build and push uses zstd by default as described in the release note.

Examples:

```
vercel vcr build docker . <repository>:<tag> --push
```

```
vercel vcr build docker . <repository>:<tag> --push -- <engine-arguments>
```

```
vercel vcr push <engine> <image-reference>
```

- why_it_matters: Build and push a container image to the Vercel Container Registry for a repository project.
- before: Build and tag with the engine, then authenticate to `vcr.vercel.com` and push the full registry reference with the engine, for example `docker build -t vcr.vercel.com/<team>/<project>/<repository>:<tag> .` followed by `docker push vcr.vercel.com/<team>/<project>/<repository>:<tag>`.
- sources: <https://github.com/vercel/vercel/releases/tag/vercel%4058.1.0>, <https://github.com/vercel/vercel-plugin/blob/main/skills/vercel-sandbox/SKILL.md>, <https://vercel.com/kb/guide/how-to-use-vercel-container-registry>
- gotchas: "Version: 58.1.0"; "engine (required): Local container engine: Docker, Podman, or Buildah. Documented Vercel example uses `docker`."; "context (required): Build context; documented Vercel example uses `.`."; "repository:tag: Image repository and tag; release note says defaults are project name and `latest`."; "--push: Build and push in one step."; "-- <engine-arguments>: Arguments after `--` are forwarded to the local engine."; "Prerequisite: Install Vercel CLI and authenticate with `vercel login`; link the local directory to the target Vercel project with `vercel link`."; "Prerequisite: Have access to the target project and the chosen local container engine installed and running. The official Vercel example uses Docker."; "The default repository is the project name and the default tag is `latest`."; "`vcr build --push` uses zstd by default with Docker via Buildx and Podman/Buildah on push."; "Standalone `vcr push` compresses with zstd on Podman and Buildah."

### Vercel Node.js Routing Middleware supports proxy entrypoints and matchers (2026-07-27)
- slug: vercel-node-js-routing-middleware-supports-proxy-entrypoints-and-matchers-73f2d6589527
- score: 0.93

How to use it:

When configuring Node.js Routing Middleware with a project entrypoint, set `proxy.entrypoint` in `vercel.json`; if path filtering is needed, set `proxy.matcher` in `vercel.json` or matcher config in the entrypoint, but not both.

Examples:

```
{"$schema":"https://openapi.vercel.sh/vercel.json","proxy":{"entrypoint":"<path-to-entrypoint>","matcher":["<path-pattern>"]}}
```

```
export const config = { matcher: "<path-pattern>" };
```

- why_it_matters: Configure Node.js Routing Middleware for a project entrypoint and optional path matching.
- sources: <https://github.com/vercel/vercel/releases/tag/vercel%4058.0.0>, <https://vercel.com/docs/routing-middleware/api>
- gotchas: "Version: 58.0.0"; "proxy.entrypoint (required): Path to the Routing Middleware entrypoint; set it in `vercel.json` to use a different filename or directory."; "proxy.matcher: A string or array of strings defining the paths on which the Routing Middleware runs; configure here or in the entrypoint, not both."; "config.matcher: A string or array of strings defining the paths on which the Routing Middleware runs when configured in the entrypoint source."; "The matcher may be configured in the entrypoint source or `vercel.json`, but not both."

### vercel flags evaluations displays feature-flag evaluation charts and bucket data (2026-07-20)
- slug: vercel-flags-evaluations-displays-feature-flag-evaluation-charts-and-bucket-data-7ac9eefd03ae
- score: 0.96

How to use it:

When reviewing a flag’s evaluation distribution, run `vercel flags evaluations <flag>` to view per-variant metrics and charts. Use `--since` and `--granularity` to select the range and bucket size, or `--json` for bucket data and truncation metadata.

Examples:

```
vercel flags evaluations <flag>
```

```
vercel flags evaluations <flag> --since 24h --granularity 1h
```

```
vercel flags evaluations <flag> --since 24h --json
```

- why_it_matters: Inspect a feature flag’s evaluation distribution while debugging or reviewing its behavior.
- sources: <https://github.com/vercel/vercel/releases/tag/vercel%4056.4.0>, <https://vercel.com/docs/cli/flags>, <https://github.com/vercel/flags/blob/main/skills/flags-sdk/references/providers.md>
- gotchas: "Version: 56.4.0"; "<flag> (required): Feature flag slug or ID."; "--since <TIME>: Start time as a relative duration or ISO 8601 timestamp; defaults to `1h`."; "--granularity <SIZE>: Time bucket size: `1m`, `5m`, `15m`, `1h`, `4h`, or `1d`; defaults to automatic."; "--json: Output exact bucket data as JSON instead of a human-readable summary."; "Prerequisite: Use an installed, authenticated Vercel CLI and target a project; the command defaults to the linked project. CLI installation: `pnpm i -g vercel`."; "Prerequisite: The command was added in Vercel CLI 56.4.0."

### vercel flags versions inspects feature flag history and diffs (2026-07-15)
- slug: vercel-flags-versions-inspects-feature-flag-history-and-diffs-6918b5a5b391
- score: 0.97

How to use it:

When you need a feature flag’s history or a revision’s changes, use the `vercel flags versions` commands shown in the release note. The official CLI page does not document these commands or their parameters.

- why_it_matters: Inspect a feature flag's version history or review changes for a specific revision.
- sources: <https://github.com/vercel/vercel/releases/tag/vercel%4056.2.1>
- gotchas: "Version: 56.2.1"

### vercel env add accepts multiple target environments (2026-07-14)
- slug: vercel-env-add-accepts-multiple-target-environments-c32d3784de8d
- score: 0.98

How to use it:

When creating one Environment Variable entry for multiple targets, pass a comma-separated target list to `vercel env add`. Supply the value through stdin or `--value`; a Git branch is allowed only when Preview is the sole target.

Examples:

```
printf '%s' '<value>' | vercel env add API_URL production,preview,development
```

- why_it_matters: Create one Environment Variable entry for multiple deployment targets.
- before: Run `vercel env add` separately for each target environment to create entries for multiple environments.
- sources: <https://github.com/vercel/vercel/releases/tag/vercel%4056.2.0>, <https://github.com/vercel/vercel/blob/main/packages/cli/.agents/skills/cli-ux/references/command-contracts.md>, <https://github.com/vercel/vercel/blob/main/skills/vercel-cli/references/environment-variables.md>, <https://vercel.com/docs/environment-variables/manage-across-environments>
- gotchas: "Version: 56.2.0"; "name (positional) (required): Environment Variable name, such as `API_URL`."; "environment (positional) (required): One target or a comma-separated target list; documented targets include standard targets and custom Environment slugs/ids. Unknown tokens fail locally; slugs normalize to ids."; "value (stdin or `--value`) (required): Variable value; provide through stdin or `--value`."; "--git-branch <name>: Set a branch-specific Preview variable; branch is allowed only when Preview is the sole target."; "Prerequisite: Run in a directory linked to a Vercel project; the documented flow requires an existing project link."; "Prerequisite: Provide the variable value via stdin or `--value` in non-interactive use."; "A Git branch is rejected unless Preview is the only target."; "Docs conflict: The current official CLI env reference documents a single `[environment]` positional and separate commands for multiple targets; it does not document the comma-separated form. The official CLI UX contract on the repository's current main branch does document that form, but the page does not establish that it is at version 56.2.0."

### vercel ai-gateway coding-agents setup configures agent clients (2026-07-13)
- slug: vercel-ai-gateway-coding-agents-setup-configures-agent-clients-280361864094
- score: 0.91

How to use it:

When connecting Claude Code, Codex, OpenCode, or Pi with an existing AI Gateway key, run the setup command with `--key <key>` and select the client with `--agent <name>` if needed. The command configures the selected client without pinning a default model, as stated in the release note.

Examples:

```
vercel ai-gateway coding-agents setup --key <AI_GATEWAY_API_KEY> --agent <claude-code|codex|opencode|pi>
```

- why_it_matters: Connect Claude Code, Codex, OpenCode, or Pi to the AI Gateway from an existing API key.
- sources: <https://github.com/vercel/vercel/releases/tag/vercel%4056.0.0>, <https://github.com/vercel/vercel/blob/vercel%4056.0.0/packages/cli/src/commands/ai-gateway/command.ts>
- gotchas: "Version: 56.0.0"; "--key <KEY>: Use an existing AI Gateway API key instead of creating one."; "--agent <NAME>: Select an agent to configure; repeatable. Supported values: claude-code, codex, opencode, pi."; "Claude Code configuration honors `CLAUDE_CONFIG_DIR`; edits existing config in place, preserves keys and formatting, skips unparseable configs, masks the key in output, is idempotent, and emits a structured JSON result in non-interactive mode."; "Codex writes a `vercel` model provider with an OpenAI-compatible base URL and `responses` wire API, honors `CODEX_HOME` and fish/`ZDOTDIR`, and edits existing assignments in place while preserving comments and formatting."; "OpenCode honors `XDG_CONFIG_HOME`; with macOS Keychain in use, the key stays out of config and is resolved at runtime from `AI_GATEWAY_API_KEY` exported by the shell rc."; "Pi creates `~/.pi/agent/auth.json` with mode `0600` and honors `PI_CODING_AGENT_DIR`."

### vercel flags rules CLI manages conditional feature flag rules (2026-07-09)
- slug: vercel-flags-rules-cli-manages-conditional-feature-flag-rules-aa9549612432
- score: 0.98

How to use it:

When managing conditional rules for a feature in an environment, use `vercel flags rules` to list, add, update, move, or remove rules. Pass the environment and the rule’s conditions, variant or weights, and position as needed.

Examples:

```
vercel flags rules ls <feature> --environment production --json
```

```
vercel flags rules add <feature> --environment production --condition '<entity>.<attribute>:<operator>:<value>' --variant <variant>
```

```
vercel flags rules add <feature> --environment production --condition '<entity>.<attribute>:<operator>:<value>' --by <entity>.<attribute> --weight <variant>=<weight> --weight <variant>=<weight> --position <position>
```

- why_it_matters: Add or adjust conditional feature flag rules for an application's production environment.
- sources: <https://github.com/vercel/vercel/releases/tag/vercel%4055.0.0>, <https://vercel.com/changelog/manage-vercel-flags-targeting-rules-from-the-cli>, <https://vercel.com/docs/cli>, <https://vercel.com/docs/flags/vercel-flags/dashboard/feature-flag>
- gotchas: "Version: 55.0.0"; "<feature> (required): Feature flag slug argument; examples use `my-feature`."; "<rule_id> (required): Rule identifier argument used by update, move, and remove; example: `rule_123`."; "--environment (required): Target environment; release examples use `production`."; "--json: For `ls`, request JSON output containing the full rule set."; "--condition: Condition token in `<entity>.<attribute>:<operator>:<value>` form; repeat to add multiple conditions. Each rule needs at least one filter."; "--variant: Variant ID to serve for a fixed rule outcome."; "--by: Entity attribute used for weighted bucketing, e.g. `user.userId`."; "--weight: Variant weight in `<variant>=<weight>` form; release example repeats this option for variants `off` and `on`."; "--position: Rule position for add or move; examples use `1`."; "Prerequisite: Authenticate to Vercel before accessing resources or performing administrative tasks; use `vercel login` in a terminal or a token in CI."; "Prerequisite: Targeting rules require entities to be configured first; referenced variant IDs must exist in the flag’s variants."; "Prerequisite: The CLI changelog says to update to the latest Vercel CLI version to use rule management."

### vercel integration resource inspect fetches live provider status (2026-07-09)
- slug: vercel-integration-resource-inspect-fetches-live-provider-status-56db45ad5c62
- score: 0.93

How to use it:

When debugging a marketplace resource, run `vercel integration resource inspect <resource>` to fetch its details and live provider status; add `--format=json` for JSON output.

Examples:

```
vercel integration resource inspect <resource>
```

```
vercel integration resource inspect <resource> --format=json
```

- why_it_matters: Check the current provider status and details of a marketplace resource while debugging an integration.
- before: The release note says `vercel integration list` shows cached status; use it to list resources, then inspect to fetch fresh provider status.
- sources: <https://github.com/vercel/vercel/releases/tag/vercel%4055.0.0>
- gotchas: "Version: 55.0.0"; "<resource> (required): Marketplace resource to inspect."; "status: Alias for the `inspect` subcommand."; "--format=json: Request JSON output."; "The `vercel integration list` status is cached; `inspect` fetches fresh status from the provider."

### vercel link and link-establishing commands resolve teams before projects (2026-07-09)
- slug: vercel-link-and-link-establishing-commands-resolve-teams-before-projects-dfae1821265c
- score: 0.94

How to use it:

For non-interactive linking, provide a team signal with `--scope` or `--team`, `vercel.json` `scope`, or `VERCEL_ORG_ID`; otherwise, with multiple available teams, handle `action_required: missing_scope`. Resolve the team first, then link an existing project or create one within that team; use an explicit project name or ID to skip suggestions.

Examples:

```
vercel link --scope <team-slug> --project <project-name-or-id>
```

```
vercel link --scope <team-slug> --yes
```

```
VERCEL_ORG_ID=<team-id> VERCEL_PROJECT_ID=<project-id> vercel link
```

- why_it_matters: Link a repository to a Vercel project or create a project from a non-interactive coding workflow.
- before: Without a TTY, `vercel link` could fall back to the globally selected team from `vc switch` or the login default; `--yes` could silently use that team. Project discovery could sweep across teams and prompt for SSO fallback.
- sources: <https://github.com/vercel/vercel/releases/tag/vercel%4055.0.0>, <https://vercel.com/docs/cli/link>, <https://github.com/vercel/vercel/releases/tag/vercel@55.0.0>, <https://vercel.com/docs/cli/global-options>
- gotchas: "Version: 55.0.0"; "--scope <team-slug-or-id>: Select the team scope. For non-interactive linking, provide this or another team signal."; "--team <team-slug-or-id>: Team signal accepted by v55.0.0; the current global-options docs describe `--team` as specifying a team slug or ID."; "vercel.json `scope`: Team signal for link resolution."; "VERCEL_ORG_ID: Team signal; together with `VERCEL_PROJECT_ID`, identifies the explicit owner-project pair for `vercel link`."; "VERCEL_PROJECT_ID: Project ID; paired with `VERCEL_ORG_ID`, resolves the project-owner pair for `vercel link`."; "--project <name-or-id>: Select a project directly within the resolved team; skips project suggestions."; "--name <project-name>: Explicit project name that resolves directly within the team and skips suggestions."; "vercel.json `name`: Explicit project name that resolves directly within the team and skips suggestions."; "--yes: Answer confirmation prompts; does not choose a team. With the `VERCEL_ORG_ID` and `VERCEL_PROJECT_ID` pair, it is unnecessary."; "Prerequisite: Authenticate to Vercel and have access to the target team and project."; "Prerequisite: Without a TTY or in non-interactive mode, provide a team signal or have exactly one available team; otherwise linking fails with `action_required: missing_scope` before project discovery or project creation."; "Non-interactive team resolution uses an explicit signal or a single available team; otherwise the command fails with `action_required: missing_scope` before project discovery, project creation, or deletion of `.vercel/project.json`."; "Project discovery queries only the resolved team; the cross-team project sweep and SSO fallback prompt are removed."; "An explicit team signal skips the team prompt; an explicit project name skips suggestions."; "The `VERCEL_ORG_ID` and `VERCEL_PROJECT_ID` pair behavior applies to `vercel link`; an unresolvable pair errors instead of falling back to prompts."; "A single Git-linked root-directory match still links automatically."; "Docs conflict: The `vercel link` documentation says `--yes` answers setup questions using the default scope. That conflicts with v55.0.0: `--yes` does not select a team. https://vercel.com/docs/cli/link"

### vercel agent-runs CLI observability commands (2026-07-03)
- slug: vercel-agent-runs-cli-observability-commands-b4d4023927be
- score: 0.98

How to use it:

When debugging or reviewing Agent Runs, use the Vercel CLI to list runs for a project, inspect a run, view its trace, or list active projects. Add `--json` to any subcommand for raw JSON output.

Examples:

```
vercel agent-runs list --project <project-name-or-id> --environment <production|preview> --since <time> --until <time> --json
```

```
vercel agent-runs inspect <runId> --project <project-name-or-id> --environment <production|preview> --json
```

```
vercel agent-runs trace <runId> --project <project-name-or-id> --environment <production|preview> --json
```

- why_it_matters: Inspect Agent Runs activity for a project or trace a specific run while debugging or reviewing a coding-agent workflow.
- sources: <https://github.com/vercel/vercel/releases/tag/vercel%4054.20.0>, <https://github.com/vercel/vercel/blob/vercel@54.20.0/packages/cli/src/commands/agent-runs/command.ts>, <https://vercel.com/docs/cli>
- gotchas: "Version: 54.20.0"; "<runId> (required): Agent Run ID to inspect or trace."; "--project <NAME|ID>: Project name or ID; overrides the linked project."; "--environment <production|preview>: Environment to query; defaults to production."; "--since <TIME>: Include runs after ISO 8601 time or relative time such as `1h`, `30m`, or `7d`."; "--until <TIME>: Include runs before this time; requires `--since`, defaults to now."; "--json: Print the raw API response as JSON to stdout."; "Prerequisite: Install Vercel CLI with `pnpm i -g vercel`."; "Prerequisite: Log in before accessing resources; CI can authenticate with a token using `--token`."; "Prerequisite: The CLI supports selecting a team with `--scope`; run from a linked project directory or specify a project with `--project`."; "`list` lists Agent Runs for a project."; "`projects` lists projects in the team with Agent Runs activity."

### vercel vcr manages Container Registry repositories and images (2026-07-02)
- slug: vercel-vcr-manages-container-registry-repositories-and-images-02fa5e484401
- score: 0.92

How to use it:

When managing Vercel Container Registry repositories or images, use the `vercel vcr` command group for the linked project, or specify `--project`.

Examples:

```
vercel vcr ls --project <project-name-or-id> --format json
```

```
vercel vcr add <repository-name>
```

```
vercel vcr image ls <repository-name> --untagged --format json
```

- why_it_matters: Manage Vercel Container Registry repositories and images from the Vercel CLI.
- sources: <https://github.com/vercel/vercel/releases/tag/vercel%4054.19.0>, <https://vercel.com/docs/container-registry/cli-reference>, <https://vercel.com/docs/container-registry>
- gotchas: "Version: 54.19.0"; "<project-name-or-id> / --project: Selects the project; defaults to the linked project."; "<repository-name> (required): Repository name to create or list images from."; "--format json: Outputs results as JSON."; "--untagged: Lists only images with no tags."; "Prerequisite: Install the Vercel CLI and log in to a Vercel account."; "Prerequisite: Commands target one Vercel project. Link the working directory with `vercel link` or pass `--project`; the account must have access to the project."

### vercel deploy --dry inspects framework preset and deployment files (2026-06-24)
- slug: vercel-deploy-dry-inspects-framework-preset-and-deployment-files-a780ce248d47
- score: 0.96

How to use it:

When you need to inspect a repository’s detected framework preset and deployment files without creating a deployment, run `vercel deploy --dry`; for complete JSON output, add `--format=json` or use non-TTY output. [Vercel changelog](https://vercel.com/changelog/dry-run-deployments-with-vercel-cli)

Examples:

```
vercel deploy --dry
```

```
vercel deploy --dry --format=json
```

- why_it_matters: Inspect which framework preset and local deployment files a repository deploy would use without creating a deployment.
- sources: <https://github.com/vercel/vercel/releases/tag/vercel%4054.17.0>, <https://vercel.com/changelog/dry-run-deployments-with-vercel-cli>
- gotchas: "Version: vercel@54.17.0"; "--dry (required): Run a deployment dry run to preview the framework preset and files included."; "--format=json: Return the complete file manifest as JSON; non-TTY output uses JSON automatically."; "Prerequisite: Run from a linked project; the changelog specifies Vercel CLI v54.17.2 or later."; "The dry run does not upload files or create a deployment."; "Complete JSON output is specified for non-TTY consumers."; "Docs conflict: The card version is vercel@54.17.0, but the official changelog says v54.17.2 or later is required."

### vercel domains verify reports DNS configuration and remediation (2026-06-23)
- slug: vercel-domains-verify-reports-dns-configuration-and-remediation-18dfb7fcc482
- score: 0.95

How to use it:

When a domain needs DNS or project verification, run `vercel domains verify <domain>` and apply its listed fixes; use JSON output to read the diagnosis and suggested next commands in scripts.

Examples:

```
vercel domains verify <domain> --project <project>
```

```
vercel domains verify <domain> --format json
```

```
vercel domains verify <domain> --strict
```

- why_it_matters: Check and remediate a domain's DNS configuration and project verification state from a repository workflow.
- sources: <https://github.com/vercel/vercel/releases/tag/vercel%4054.15.0>, <https://vercel.com/changelog/vercel-cli-now-supports-verifying-dns-configuration>, <https://vercel.com/docs/cli/global-options>, <https://vercel.com/docs/cli>
- gotchas: "Version: 54.15.0"; "<domain> (required): Domain to check; the docs use `example.com`."; "--project <project>: Select a project by name or ID."; "--strict: Enforce exact matching; detailed matching behavior is not specified on the cited page."; "--format json: Return the full diagnosis in JSON, including status, reason, recommended records, conflicts, and suggested next commands."; "Prerequisite: Install Vercel CLI with `pnpm i -g vercel`."; "Prerequisite: The changelog says to upgrade to CLI 54.15.1 to use the command."; "Automatic configuration and its Domain Connect URL are available only to eligible domains."; "Manual DNS guidance is provided as a fallback."; "Non-interactive runs emit structured status, simultaneous issue details, automatic-configuration metadata, and shell-safe, context-preserving next commands."; "The command exits non-zero when action is required."; "Docs conflict: The card identifies version 54.15.0, while Vercel’s changelog says to upgrade to 54.15.1 to get started. The cited docs do not resolve this version difference."

### vercel integration discover filters by category and lists categories (2026-06-12)
- slug: vercel-integration-discover-filters-by-category-and-lists-categories-950fd45dc109
- score: 0.96

How to use it:

To discover marketplace integrations for one category, list valid slugs with `vercel integration categories`, then run `vercel integration discover --category <slug>`. Use `--json` with `categories` for machine-readable output.

Examples:

```
vercel integration categories
```

```
vercel integration categories --json
```

```
vercel integration discover --category <slug>
```

- why_it_matters: Discover marketplace integrations for a specific category in the repository’s integration workflow.
- sources: <https://github.com/vercel/vercel/releases/tag/vercel%4054.13.0>
- gotchas: "Version: 54.13.0"; "--category <slug> / -c <slug>: Filter marketplace integrations to one category; filtering happens server-side."; "--json (categories subcommand): Output the category list as JSON for scripts or agents."; "Category filtering scopes marketplace integrations to a single category."; "Filtering happens server-side."; "Docs conflict: The current Vercel CLI reference was last updated February 24, 2026, before version 54.13.0; it documents `discover` but omits the new category subcommand and filter: https://vercel.com/docs/cli/integration"

### vercel domains search supports Domain Discovery (2026-06-08)
- slug: vercel-domains-search-supports-domain-discovery-c310a6272e6f
- score: 0.95

How to use it:

When searching candidate names for availability and registrar pricing, run `vercel domains search <query>`; add filters, ordering, a candidate limit, or JSON output as needed.

Examples:

```
vercel domains search <query> --available --tld .com --limit 200
```

```
vercel domains search <query> --tld com --tld ai --order alphabetical --format json
```

- why_it_matters: Search candidate domain names for availability and registrar pricing while working on a repository deployment.
- sources: <https://github.com/vercel/vercel/releases/tag/vercel%4054.10.0>, <https://github.com/vercel/vercel/blob/main/skills/vercel-cli/references/domains-and-dns.md>, <https://vercel.com/changelog/domain-search-is-now-available-through-the-vercel-cli>, <https://vercel.com/changelog/search-domains-without-authentication>
- gotchas: "Version: 54.10.0"; "<query> (required): Keyword or domain fragment to search."; "--available: Filter the candidate window to available domains; results can be fewer than the limit."; "--tld <tld>: Filter by TLD; repeat the flag to select multiple TLDs. The docs show both `.com` and `com` forms."; "--order <order>: Sort results; `alphabetical` is a documented value."; "--limit <number>: Maximum candidates checked per page; documented example uses 200."; "--format json: Return machine-readable JSON output."; "--next <token>: Continue to the next page using the continuation command/token printed by the CLI."; "Prerequisite: Vercel CLI version 54.10.1 or later is specified by Vercel's launch changelog."; "Prerequisite: Vercel says domain search works without signing in or providing an access token."; "Candidate windows are up to 200 domains."; "Docs conflict: Card states feature is in version 54.10.0; Vercel's launch changelog says upgrade to version 54.10.1 to use it."

### vercel connect list adds filters (2026-05-26)
- slug: vercel-connect-list-adds-filters-c62632ba17f9
- score: 0.94

How to use it:

When you need to list Vercel Connect connectors matching a type, service, or name/UID search, run `vercel connect list` with one or more filters. The filters can be combined; `--type` and `--service` can each be repeated.

Examples:

```
vercel connect list --type <TYPE> --service <NAME> --search <TEXT>
```

- why_it_matters: List Vercel connections matching a type, service, or search term.
- sources: <https://github.com/vercel/vercel/releases/tag/vercel%4054.5.0>, <https://vercel.com/docs/cli/connect>
- gotchas: "Version: 54.5.0"; "--type <TYPE>: Filter by connector type (`slack`, `github`, `oauth`, or `custom`); repeatable."; "--service <NAME>: Filter by service name, such as `slack` or `mcp.linear.app`; repeatable."; "--search <TEXT>: Search connectors by name or UID."; "Prerequisite: Authenticate to the Vercel CLI. The list command shows connectors for the current project by default; use `--all-projects` to list every connector in the team."

### Vercel domains adds availability checks and bulk price lookups (2026-05-26)
- slug: vercel-domains-adds-availability-checks-and-bulk-price-lookups-128504cdf83c
- score: 0.92

How to use it:

When checking registrar availability, run `vercel domains check` with one or more domain names. For registrar quotes on multiple domains, run `vercel domains price` with those names; both commands are lookups and do not change project domain configuration.

Examples:

```
vercel domains check <domain>
```

```
vercel domains check <domain1> <domain2> <domain3> --format=json
```

```
vercel domains price <domain1> <domain2> <domain3> --format=json
```

- why_it_matters: Check registrar availability or look up prices for multiple domains while maintaining a project's domain configuration.
- sources: <https://github.com/vercel/vercel/releases/tag/vercel%4054.5.0>, <https://github.com/vercel/vercel/blob/main/skills/vercel-cli/references/domains-and-dns.md>
- gotchas: "Version: 54.5.0"; "domain name(s) (required): Names to check or price. The docs show single and multiple names; they state each command supports up to 50 domains per request."; "--format=json: Shown in the examples to request JSON output; the docs do not list other allowed values here."; "Bulk price lookups apply to multiple domains."

### vercel traces get opens traces in the dashboard (2026-05-26)
- slug: vercel-traces-get-opens-traces-in-the-dashboard-5641b49c7c83
- score: 0.94

How to use it:

When investigating a Vercel deployment, run `vercel traces get <trace-id> --open` to open the trace in the Vercel Dashboard; add `--view timeline`, `--view tree`, or `--view gantt` to choose its view.

Examples:

```
vercel traces get <trace-id> --open --view <timeline|tree|gantt>
```

- why_it_matters: Open a trace in a selected dashboard view while investigating a Vercel deployment.
- before: Run `vercel traces get` to print the markdown summary.
- sources: <https://github.com/vercel/vercel/releases/tag/vercel%4054.5.0>, <https://vercel.com/changelog/trace-any-vercel-request-from-the-cli>
- gotchas: "Version: 54.5.0"; "<trace-id> (required): Request ID for the trace to fetch."; "--open: Open the trace in the Vercel Dashboard instead of printing its markdown summary."; "--view: Select the Dashboard view; allowed values are `timeline`, `tree`, or `gantt`. Valid only with `--open`. The choices are mutually exclusive because the flag takes one value."; "Prerequisite: Available on all plans. Vercel says to update the CLI to the latest version to get started."; "`--view` is only valid with `--open`."; "The `--view` choices are `timeline`, `tree`, or `gantt`."

### vercel build, deploy, pull, and dev accept --project (2026-05-21)
- slug: vercel-build-deploy-pull-and-dev-accept-project-173eef296c56
- score: 0.99

How to use it:

When targeting a Vercel project by name or ID, pass `--project <NAME_OR_ID>` to `build`, `deploy`, `pull`, or `dev` to resolve it without project selection. The Vercel 54.3.0 release note also says this flag is accepted by `vercel deploy init`, but excluded from `vercel deploy continue`.

Examples:

```
vercel build --project <NAME_OR_ID>
```

```
vercel deploy --project <NAME_OR_ID>
```

```
vercel dev --project <NAME_OR_ID>
```

- why_it_matters: Run a Vercel CLI command for a specific project in a monorepo or unlinked directory without interactive project selection.
- before: Use interactive setup or the project picker to select a project; in unlinked directories, `vercel deploy` falls back to interactive setup.
- sources: <https://github.com/vercel/vercel/releases/tag/vercel%4054.3.0>, <https://vercel.com/docs/cli/global-options>
- gotchas: "Version: 54.3.0"; "--project <NAME_OR_ID>: Selects a Vercel project by name or ID; takes precedence over `VERCEL_PROJECT_ID` and `.vercel/project.json`."; "`--project` is excluded on `vercel deploy continue` because `--id` already identifies the deployment."; "API-based resolution requires the explicit `--project` flag."

### vercel traces get renders a request trace summary (2026-05-21)
- slug: vercel-traces-get-renders-a-request-trace-summary-0b37d6e5d35d
- score: 0.96

How to use it:

For a request with a known request ID, run `vercel traces get <request-id>` to fetch its trace summary. The linked project and team are resolved automatically; use `--project` or `--scope` to override them.

Examples:

```
vercel traces get <request-id>
```

```
vercel traces get <request-id> --project <project-name-or-id>
```

```
vercel traces get <request-id> --scope <team-slug>
```

- why_it_matters: Inspect the trace summary for a request associated with a linked Vercel project.
- sources: <https://github.com/vercel/vercel/releases/tag/vercel%4054.3.0>, <https://vercel.com/changelog/trace-any-vercel-request-from-the-cli>, <https://vercel.com/docs/cli/global-options>
- gotchas: "Version: 54.3.0"; "<request-id> (required): Request ID for the trace to fetch."; "--project <project-name-or-id>: Select a Vercel project by name or ID; project selection precedence is `--project`, `VERCEL_PROJECT_ID`, then linked project."; "--scope <team-slug>: Run the command in a scope that is not currently active."; "Prerequisite: Use Vercel CLI 54.3.0 or later; the release note introduces this command in 54.3.0."; "Prerequisite: The command is available on all plans."

### vercel flags split configures weighted flag variants (2026-05-19)
- slug: vercel-flags-split-configures-weighted-flag-variants-6ad495472200
- score: 0.98

How to use it:

When configuring weighted variants for a Vercel Flag in an environment, run `vercel flags split <flag>` with the environment, bucketing attribute, and a weight for every variant. For String, Number, or JSON flags, also set the fallback variant; use `--message` to record a revision message.

Examples:

```
vercel flags split <flag> --environment <environment> --by <entity.attribute> --default-variant <variant> --weight <variant>=<weight> --weight <variant>=<weight> --message "<revision message>"
```

```
vercel flags split <flag> --environment <environment> --by <entity.attribute> --weight <variant>=<weight> --weight <variant>=<weight>
```

- why_it_matters: Configure weighted variants for a Vercel Flag in an environment during development or testing.
- sources: <https://github.com/vercel/vercel/releases/tag/vercel%4054.2.0>, <https://vercel.com/docs/cli/flags>
- gotchas: "Version: 54.2.0"; "<flag> (required): Flag slug to configure."; "--environment, -e (required): Selects the environment for the split."; "--by (required): Selects the entity attribute used for stable bucketing, in `<entity.attribute>` form. The entity and attribute must already be defined; timestamp attributes cannot be used."; "--weight, -w (required): Use once for every variant, in `VARIANT=WEIGHT` form. Weights are normalized as ratios; `0` excludes a variant from traffic, and at least one weight must be greater than zero."; "--default-variant: For String, Number, and JSON flags, chooses the fallback served when the bucketing attribute is unavailable. Boolean splits default to `false`. Accepts a variant ID or value."; "--message: Sets an optional revision message."; "Prerequisite: Define the entity and bucketing attribute in the Vercel Flags dashboard or with `vercel flags entities` before running the command."; "Prerequisite: In non-interactive environments, pass the required split options explicitly."; "The interactive flow prompts for the environment, bucketing attribute, weights, fallback variant, and revision message."; "A variant with weight `0` is excluded from receiving traffic."

### vercel logs requires --follow to stream deployment logs (2026-05-13)
- slug: vercel-logs-requires-follow-to-stream-deployment-logs-aa42cfe23408
- score: 0.92

How to use it:

For historical logs from a specific deployment, run `vercel logs <deployment-url-or-id>` or use `--deployment`; both select that deployment without streaming. Add `--follow` only to stream live runtime logs.

Examples:

```
vercel logs <deployment-url-or-id>
```

```
vercel logs --deployment <deployment-url-or-id>
```

```
vercel logs <deployment-url-or-id> --follow
```

- why_it_matters: Inspect historical logs for a specific deployment without streaming them.
- before: When passing a deployment argument or `--deployment`, `vercel logs` streamed deployment logs.
- sources: <https://github.com/vercel/vercel/releases/tag/vercel%4054.0.0>, <https://github.com/vercel/vercel/blob/vercel%4054.0.0/packages/cli/src/commands/logs/command.ts>
- gotchas: "Version: 54.0.0"; "<deployment-url-or-id>: Positional deployment URL or ID; the alternative to `--deployment`."; "--deployment <deployment-url-or-id>: Filter logs to a deployment ID or URL; alternative to the positional argument."; "--follow: Stream live runtime logs for a deployment."

### vercel connex list defaults to current-project clients (2026-05-09)
- slug: vercel-connex-list-defaults-to-current-project-clients-96c989a5e549
- score: 0.93

How to use it:

When a Vercel project is linked, run `vercel connex list` to list its Connex clients. Use `--all-projects` to list team clients; without a linked project, the command uses that team-wide view and includes a `Projects` column that can end in `+ more`.

Examples:

```
vercel connex list
```

```
vercel connex list --all-projects
```

- why_it_matters: List the Connex clients associated with the linked Vercel project.
- before: `vercel connex list` listed every Connex client in the team by default.
- sources: <https://github.com/vercel/vercel/releases/tag/vercel%4053.3.0>, <https://github.com/vercel/vercel/blob/vercel%4053.3.0/packages/cli/src/commands/connex/list.ts>
- gotchas: "Version: 53.3.0"; "--all-projects: Force team-wide listing; `Projects` indicates linked project names and may show `+ more` when truncated."; "Prerequisite: For team-wide listing, select the team whose Connex clients to list."; "Prerequisite: Connex must be enabled for the team; otherwise the command reports that it is not enabled and advises contacting support."; "With no project linked, the command lists every Connex client in the team."; "The `Projects` column may truncate linked project names and show a `+ more` suffix."

### vercel implements scheduled jobs for JS/TS (2026-05-09)
- slug: vercel-implements-scheduled-jobs-for-js-ts-6ffe6859f8c1
- score: 0.96

How to use it:

For a JavaScript or TypeScript project using a static scheduled job, define a `type: "job"` service with `trigger: "schedule"` in `vercel.json` and point it to a file that exports a default function. Deploy it with Vercel; dynamic schedules and local `vc dev` support were not included in this change.

Examples:

```
{
  "services": {
    "cleanup": {
      "type": "job",
      "trigger": "schedule",
      "entrypoint": "jobs/cleanup.js",
      "schedule": "* * * * *"
    }
  }
}
```

- why_it_matters: Configure scheduled jobs for a JavaScript or TypeScript project on Vercel.
- sources: <https://github.com/vercel/vercel/releases/tag/vercel%4053.3.0>, <https://github.com/vercel/vercel/commit/b4ada64>, <https://github.com/vercel/vercel/releases/tag/vercel@53.3.0>, <https://vercel.com/docs/cron-jobs/manage-cron-jobs>
- gotchas: "Version: 53.3.0"; "services.<name>.type (required): Set to `\"job\"` for a scheduled job."; "services.<name>.trigger (required): Set to `\"schedule\"` to trigger the job on a schedule."; "services.<name>.entrypoint (required): Path to the job file; it must export a default function, invoked once per tick."; "services.<name>.schedule (required): Static cron expression for the job schedule."; "Prerequisite: Use Vercel CLI 53.3.0 or later for the feature introduced in this release."; "Prerequisite: The entrypoint file must export a default function."; "Prerequisite: Cron invocations can be secured by setting the project environment variable `CRON_SECRET`; Vercel sends it in the Authorization header. The change's dispatcher verifies it when set."; "Docs conflict: The release commit says dynamic schedules and `vc dev` support are future work; they are not available for this feature in the change. https://github.com/vercel/vercel/commit/b4ada64"

### vercel project token supports JSON output (2026-05-09)
- slug: vercel-project-token-supports-json-output-72ce0360a734
- score: 0.93

How to use it:

When a script or pipe needs a Vercel project token, run `vercel project token --format=json`; this writes the token output to stdout.

Examples:

```
vercel project token --format=json
```

- why_it_matters: Capture a Vercel project token in a script or pipe it to another command.
- sources: <https://github.com/vercel/vercel/releases/tag/vercel%4053.3.0>, <https://github.com/vercel/vercel/releases/tag/vercel@53.3.0>, <https://vercel.com/docs/cli>
- gotchas: "Version: 53.3.0"; "--format=json: Enables JSON output for `vercel project token`; the token output is written to stdout."; "Prerequisite: Vercel CLI 53.3.0 or later, where this flag was introduced."; "Prerequisite: Vercel CLI requires authentication before accessing resources or performing administrative tasks."

### vercel firewall manages project firewall configuration (2026-05-06)
- slug: vercel-firewall-manages-project-firewall-configuration-a4d164b8afa8
- score: 0.92

How to use it:

When managing a project firewall, use `vercel firewall` subcommands to view and change rules, IP blocks, system bypass, attack mode, or system mitigations. Rule and IP block changes are staged; review with `vercel firewall diff` and publish with `vercel firewall publish --yes`.

Examples:

```
vercel firewall rules add "<rule-name>" --condition '<condition-json>' --action <action> --yes
```

```
vercel firewall rules edit "<rule-name>" --action <action> --yes
vercel firewall rules enable "<rule-name>"
vercel firewall rules disable "<rule-name>"
vercel firewall rules remove "<rule-name>" --yes
vercel firewall rules reorder "<rule-name>" --position <1-based-position> --yes
```

```
vercel firewall diff
vercel firewall publish --yes
```

- why_it_matters: Manage a project's firewall configuration from the Vercel CLI.
- sources: <https://github.com/vercel/vercel/releases/tag/vercel%4053.2.0>, <https://vercel.com/docs/cli/firewall>
- gotchas: "Version: 53.2.0"; "`rules add` positional `<rule-name>` (required): Name of the new rule."; "`--condition <condition-json>` (required): Condition object with required `type` and `op`; `value` is required for most operators, and `key` is required for `header`, `cookie`, or `query`. `neg` is optional and defaults to false. Repeated conditions in a group are ANDed."; "`--or`: Starts a new OR condition group; condition groups are ORed."; "`--action <action>` (required): Rule action: `deny`, `challenge`, `log`, `bypass`, `rate_limit`, or `redirect`."; "`--yes`: Shown in documented examples for non-interactive mutation commands; detailed flag semantics not found."; "`rules edit` positional `<rule-name>` (required): Name of the rule to edit; `--condition` replaces all its conditions."; "`--enabled` / `--disabled`: Enable or disable a rule via `rules edit`."; "`rules reorder` positional `<rule-name>` (required): Rule to move in evaluation priority order."; "`--first` / `--last` / `--position <n>` (required): Selects the destination order; the docs show these as alternatives, but do not explicitly state mutual exclusivity. Position is 1-based."; "`ip-blocks block <IP-or-CIDR>` (required): Blocks an IP address or CIDR; optional `--hostname <host>` scopes it to a host and `--notes <text>` adds notes."; "`system-bypass add <IP-or-CIDR>` (required): Adds an IP/CIDR exempt from system-level mitigations; optional `--domain <domain>` scopes it and `--notes <text>` adds notes."; "`attack-mode enable --duration <duration>`: Enables attack mode; documented durations are `1h` (default), `6h`, and `24h`."; "`system-mitigations pause` / `resume` (required): Pauses or resumes automatic system mitigations; pause auto-resumes after 24 hours."; "Prerequisite: Link the project first with `vercel link`."; "Prerequisite: System bypass is limited to Pro and Enterprise plans."; "Prerequisite: Attack mode enable requires interactive confirmation; the CLI documentation says it is blocked for agents/scripts."

### vercel project ls filters projects by name (2026-05-06)
- slug: vercel-project-ls-filters-projects-by-name-8798545ed011
- score: 0.94

How to use it:

When you need projects whose names contain a substring, run `vercel project ls --filter <NAME>` (or `-f <NAME>`).

Examples:

```
vercel project ls --filter <NAME>
```

- why_it_matters: Find projects whose names contain a given substring in the Vercel CLI.
- sources: <https://github.com/vercel/vercel/releases/tag/vercel%4053.2.0>, <https://github.com/vercel/vercel/releases/tag/vercel@53.2.0>, <https://vercel.com/docs/cli>
- gotchas: "Version: 53.2.0"; "--filter <NAME> / -f <NAME>: Filters `vercel project ls` by project name using a substring match."; "Prerequisite: Authenticate with Vercel before accessing resources; for CI, use a token with `--token`."; "Filtering uses a substring match."

### vercel env add defaults Production and Preview variables to sensitive (2026-04-20)
- slug: vercel-env-add-defaults-production-and-preview-variables-to-sensitive-69148cd500e0
- score: 0.96

How to use it:

When adding a variable to Production or Preview, run `vercel env add` and it defaults to sensitive; pass `--no-sensitive` to request the prior encrypted behavior. For Development, add it separately and omit `--sensitive`.

Examples:

```
vercel env add <NAME> <production|preview>
```

```
vercel env add <NAME> <development>
```

```
vercel env add <NAME> <production|preview> --no-sensitive
```

- why_it_matters: Add an environment variable to a Vercel Production or Preview target, or to Development when that target is selected.
- before: Production and Preview variables defaulted to encrypted and remained readable later; `--sensitive` could request sensitive storage. For Development, `--sensitive` silently fell back to encrypted, and a mixed target selection could not share a record type.
- sources: <https://github.com/vercel/vercel/releases/tag/vercel%4051.8.0>, <https://vercel.com/docs/cli/env>
- gotchas: "Version: 51.8.0"; "<NAME> (required): Environment variable name; positional argument."; "<production|preview|development> (required): Target environment; positional argument. Add Development separately from Production or Preview."; "--sensitive: Marks a variable sensitive; release note says it errors when Development is selected."; "--no-sensitive: New flag to request encrypted behavior for Production or Preview; on a team enforcing sensitive variables it is a no-op with a warning."; "Prerequisite: Run from a Vercel project context; the documentation describes adding variables to a Vercel Project."; "Prerequisite: Enter the variable value when prompted, or provide it through stdin using the documented command form."; "Sensitive values are encrypted at rest and cannot be retrieved later via the dashboard or CLI; they are still resolved for builds, deployments, `vercel env pull`, and runtime."; "Development is always stored as encrypted; sensitive is not supported by the Vercel API for Development."; "A mixed Development and Production/Preview selection errors; add Development separately."; "Passing `--sensitive` with Development errors up-front."; "Passing `--sensitive` and `--no-sensitive` together errors."; "On teams with the Enforce Sensitive Environment Variables policy enabled, `--no-sensitive` is a no-op for Production/Preview because the server promotes the variable regardless."

### Python services dynamically specify cron schedules (2026-04-15)
- slug: python-services-dynamically-specify-cron-schedules-f315190eeb04
- score: 0.91

How to use it:

When a Python cron service in `experimentalServices` needs multiple schedules, set `schedule` to `"<dynamic>"`. At build time Vercel imports and runs its entrypoint, which must return a list of `(entrypoint, cron_schedule)` pairs.

Examples:

```
{
  "experimentalServices": {
    "scheduler": {
      "type": "cron",
      "entrypoint": "jobs.registry:crontab",
      "schedule": "<dynamic>"
    }
  }
}
```

- why_it_matters: Configure multiple cron jobs for a Python service using schedules determined by its entrypoint.
- sources: <https://github.com/vercel/vercel/releases/tag/vercel%4051.4.0>, <https://github.com/vercel/vercel/pull/15930>, <https://vercel.com/docs/services>
- gotchas: "Version: 51.4.0"; "experimentalServices.scheduler.type (required): Set to `\"cron\"` for a cron service."; "experimentalServices.scheduler.entrypoint (required): Python entrypoint that Vercel imports and runs at build time; it must return a list of `(entrypoint, cron_schedule)` pairs."; "experimentalServices.scheduler.schedule (required): Set to `\"<dynamic>\"` to use schedules supplied by the entrypoint."; "Prerequisite: To deploy a project using `experimentalServices`, set its framework setting to Services and include `experimentalServices` in `vercel.json`. Services are in private beta and require access granted by request."; "The behavior applies when the schedule for a cron service in `experimentalServices` is `\"<dynamic>\"`."; "The entrypoint function must return a list of pairs of `(entrypoint, cron_schedule)`."; "The entrypoint is imported and run at build time."; "Docs conflict: Current docs describe the legacy `experimentalServices` model as available while migrating and say new projects should use the `services` model; they do not document dynamic Python cron schedules. https://vercel.com/docs/services/experimental"

### vercel flags rollout adds progressive flag rollouts (2026-04-15)
- slug: vercel-flags-rollout-adds-progressive-flag-rollouts-3abc5848841c
- score: 0.99

How to use it:

When staging a Vercel Flags rollout, run `vercel flags rollout <flag>` for the target environment with one or more percentage-and-duration stages. Set `--by` to a defined entity attribute for stable bucketing; for non-Boolean flags, specify the source and target variants, and optionally set the fallback, start time, and revision message.

Examples:

```
vercel flags rollout <flag> --environment <environment> --by <entity.attribute> --stage <percentage,duration> [--stage <percentage,duration> ...]
```

```
vercel flags rollout <flag> --environment <environment> --by <entity.attribute> --from-variant <variant> --to-variant <variant> [--default-variant <variant>] --stage <percentage,duration> [--stage <percentage,duration> ...] [--start <now|duration|ISO-8601-datetime>] [--message <text>]
```

```
vercel flags rollout redesigned-checkout --environment production --by user.id --stage 5,6h --stage 10,6h --stage 25,12h --stage 50,1d --message "Start redesigned checkout rollout"
```

- why_it_matters: Stage a feature flag rollout while implementing or maintaining an application that uses Vercel flags.
- sources: <https://github.com/vercel/vercel/releases/tag/vercel%4051.4.0>, <https://vercel.com/docs/cli/flags>, <https://github.com/vercel/vercel/blob/main/skills/vercel-cli/references/flags.md>
- gotchas: "Version: 51.4.0"; "<flag> (required): Flag slug to roll out."; "--environment <environment> (required): Target environment; valid values are `production`, `preview`, and `development`."; "--by <entity.attribute>: Entity attribute used for consistent bucketing; define the entity and attribute first. Timestamp attributes cannot be used for bucketing."; "--stage <percentage,duration> (required): Adds a stage defining the percentage sent to the rollout variant and how long the stage lasts. Repeat for more stages; example format: `5,6h`."; "--from-variant <variant> (required): Current variant for String, Number, and JSON rollouts; accepts a variant ID or value. Boolean rollouts default to `false`."; "--to-variant <variant> (required): Target variant for String, Number, and JSON rollouts; accepts a variant ID or value. Boolean rollouts default to `true`."; "--default-variant <variant>: Fallback variant served when the bucketing attribute is missing; accepts a variant ID or value. Boolean rollouts default to `false`."; "--start <time>: When the rollout begins: `now`, a future relative duration such as `1h`, or an ISO 8601 datetime."; "--message <text>: Optional revision message for the rollout."; "Prerequisite: Use an authenticated Vercel CLI and target a project. The CLI docs state that `--by` requires the entity and attribute to be defined first."; "Prerequisite: Vercel CLI must be installed and authenticated to manage flags from the terminal."

### vercel alerts inspect fetches one alert group by ID (2026-04-15)
- slug: vercel-alerts-inspect-fetches-one-alert-group-by-id-a543aa1e515d
- score: 0.90

How to use it:

When reviewing a specific Vercel alert group, run `vercel alerts inspect <groupId>`; use the linked project by default or pass `--project <name-or-id>` or `--all` to select scope.

Examples:

```
vercel alerts inspect <groupId>
```

```
vercel alerts inspect <groupId> --project <project-name-or-id>
```

```
vercel alerts inspect <groupId> --all
```

- why_it_matters: Inspect a specific alert group while debugging or reviewing a Vercel project.
- sources: <https://github.com/vercel/vercel/releases/tag/vercel%4051.3.0>, <https://vercel.com/docs/cli/alerts>, <https://vercel.com/docs/cli>
- gotchas: "Version: 51.3.0"; "groupId (required): ID of the alert group to inspect."; "--project: Project name or ID; overrides the linked project. Cannot be combined with `--all`."; "--all: Use team-wide scope and ignore linked-project auto-scoping. Cannot be combined with `--project`."; "Prerequisite: Authenticate with Vercel before accessing resources; use `vercel login` in a terminal or `--token` in CI/CD."; "Prerequisite: `--all` requires team scope."

### vercel ai-gateway api-keys create adds API-key creation (2026-04-14)
- slug: vercel-ai-gateway-api-keys-create-adds-api-key-creation-3ed99cbece78
- score: 0.95

How to use it:

When creating an AI Gateway API key, run `vercel ai-gateway api-keys create`; add `--budget` and optionally `--refresh-period` to set an optional quota. Save the returned key immediately, because it cannot be retrieved again.

Examples:

```
vercel ai-gateway api-keys create
```

```
vercel ai-gateway api-keys create --name <NAME> --budget <DOLLARS> --refresh-period <PERIOD>
```

- why_it_matters: Create an AI Gateway API key for a coding project, optionally with quota limits.
- sources: <https://github.com/vercel/vercel/releases/tag/vercel%4051.2.1>, <https://github.com/vercel/vercel/blob/vercel%4051.2.1/packages/cli/src/commands/ai-gateway/command.ts>, <https://vercel.com/docs/ai-gateway/observability-and-spend/budgets>, <https://vercel.com/docs/cli>
- gotchas: "Version: 51.2.1"; "--name <NAME>: Human-readable API key name."; "--budget <AMOUNT>: Quota budget in dollars; minimum 1."; "--refresh-period <PERIOD>: Quota refresh cadence: `daily`, `weekly`, `monthly`, or `none`; default is `none`."; "Prerequisite: Install Vercel CLI and authenticate before performing administrative tasks. The key is created under the current CLI scope."; "Quota limits are optional."

### vercel domains price shows domain registrar pricing (2026-04-13)
- slug: vercel-domains-price-shows-domain-registrar-pricing-3bf629e24355
- score: 0.93

How to use it:

When checking a domain’s registrar pricing, run `vercel domains price <domain>` to display its purchase, renewal, and transfer prices.

Examples:

```
vercel domains price <domain>
```

- why_it_matters: Check registrar purchase, renewal, or transfer pricing for a domain.
- sources: <https://github.com/vercel/vercel/releases/tag/vercel%4051.2.0>, <https://github.com/vercel/vercel/blob/main/skills/vercel-cli/references/domains-and-dns.md>
- gotchas: "Version: 51.2.0"; "<domain> (required): Domain to get registrar pricing for."; "Prerequisite: Use Vercel CLI version 51.2.0 or later, where this command was added."; "Docs conflict: Current CLI reference documents bulk domain arguments and `--format=json`; those options are not established for version 51.2.0, so they are omitted."

### vercel project speed-insights enables Speed Insights (2026-04-06)
- slug: vercel-project-speed-insights-enables-speed-insights-c79df396a4c9
- score: 0.96

How to use it:

When enabling Speed Insights for a Vercel project, run `vercel project speed-insights` from its linked directory or provide the project name; add `--format json` for JSON output. In non-interactive use, handle error payloads returned by the command.

Examples:

```
vercel project speed-insights
```

```
vercel project speed-insights <project-name>
```

```
vercel project speed-insights --format json
```

- why_it_matters: Enable Speed Insights for a project while configuring its development workflow.
- sources: <https://github.com/vercel/vercel/releases/tag/vercel%4050.40.0>, <https://github.com/vercel/vercel/blob/vercel%4050.40.0/packages/cli/src/commands/project/command.ts>, <https://vercel.com/docs/speed-insights/quickstart>
- gotchas: "Version: 50.40.0"; "name: Optional project name; omit to use the linked project."; "--format json: Select JSON output format."; "Prerequisite: Requires a Vercel account, a Vercel project, and the Vercel CLI installed."; "The command includes non-interactive error payloads."

### vercel project web-analytics enables Web Analytics (2026-04-06)
- slug: vercel-project-web-analytics-enables-web-analytics-296b1daffb7e
- score: 0.94

How to use it:

When enabling Web Analytics for a Vercel project, run `vercel project web-analytics` with an optional project name; add `--format json` for JSON output. In non-interactive use, handle the command’s error payloads.

Examples:

```
vercel project web-analytics
```

```
vercel project web-analytics <project-name>
```

```
vercel project web-analytics --format json
```

- why_it_matters: Enable Web Analytics for a project while configuring its development workflow.
- sources: <https://github.com/vercel/vercel/releases/tag/vercel%4050.40.0>, <https://github.com/vercel/vercel/pull/15831/files>, <https://vercel.com/docs/cli/global-options>
- gotchas: "Version: 50.40.0"; "name: Project name; omit to use the linked project."; "--format json: Output the result as JSON."; "Prerequisite: For CLI project selection, link the project with `vercel link`, or select it with `--project` or `VERCEL_PROJECT_ID`. In non-interactive environments, the docs say to set `VERCEL_ORG_ID` and `VERCEL_PROJECT_ID` to skip linking."; "The command includes non-interactive error payloads."

### vc usage groups charges by project or region (2026-04-01)
- slug: vc-usage-groups-charges-by-project-or-region-d827f73d9579
- score: 0.92

How to use it:

When reviewing Vercel billing charges, run `vc usage` with `--group-by project` or `--group-by region` to group charges by that dimension.

Examples:

```
vc usage --group-by project
```

```
vc usage --group-by region
```

```
vc usage --group-by project --format json
```

- why_it_matters: Review Vercel usage charges grouped by project or region.
- sources: <https://github.com/vercel/vercel/releases/tag/vercel%4050.38.0>, <https://github.com/vercel/vercel/pull/15777>, <https://vercel.com/docs/cli>
- gotchas: "Version: 50.38.0"; "--group-by project: Groups charges by project."; "--group-by region: Groups charges by region."; "--format json: Outputs results as JSON."; "Prerequisite: Vercel CLI must be installed; Vercel CLI requires login and authentication to access resources."; "Prerequisite: `--group-by` and `--breakdown` are mutually exclusive."

### vercel flags set changes served variant in an environment (2026-03-11)
- slug: vercel-flags-set-changes-served-variant-in-an-environment-ee131cf58fd9
- score: 0.94

How to use it:

When changing the variant served by a flag in an environment, run `vercel flags set` with the flag, environment, and variant. Select the variant by ID or value; boolean `enable`/`disable` shortcuts apply only to boolean flags.

Examples:

```
vercel flags set <flag> --environment <production|preview|development> --variant <variant-id-or-value>
```

```
vercel flags set <flag> --environment <production|preview|development> --variant <variant-id-or-value> --message "<reason>"
```

- why_it_matters: Change which feature flag variant is served in a Vercel environment.
- sources: <https://github.com/vercel/vercel/blob/main/packages/cli/CHANGELOG.md#50312>, <https://vercel.com/docs/cli/flags>, <https://vercel.com/docs/cli>
- gotchas: "Version: 50.31.2"; "<flag> (required): Feature flag slug or ID."; "--environment, -e (required): Target environment: production, preview, or development."; "--variant, -v (required): Selects a variant by ID or value; labels are not selectors."; "--message: Optional revision message."; "Prerequisite: Vercel CLI must be installed and authenticated to access or administer Vercel resources."; "Explicit variant selection matches by ID or value only."

### vc deploy init adds machine-readable JSON output (2026-03-05)
- slug: vc-deploy-init-adds-machine-readable-json-output-1bec42322b66
- score: 0.94

How to use it:

When a script needs machine-readable output while initializing a Vercel deployment, run `vc deploy init --json`.

Examples:

```
vc deploy init --json
```

- why_it_matters: Initialize a Vercel deployment when a script needs machine-readable output.
- sources: <https://github.com/vercel/vercel/releases/tag/vercel%4050.28.0>
- gotchas: "Version: 50.28.0"; "--json: Adds machine-readable output to `vc deploy init`."

### vercel adds project-level route management (2026-03-05)
- slug: vercel-adds-project-level-route-management-7339c4afd8a4
- score: 0.97

How to use it:

When managing project-level routing rules in Vercel CLI 50.28.0, use `vercel routes` and its route-management subcommands; use `--ai` with `add` or `edit` to generate routes. The official release PR lists these subcommands, but does not document their full syntax or parameters.

Examples:

```
vercel routes add
```

```
vercel routes edit <route-id>
```

```
vercel routes add --ai
```

- why_it_matters: Manage project-level routing rules for a Vercel project.
- sources: <https://github.com/vercel/vercel/releases/tag/vercel%4050.28.0>, <https://github.com/vercel/vercel/pull/15349>, <https://vercel.com/docs/cli>
- gotchas: "Version: 50.28.0"; "--ai: Enables AI-powered route generation on `add` and `edit`."; "route subcommand (required): Official PR lists `list`, `inspect`, `list-versions`, `add`, `edit`, `delete`, `enable`, `disable`, `reorder`, `publish`, `restore`, `discard-staging`, and `export`; detailed parameters are not shown."; "Prerequisite: Install Vercel CLI with `pnpm i -g vercel`."

### vc deploy supports machine-readable JSON output (2026-03-03)
- slug: vc-deploy-supports-machine-readable-json-output-eef132f49f68
- score: 0.96

How to use it:

When capturing deployment output for a coding workflow, run `vc deploy --json` to write deployment details as JSON to stdout.

Examples:

```
vc deploy --json
```

- why_it_matters: Capture deployment output in a machine-readable form in a coding workflow.
- before: Before `--json`, deploy output was human-readable; the CLI also documents that stdout is the Deployment URL.
- sources: <https://github.com/vercel/vercel/releases/tag/vercel%4050.26.0>, <https://github.com/vercel/vercel/pull/15355>
- gotchas: "Version: 50.26.0"; "--json (required): Enables JSON deployment output for this task; includes deployment details such as `id`, `url`, `inspectorUrl`, `deploymentApiUrl`, `readyState`, and `target`."

### Vercel adds a command to fetch a development OIDC token (2026-02-26)
- slug: vercel-adds-a-command-to-fetch-a-development-oidc-token-8a37160848e0
- score: 0.92

How to use it:

To fetch a development OIDC token, run `vercel project token` for the linked project, or provide the project name when running outside a linked project. The command returns the token; `--format=json` requests JSON output.

Examples:

```
vercel project token
```

```
vercel project token <project-name>
```

```
vercel project token <project-name> --format=json
```

- why_it_matters: Fetch a development OIDC token for a coding workflow.
- sources: <https://github.com/vercel/vercel/releases/tag/vercel%4050.25.0>, <https://vercel.com/docs/cli/project>
- gotchas: "Version: 50.25.0"; "name: Project name; omit to use the linked project."; "--format: Output format; supports `json`."; "-y, --yes: Skip the confirmation prompt."

### vercel blob commands support private stores and updated blob workflows (2026-02-19)
- slug: vercel-blob-commands-support-private-stores-and-updated-blob-workflows-adb9995ab90c
- score: 0.98

How to use it:

When creating, uploading, downloading, or copying blobs in a private store, run the matching `vercel blob` command with `--access private`. For conditional operations, use `--if-match` on put/del/copy or `--if-none-match` on get.

Examples:

```
vercel blob create-store my-store --access private
```

```
vercel blob put file.txt --access private
vercel blob get file.txt --access private
```

```
vercel blob copy source.txt dest.txt --access private
```

- why_it_matters: Create, upload, download, or copy blobs in a Vercel Blob store, including a private store.
- before: Old commands and options continue to work but are deprecated; the prior overwrite option was `--force`.
- sources: <https://github.com/vercel/vercel/releases/tag/vercel%4050.20.0>, <https://vercel.com/docs/cli/blob>
- gotchas: "Version: 50.20.0"; "--access <access>: Select `private` or `public`; defaults to `public` per the release note. The current CLI docs say it is required, which conflicts with that release note."; "--if-match <etag>: Proceed only if the blob ETag matches; applies to put, del, and copy."; "--if-none-match <etag>: Return get content only if the blob ETag does not match; an unchanged blob returns 304."; "--allow-overwrite: Allow an upload to replace an existing file; use this in place of `--force` per the release note."; "Prerequisite: Authenticate through OIDC in a linked project with a connected Blob store, or provide `BLOB_READ_WRITE_TOKEN` from an env file or with `--rw-token`."; "`--access` defaults to `public` for backward compatibility."; "`blob get` works with both public and private stores."; "Old commands and options are deprecated but still work."; "Docs conflict: The current CLI docs, last updated August 13, 2026, say `--access` is required; release 50.20.0 says it defaults to `public`. The current docs are newer than the stated release version, so the release note governs behavior for this card."

### vercel integration list supports JSON output and project-scoped headers (2026-02-13)
- slug: vercel-integration-list-supports-json-output-and-project-scoped-headers-bcdc8f02bb40
- score: 0.92

How to use it:

When you need to list installed integration resources for a project, run `vercel integration list [<project>] --format=json` to consume machine-readable results in a script. For table output, the release note says project-scoped results show the project name in the header.

Examples:

```
vercel integration list [<project>] --format=json
```

- why_it_matters: List integrations for a project and consume the results in a script or inspect the project scope in the table output.
- sources: <https://github.com/vercel/vercel/releases/tag/vercel%4050.17.0>, <https://vercel.com/docs/cli/integration>
- gotchas: "Version: 50.17.0"; "project: Project name to filter resources; defaults to the linked project."; "--format: Output format; use `json` for machine-readable output."; "The project name appears in the table header when results are scoped to a project."

### vercel usage reports billing and period breakdowns (2026-02-12)
- slug: vercel-usage-reports-billing-and-period-breakdowns-f426dad30088
- score: 0.91

How to use it:

When reviewing project billing or usage, run `vercel usage` for the current billing period; add `--breakdown <daily|weekly|monthly>` to group usage by period.

Examples:

```
vercel usage
```

```
vercel usage --breakdown <daily|weekly|monthly>
```

- why_it_matters: Inspect billing and usage information while reviewing or maintaining a project.
- sources: <https://github.com/vercel/vercel/releases/tag/vercel%4050.16.0>, <https://vercel.com/docs/cli/usage>
- gotchas: "Version: 50.16.0"; "--breakdown <daily|weekly|monthly>: Groups usage by the specified time period; allowed values are daily, weekly, or monthly."; "Prerequisite: Available to Owner, Member, Developer, Security, Billing, and Enterprise Viewer roles for the current active team."

### vercel flags CLI manages feature flags and SDK keys (2026-02-11)
- slug: vercel-flags-cli-manages-feature-flags-and-sdk-keys-4e9631637f6f
- score: 0.98

How to use it:

For a Vercel project, use `vercel flags` to list, inspect, create, archive, enable, disable, and delete feature flags; use `vercel flags sdk-keys` to list, create, and delete SDK keys. Archive a flag before deleting it.

Examples:

```
vercel flags ls
vercel flags inspect <flag>
vercel flags add <slug>
vercel flags archive <flag>
vercel flags disable <flag> --environment <production|preview|development>
vercel flags enable <flag> --environment <production|preview|development>
vercel flags rm <flag> --yes
```

```
vercel flags sdk-keys ls
vercel flags sdk-keys add --type <type> --environment <production|preview|development>
vercel flags sdk-keys rm <hash-key> --yes
```

- why_it_matters: Manage feature flags and SDK keys from the CLI for a project.
- sources: <https://github.com/vercel/vercel/releases/tag/vercel%4050.15.0>, <https://vercel.com/docs/cli/flags>
- gotchas: "Version: 50.15.0"; "<slug> (required): Slug identifying the new feature flag."; "<flag> (required): Flag identifier used by inspect, archive, enable, disable, and rm."; "<key> / <hash-key> (required): SDK key identifier used by sdk-keys rm; the docs call it `[hash-key]`."; "--environment, -e (required): Selects production, preview, or development for enable/disable. For sdk-keys add, if omitted, the CLI prompts for an environment."; "--type (required): Sets the SDK key type when creating a key; the page's examples use `server` but do not enumerate allowed values."; "--yes, -y: Skips confirmation when archiving or deleting a flag, or deleting an SDK key."; "--kind, -k: Sets a new flag's kind: boolean, string, or number; defaults to boolean."; "--description, -d: Sets a description when creating a flag."; "--variant, -v: Sets the variant ID served when disabling a flag."; "--label, -l: Sets an optional label when creating an SDK key."; "--state, -s: Filters flag listing by active or archived; defaults to active."; "Prerequisite: Vercel CLI installed; commands operate on a project."; "Prerequisite: Enable and disable work only with boolean flags; string and number flags must be updated in the dashboard."; "A feature flag must be archived before it can be deleted."

### vercel integration discover lists installable marketplace integrations and products (2026-02-11)
- slug: vercel-integration-discover-lists-installable-marketplace-integrations-and-produ-71612eb7e5cd
- score: 0.93

How to use it:

When you need to find installable Vercel Marketplace integrations or products, run `vercel integration discover`; add `--format=json` for machine-readable output.

Examples:

```
vercel integration discover
```

```
vercel integration discover --format=json
```

- why_it_matters: Discover installable marketplace integrations and products while working on a coding project.
- sources: <https://github.com/vercel/vercel/releases/tag/vercel%4050.15.0>, <https://vercel.com/docs/cli/integration>, <https://vercel.com/docs/cli>
- gotchas: "Version: 50.15.0"; "query: Optional substring filter for integration slug, product slug, name, or description."; "--category (-c): Filter by category; repeat to match any listed category."; "--format (-F): Set output format; use `json` for machine-readable output."; "Prerequisite: Use Vercel CLI v50.15.0 or later; the command was added in v50.15.0."; "Prerequisite: Vercel CLI must be installed. The official CLI overview documents installation with `pnpm i -g vercel` (also lists Yarn, npm, and Bun options)."; "The command supports human-readable and JSON output."

### vercel.json function-level regions configuration (2026-02-10)
- slug: vercel-json-function-level-regions-configuration-2ab01c7d493b
- score: 0.94

How to use it:

When a function needs a specific deployment region, add a `regions` array to its entry under `functions` in `vercel.json`; that entry overrides the project-level `regions` setting for the matched function.

Examples:

```
{
  "$schema": "https://openapi.vercel.sh/vercel.json",
  "functions": {
    "<function-path-or-glob>": {
      "regions": ["<region-id>"]
    }
  }
}
```

- why_it_matters: Set a specific deployment region for a function in a Vercel project.
- sources: <https://github.com/vercel/vercel/releases/tag/vercel%4050.14.1>, <https://vercel.com/docs/functions/configuring-functions/region>, <https://vercel.com/docs/project-configuration/vercel-json>, <https://vercel.com/changelog/pro-customers-can-now-configure-up-to-3-regions-for-vercel-functions>
- gotchas: "Version: 50.14.1"; "functions[<function-path-or-glob>] (required): Selects the function or functions receiving this configuration."; "functions[<function-path-or-glob>].regions (required): Array of region identifiers for the matched function; overrides the project-level `regions` setting for that function."; "Prerequisite: Use a supported region identifier. Hobby plans can select one region; Pro plans can use up to three; Enterprise plans can use multiple regions."; "Prerequisite: Redeploy the project for region configuration changes to take effect."

### vercel integration add accepts custom resource names (2026-02-10)
- slug: vercel-integration-add-accepts-custom-resource-names-4fc30444fa52
- score: 0.93

How to use it:

When adding a Marketplace resource with a custom name, run `vercel integration add <integration-slug> --name <resource-name>`. The CLI auto-generates a name if `--name` is omitted; the release note specifies `{productSlug}-{color}-{noun}`.

Examples:

```
vercel integration add <integration-slug> --name <resource-name>
```

- why_it_matters: Add an integration resource with a specified name while configuring a project.
- sources: <https://github.com/vercel/vercel/releases/tag/vercel%4050.14.0>, <https://vercel.com/docs/cli/integration>
- gotchas: "Version: 50.14.0"; "integration-slug (required): Marketplace integration URL slug."; "--name <resource-name>: Custom name for the resource; auto-generated if omitted."

### vercel integration add supports product slash syntax (2026-02-10)
- slug: vercel-integration-add-supports-product-slash-syntax-13edd743ad6a
- score: 0.95

How to use it:

For a multi-product integration, run `vercel integration add <integration>/<product>` to provision the chosen product without the product selection prompt.

Examples:

```
vercel integration add <integration>/<product>
```

- why_it_matters: Add a product from a multi-product integration without selecting it at a prompt.
- before: The product selection prompt appeared during the add flow.
- sources: <https://github.com/vercel/vercel/releases/tag/vercel%4050.14.0>, <https://vercel.com/docs/cli/integration>
- gotchas: "Version: 50.14.0"; "<integration> (required): Integration URL slug."; "<product> (required): Product slug within the integration."; "The dynamic help listing applies to multi-product integrations."

### vercel CLI reads VERCEL_TOKEN for authentication (2026-02-05)
- slug: vercel-cli-reads-vercel-token-for-authentication-60b4d654f270
- score: 0.97

How to use it:

When authenticating a Vercel CLI task, set `VERCEL_TOKEN` in the environment and run the intended CLI command. If `VERCEL_TOKEN` and `--token` are both provided, `--token` takes precedence.

Examples:

```
export VERCEL_TOKEN=<token>
vercel deploy
```

- why_it_matters: When scripting a Vercel CLI task or configuring CI/CD authentication, provide the token through the environment.
- sources: <https://github.com/vercel/vercel/releases/tag/vercel%4050.12.1>, <https://vercel.com/docs/cli/global-options>, <https://vercel.com/docs/cli>
- gotchas: "Version: 50.12.1"; "VERCEL_TOKEN: Environment variable containing the authorization token; use it as an alternative to `--token`."; "--token <token> (shorthand: -t): Pass an authorization token directly to a CLI command. Takes precedence over `VERCEL_TOKEN` if both are provided."; "Prerequisite: Install Vercel CLI (`pnpm i -g vercel` in the CLI overview). CLI authentication is required before accessing resources or performing administrative tasks."; "The `--token` flag takes precedence over `VERCEL_TOKEN` when both are provided."

### vercel upgrade command supports package manager aware upgrades (2026-01-12)
- slug: vercel-upgrade-command-supports-package-manager-aware-upgrades-334a95760456
- score: 0.98

How to use it:

When upgrading Vercel CLI and you need to inspect the package-manager command first, run `vercel upgrade --dry-run`; review the proposed command, then run `vercel upgrade` to apply it. Use `--json` instead of `--dry-run` for machine-readable upgrade information; it also implies dry-run behavior.

Examples:

```
vercel upgrade --dry-run
```

```
vercel upgrade
```

```
vercel upgrade --json
```

- why_it_matters: Upgrade the Vercel CLI while checking the proposed package manager operation before applying it.
- sources: <https://github.com/vercel/vercel/releases/tag/vercel%4050.3.0>, <https://github.com/vercel/vercel/pull/14584>, <https://github.com/vercel/vercel/blob/vercel%4050.3.0/packages/cli/src/commands/upgrade/command.ts>, <https://vercel.com/docs/cli>
- gotchas: "Version: 50.3.0"; "--dry-run: Show the upgrade command without executing it."; "--json: Output upgrade information as JSON; implies `--dry-run`."; "Prerequisite: Vercel CLI must be installed so `vercel upgrade` is available."; "The update prompt is interactive-terminal-only."
