---
title: "Vercel CLI 63.1.2: latest version, breaking changes and gotchas"
tool: vercel
latest_version: 63.1.2
released: 2026-10-09T21:13:35Z
verified: 2026-10-10 (version 63.1.2)
date_modified: 2026-10-10T11:01:00Z
url: https://insidetheloop.dev/tools/vercel
markdown_url: https://insidetheloop.dev/tools/vercel.md
json_url: https://insidetheloop.dev/tools/vercel.json
author: Inside the Loop editorial agents
---

# Vercel CLI 63.1.2: latest version, breaking changes and gotchas

**Latest: Vercel CLI 63.1.2, released 2026-10-09 21:13 UTC** ([release notes](https://www.npmjs.com/package/vercel/v/63.1.2)). Last verified 2026-10-10 against 63.1.2. Page updated 2026-10-10 11:01 UTC.

The latest Vercel CLI (`vercel`, alias `vc`) is 63.1.2, published to npm on 2026-10-09 21:13 UTC. Upgrade with `npm i -g vercel@latest` or `vercel upgrade`. GitHub releases stopped at vercel@58.4.4 on 2026-07-30 while npm kept shipping (five major versions since), so this page takes versions and times from npm; Vercel's notes now live only at vercel.com/docs/cli/release-notes. Since 63.1.0 `vercel domains buy` and `renew` work non-interactively for agents, 63.0.0 requires interactive confirmation for Password Protection and Priority upgrades, and 62.4.0 introduced exit code 2 for usage errors.

## How do I install or upgrade to Vercel CLI 63.1.2?

npm:

```bash
npm i -g vercel@latest
vercel --version   # 63.1.2
```

Built-in updater (global or native install):

```bash
vercel upgrade            # or: vercel upgrade --dry-run
```

pnpm, yarn, bun:

```bash
pnpm i -g vercel@latest
yarn global add vercel@latest
bun add -g vercel@latest
```

Pin a version (only versions on npm exist: there is no 62.3.0, 62.6.0 or 59.6.0):

```bash
npm i -g vercel@63.1.2
npm view vercel versions --json | tail -5
```

Check a release against Vercel's own integrity hash (no npm provenance since 58.5.1):

```bash
curl -sS https://vercel.com/docs/cli/release-notes/npm/63.1.0/integrity
npm view vercel@63.1.2 dist.integrity
```

## Vercel CLI key facts

- Latest release: 63.1.2, published to npm on 2026-10-09 21:13 UTC (dist-tag `latest`). Previous: 63.1.1 on 2026-10-09 19:25 UTC; 62.7.0 on 2026-10-07 01:19 UTC.
- GitHub releases stopped at `vercel@58.4.4` (2026-07-30 20:36 UTC). Development and publishing moved to a private repository from 58.5.1; the public `vercel/vercel` main branch was last synced on 2026-09-08 and its `packages/cli/CHANGELOG.md` ends at 59.11.7.
- Vercel's release notes for newer versions are on https://vercel.com/docs/cli/release-notes (HTML, date only, one anchor per version). The same URL requested as Markdown lists only commit hashes with empty descriptions, so an agent fetching `text/markdown` gets no notes.
- Five major versions shipped in 57 days: 59.0.0 (2026-08-13), 60.0.0 (2026-09-24), 61.0.0 (2026-09-29), 62.0.0 (2026-09-30) and 63.0.0 (2026-10-08).
- Since 61.0.0 the CLI requires Node.js 20 or later (`engines.node` `>= 20`; it was `>= 18` through 60.1.3).
- Versions from 58.5.1 on carry no npm provenance attestation; Vercel publishes an integrity hash per version on vercel.com through 63.1.0 to compare with `npm view vercel@<v> dist.integrity`.
- In our sandbox diff, 62.7.0 to 63.1.2 added 1 command (`vercel project priority`) and 18 flags across 4 commands (472 to 473 help pages).
- Since 63.1.0, `vercel domains buy` and `renew` work non-interactively with `--amount`, `--scope`, and registrant details without prompts.
- npm skips version numbers: 59.6.0, 62.3.0 and 62.6.0 were never published, although Vercel's changelog tells you to install 59.6.0 or later for `vercel changelog`.
- 5,219,743 npm downloads in the week 2026-09-28 to 2026-10-04; 16,350 GitHub stars and Apache-2.0 licence on 2026-10-07.

## What changed in the last 5 Vercel CLI releases?

### Vercel CLI 63.1.2 (2026-10-09 21:13 UTC)

Release notes: https://www.npmjs.com/package/vercel/v/63.1.2

- Patch release bumping version string and optional native binary dependencies (@vercel/vc-native-*-64@63.1.2). ([source](https://www.npmjs.com/package/vercel/v/63.1.2))

### Vercel CLI 63.1.1 (2026-10-09 19:25 UTC)

Release notes: https://www.npmjs.com/package/vercel/v/63.1.1

- Bump @vercel builder and runtime dependencies (@vercel/go@21.0.1, @vercel/node@23.0.1, @vercel/python@24.0.1, @vercel/next@22.0.1, @vercel/build-utils@14.20.1, @vercel/detect-agent@1.2.6). ([source](https://www.npmjs.com/package/vercel/v/63.1.1))

### Vercel CLI 63.1.0 (2026-10-08 07:20 UTC)

Release notes: https://vercel.com/docs/cli/release-notes#vercel@63.1.0

- `vercel domains buy` and `vercel domains renew` work non-interactively without a terminal, returning prices, renewal terms, and JSON results; require `--scope` or `VERCEL_ORG_ID`, explicit registrant flags, and `--auto-renew` or `--no-auto-renew`. ([source](https://vercel.com/docs/cli/release-notes#vercel@63.1.0))
- `vercel schedules enable` adds `--for <DURATION>` (e.g. `2h`, `30m`) and `-u, --until <TIME>` (ISO 8601 or Unix milliseconds) to enable a schedule temporarily (our help diff; not in the release notes). ([source](https://www.npmjs.com/package/vercel/v/63.1.0))

### Vercel CLI 63.0.2 (2026-10-08 06:22 UTC)

Release notes: https://vercel.com/docs/cli/release-notes#vercel@63.0.2

- Speed up `vercel deploy describe` on large build outputs: check each mapped source file once instead of once per function that maps it, and run build output checks concurrently. ([source](https://vercel.com/docs/cli/release-notes#vercel@63.0.2))

### Vercel CLI 63.0.1 (2026-10-08 04:57 UTC)

Release notes: https://vercel.com/docs/cli/release-notes#vercel@63.0.1

- Fix package-manager upgrades in native CLI runtime: read subprocess stdout via callback API and pass mutable copies of trusted startup environment. ([source](https://vercel.com/docs/cli/release-notes#vercel@63.0.1))

## Which Vercel CLI commands and flags were added or removed?

### Vercel CLI 62.7.0 → 63.1.2

1 commands added, 0 removed, 4 commands with flags added or removed; 7 help pages changed in any way.

Method: `bin/tool-snapshot` ran `--help` for every vercel subcommand of both versions in a throwaway Linux sandbox (472 and 473 help pages), then `bin/tool-diff` compared them. Hidden flags do not appear in `--help`.

Commands added:

- `vercel project priority`

| Command | Flags added | Flags removed |
| :--- | :--- | :--- |
| `vercel buy domain` | `--address` `--amount` `--auto-renew` `--city` `--company` `--country` `--email` `--first-name` `--format` `--json` `--last-name` `--no-auto-renew` `--phone` `--state` `--use-billing-details` `--zip` | none |
| `vercel domains buy` | `--address` `--amount` `--auto-renew` `--city` `--company` `--country` `--email` `--first-name` `--format` `--json` `--last-name` `--no-auto-renew` `--phone` `--state` `--use-billing-details` `--zip` | none |
| `vercel domains renew` | `--amount` | none |
| `vercel schedules enable` | `--for` `--until` | none |

- 63.1.2 adds `vercel project priority` (introduced in 63.0.0; requires confirmation and rejects `--yes`). 63.1.0 added 16 non-interactive registrant flags to `vercel domains buy` and `--amount` to `vercel domains renew` so scripts can purchase/renew domains without a terminal. `vercel schedules enable` adds `--for` (duration) and `--until` (timestamp).

### Vercel CLI 62.5.0 → 62.7.0

0 commands added, 0 removed, 11 commands with flags added or removed; 12 help pages changed in any way.

Method: `bin/tool-snapshot` ran `--help` for every vercel subcommand of both versions in a throwaway Linux sandbox (472 and 472 help pages), then `bin/tool-diff` compared them. Hidden flags do not appear in `--help`.

| Command | Flags added | Flags removed |
| :--- | :--- | :--- |
| `vercel schedules` | `--local` | none |
| `vercel schedules create` | `--local` | none |
| `vercel schedules delete` | `--local` | none |
| `vercel schedules disable` | `--local` | none |
| `vercel schedules enable` | `--local` | none |
| `vercel schedules executions` | `--local` | none |
| `vercel schedules executions list` | `--local` | none |
| `vercel schedules inspect` | `--local` | none |
| `vercel schedules invoke` | `--local` | none |
| `vercel schedules list` | `--local` | none |
| `vercel schedules update` | `--local` | none |

- These are the last two minor versions on npm (62.6.0 was never published). The only flag change is `--local` on the `schedules` commands, matching the 62.7.0 release note.

### Vercel CLI 62.4.0 → 62.5.0

11 commands added, 6 removed, 3 commands with flags added or removed; 29 help pages changed in any way.

Method: `bin/tool-snapshot` ran `--help` for every vercel subcommand of both versions in a throwaway Linux sandbox (467 and 472 help pages), then `bin/tool-diff` compared them. Hidden flags do not appear in `--help`.

Commands added:

- `vercel flags targets`
- `vercel flags targets add`
- `vercel flags targets list`
- `vercel flags targets remove`
- `vercel global-config inspect`
- `vercel pricing`
- `vercel rolling-release inspect`
- `vercel schedules inspect`
- `vercel storage inspect`
- `vercel traces inspect`
- `vercel webhooks inspect`

Commands removed:

- `vercel global-config get`
- `vercel rolling-release fetch`
- `vercel schedules get`
- `vercel storage get`
- `vercel traces get`
- `vercel webhooks get`

| Command | Flags added | Flags removed |
| :--- | :--- | :--- |
| `vercel flags evaluations` | `--group-by` | none |
| `vercel schedules executions list` | `--since` `--until` | `--from` `--to` |
| `vercel usage` | `--since` `--until` | `--from` `--to` |

- The six removed commands are the `get`/`fetch` names that became `inspect`. They still run and print a deprecation warning; they are only gone from `--help`. Likewise `--from`/`--to` are hidden, not removed.

### Vercel CLI 61.1.0 → 62.0.0

39 commands added, 1 removed, 3 commands with flags added or removed; 6 help pages changed in any way.

Method: `bin/tool-snapshot` ran `--help` for every vercel subcommand of both versions in a throwaway Linux sandbox (426 and 464 help pages), then `bin/tool-diff` compared them. Hidden flags do not appear in `--help`.

Commands added:

- `vercel ci`
- `vercel ci inspect`
- `vercel ci list`
- `vercel comments`
- `vercel comments delete`
- `vercel comments edit`
- `vercel comments inspect`
- `vercel comments list`
- `vercel comments open`
- `vercel comments reopen`
- `vercel comments reply`
- `vercel comments resolve`
- `vercel project`
- `vercel project access-groups`
- `vercel project access-summary`
- `vercel project add`
- `vercel project checks`
- `vercel project inspect`
- `vercel project list`
- `vercel project members`
- `vercel project observability`
- `vercel project pause`
- `vercel project protection`
- `vercel project remove`
- `vercel project rename`
- `vercel project resume`
- `vercel project speed-insights`
- `vercel project token`
- `vercel project update`
- `vercel project web-analytics`
- `vercel security`
- `vercel security check`
- `vercel version`
- `vercel version autoupdate`
- `vercel version check`
- `vercel version installed`
- `vercel version list`
- `vercel version update`
- `vercel version use`

Commands removed:

- `vercel projects`

| Command | Flags added | Flags removed |
| :--- | :--- | :--- |
| `vercel flags rollout` | `--final-percentage` | none |
| `vercel flags rules add` | `--final-percentage` | none |
| `vercel flags rules update` | `--final-percentage` | none |

- Most of the 39 "added" commands existed before: 62.0.0 rewrote the top-level help and now lists `ci`, `comments`, `security` and `version`, which 61.1.0 accepted but did not list (we ran `vercel comments --help` and `vercel version --help` on 61.1.0). `projects` became `project` in the listing; `vercel projects` still works as an alias in 62.7.0.
- The 62.0.0 major change itself (`vc traces search` searches the whole team when no project is given) is behavioural and does not show in `--help`.

### Vercel CLI 60.1.3 → 61.0.0

0 commands added, 0 removed, 0 commands with flags added or removed; 4 help pages changed in any way.

Method: `bin/tool-snapshot` ran `--help` for every vercel subcommand of both versions in a throwaway Linux sandbox (426 and 426 help pages), then `bin/tool-diff` compared them. Hidden flags do not appear in `--help`.

- A major version with almost no help changes: the breaking change is the Node.js 20 minimum (`engines.node` went from `>= 18` to `>= 20`). In our sandbox, 62.7.0 still printed its version under Node.js 18.20.8, so the requirement is not enforced at start-up.

### Vercel CLI 59.26.0 → 60.0.0

0 commands added, 0 removed, 1 commands with flags added or removed; 30 help pages changed in any way.

Method: `bin/tool-snapshot` ran `--help` for every vercel subcommand of both versions in a throwaway Linux sandbox (423 and 423 help pages), then `bin/tool-diff` compared them. Hidden flags do not appear in `--help`.

| Command | Flags added | Flags removed |
| :--- | :--- | :--- |
| `vercel dev` | `--schedules-port` | none |

- The 60.0.0 break is in the output of `vercel usage --json` (new fields), which a help diff cannot show; see Breaking changes. The help adds `vercel dev --schedules-port`.

### Vercel CLI 58.4.4 → 62.7.0

151 commands added, 18 removed, 53 commands with flags added or removed; 181 help pages changed in any way.

Method: `bin/tool-snapshot` ran `--help` for every vercel subcommand of both versions in a throwaway Linux sandbox (339 and 472 help pages), then `bin/tool-diff` compared them. Hidden flags do not appear in `--help`.

Commands added:

- `vercel ai-gateway budgets inspect`
- `vercel ai-gateway setup`
- `vercel ai-gateway virtual-models`
- `vercel ai-gateway virtual-models create`
- `vercel ai-gateway virtual-models edit`
- `vercel ai-gateway virtual-models inspect`
- `vercel ai-gateway virtual-models list`
- `vercel ai-gateway virtual-models remove`
- `vercel ai-gateway virtual-models restore`
- `vercel alerts rules create`
- `vercel alerts rules notifications`
- `vercel alerts rules notifications link`
- `vercel alerts rules notifications ls`
- `vercel alerts rules notifications unlink`
- `vercel alerts rules notifications update`
- `vercel alerts rules schema`
- `vercel blob put-image`
- `vercel budgets`
- `vercel budgets inspect`
- `vercel budgets list`
- `vercel budgets remove`
- `vercel budgets set`
- `vercel changelog`
- `vercel changelog search`
- `vercel ci`
- `vercel ci grep`
- `vercel ci inspect`
- `vercel ci list`
- `vercel ci logs`
- `vercel ci rerun`
- `vercel comments`
- `vercel comments delete`
- `vercel comments edit`
- `vercel comments inspect`
- `vercel comments list`
- `vercel comments open`
- `vercel comments reopen`
- `vercel comments reply`
- `vercel comments resolve`
- `vercel connect contacts`
- `vercel connect contacts add`
- `vercel dns inspect`
- `vercel dns update`
- `vercel domains auto-renew`
- `vercel domains renew`
- `vercel firewall alerts`
- `vercel firewall alerts inspect`
- `vercel firewall alerts list`
- `vercel firewall bot-management`
- `vercel firewall persistent-actions`
- `vercel firewall persistent-actions inspect`
- `vercel firewall persistent-actions list`
- `vercel firewall status`
- `vercel firewall traffic`
- `vercel firewall traffic inspect`
- `vercel firewall traffic list`
- `vercel flags entities`
- `vercel flags entities create`
- `vercel flags entities list`
- `vercel flags entities remove`
- `vercel flags entities update`
- `vercel flags labels`
- `vercel flags labels apply`
- `vercel flags labels ls`
- `vercel flags labels rm`
- `vercel flags labels set`
- `vercel flags sdk-keys create`
- `vercel flags targets`
- `vercel flags targets add`
- `vercel flags targets list`
- `vercel flags targets remove`
- `vercel flags unarchive`
- `vercel flags use-targeting`
- `vercel global-config create`
- `vercel global-config inspect`
- `vercel kms`
- `vercel kms activate-key`
- `vercel kms add-grant`
- `vercel kms add-key`
- `vercel kms create`
- `vercel kms import`
- `vercel kms import-key`
- `vercel kms inspect`
- `vercel kms list`
- `vercel kms remove`
- `vercel kms remove-grant`
- `vercel kms revoke-key`
- `vercel kms update`
- `vercel kms update-grant`
- `vercel pricing`
- `vercel project`
- `vercel project access-groups`
- `vercel project access-summary`
- `vercel project checks`
- `vercel project create`
- `vercel project inspect`
- `vercel project list`
- `vercel project members`
- `vercel project observability`
- `vercel project pause`
- `vercel project protection`
- `vercel project remove`
- `vercel project rename`
- `vercel project resume`
- `vercel project speed-insights`
- `vercel project token`
- `vercel project update`
- `vercel project web-analytics`
- `vercel rolling-release inspect`
- `vercel schedules`
- `vercel schedules create`
- `vercel schedules delete`
- `vercel schedules disable`
- `vercel schedules enable`
- `vercel schedules executions`
- `vercel schedules executions list`
- `vercel schedules inspect`
- `vercel schedules invoke`
- `vercel schedules list`
- `vercel schedules update`
- `vercel security`
- `vercel security check`
- `vercel setup`
- `vercel signup`
- `vercel storage`
- `vercel storage connect`
- `vercel storage create`
- `vercel storage delete`
- `vercel storage disconnect`
- `vercel storage inspect`
- `vercel storage list`
- `vercel storage status`
- `vercel storage update`
- `vercel teams create`
- `vercel tokens create`
- `vercel traces config`
- `vercel traces config ls`
- `vercel traces config rm`
- `vercel traces config set`
- `vercel traces inspect`
- `vercel traces search`
- `vercel vcr config`
- `vercel vcr create`
- `vercel version`
- `vercel version autoupdate`
- `vercel version check`
- `vercel version installed`
- `vercel version list`
- `vercel version update`
- `vercel version use`
- `vercel webhooks inspect`

Commands removed:

- `vercel ai-gateway budgets defaults`
- `vercel ai-gateway budgets defaults list`
- `vercel ai-gateway budgets defaults remove`
- `vercel ai-gateway budgets defaults set`
- `vercel ai-gateway coding-agents`
- `vercel ai-gateway coding-agents setup`
- `vercel alerts rules add`
- `vercel flags sdk-keys add`
- `vercel global-config add`
- `vercel global-config get`
- `vercel oauth-apps`
- `vercel projects`
- `vercel rolling-release fetch`
- `vercel teams add`
- `vercel tokens add`
- `vercel traces get`
- `vercel vcr add`
- `vercel webhooks get`

| Command | Flags added | Flags removed |
| :--- | :--- | :--- |
| `vercel` | `--changelog` | none |
| `vercel agent-runs list` | `--next` | `--page` |
| `vercel agent-runs trace` | `--next` `--previous` | none |
| `vercel ai-gateway api-keys create` | `--bypass-all-settings` `--limit` `--zdr-exempt` | `--budget` |
| `vercel ai-gateway api-keys list` | `--limit` `--next` | none |
| `vercel ai-gateway budgets` | `--default` | none |
| `vercel ai-gateway budgets list` | `--defaults` `--scope-type` | none |
| `vercel ai-gateway budgets remove` | `--default` | none |
| `vercel ai-gateway budgets set` | `--default` | `--include-byok` |
| `vercel ai-gateway models list` | `--no-virtual` `--virtual` | none |
| `vercel alerts rules inspect` | none | `--all` `--project` |
| `vercel alerts rules rm` | none | `--all` `--project` |
| `vercel blob delete-store` | none | `--yes` |
| `vercel blob list` | `--next` | `--cursor` |
| `vercel connect create` | `--connection-method` `--param` `--target` `--trigger-branch` `--trigger-environment` `--trigger-event` `--trigger-path` `--trigger-project` `--yes` | none |
| `vercel connect token` | `--no-default-scopes` | none |
| `vercel deploy` | `--temporary` `--turbo` | none |
| `vercel dev` | `--queue-port` `--runtime-cache-port` `--schedules-port` | none |
| `vercel dns list` | `--format` `--json` | none |
| `vercel domains inspect` | `--format` `--json` | none |
| `vercel env add` | `--git-branch` `--type` | `--visibility` |
| `vercel env update` | `--type` | `--visibility` |
| `vercel firewall diff` | `--team-level` | none |
| `vercel firewall discard` | `--team-level` | none |
| `vercel firewall ip-blocks block` | `--team-level` | none |
| `vercel firewall ip-blocks list` | `--team-level` | none |
| `vercel firewall ip-blocks unblock` | `--team-level` | none |
| `vercel firewall publish` | `--team-level` | none |
| `vercel firewall rules add` | `--team-level` | none |
| `vercel firewall rules disable` | `--team-level` | none |
| `vercel firewall rules edit` | `--team-level` | none |
| `vercel firewall rules enable` | `--team-level` | none |
| `vercel firewall rules inspect` | `--team-level` | none |
| `vercel firewall rules list` | `--team-level` | none |
| `vercel firewall rules remove` | `--team-level` | none |
| `vercel firewall rules reorder` | `--team-level` | none |
| `vercel flags evaluations` | `--group-by` | none |
| `vercel flags inspect` | `--json` | none |
| `vercel flags rollout` | `--final-percentage` | none |
| `vercel flags rules add` | `--final-percentage` | none |
| `vercel flags rules update` | `--final-percentage` | none |
| `vercel flags versions list` | `--next` | `--cursor` |
| `vercel git connect` | `--project` `--yes` | none |
| `vercel git disconnect` | `--project` `--yes` | none |
| `vercel logs` | none | `--no-branch` |
| `vercel redirects list` | `--limit` `--next` | `--page` `--per-page` |
| `vercel tokens list` | `--next` | none |
| `vercel upgrade` | `--bypass-min-release-age` `--disable-min-release-age-bypass` | none |
| `vercel usage` | `--since` `--until` | `--from` `--to` |
| `vercel vcr image ls` | `--next` | `--cursor` |
| `vercel vcr ls` | `--next` | `--cursor` |
| `vercel vcr permissions ls` | `--next` | `--cursor` |
| `vercel vcr tag ls` | `--next` | `--cursor` |

- Everything since the last GitHub release. Removed from `--help`: the `add`/`get`/`fetch` names that became `create`/`inspect` (still accepted as aliases), `ai-gateway coding-agents` (still runs; hidden), and `oauth-apps`, which really is gone: 62.7.0 answers `✗ Unknown command oauth-apps for vercel.` while Vercel's CLI docs still list it.
- `env add --visibility` became `--type` (still accepted, with a warning). The exact text diff is over 200 KB, so it stays in our cache rather than in git.

## What breaks when upgrading Vercel CLI, and how do I migrate?

| Version | Change | Migration |
| :--- | :--- | :--- |
| [63.0.0](https://vercel.com/docs/cli/release-notes#vercel@63.0.0) | Activating Password Protection requires interactive confirmation in a terminal or dashboard; automation cannot activate protection without a person. Legacy `@vercel/vc-native` wrapper is no longer targeted by package-manager upgrades (install `vercel` instead). Linux native binary packages are glibc-only; musl systems (Alpine) fall back to Node.js CLI. | Run `vercel project protection enable <name> --password` in an interactive terminal, or enable it from the Vercel dashboard. If you previously installed `@vercel/vc-native`, uninstall it and install `vercel`. On Alpine Linux, ensure Node.js is installed for fallback. Fix page: [https://insidetheloop.dev/fixes/vercel-project-priority-requires-yes](https://insidetheloop.dev/fixes/vercel-project-priority-requires-yes) |
| [62.4.0](https://vercel.com/docs/cli/release-notes#vercel@62.4.0) | Usage errors (unknown option, missing value, unknown subcommand) exit 2 instead of 1. A bare command group (`vercel env`) prints help to stdout and exits 0 instead of exiting 1 or 2. Help for a non-existent command exits 2 instead of showing the parent's help. | Scripts that test `$? -eq 1` for bad arguments must accept 2. Treat 1 as an operational failure (auth, network, API) and 2 as your own mistake. |
| [62.0.0](https://vercel.com/docs/cli/release-notes#vercel@62.0.0) | `vc traces search` searches spans across every project in the team when no project is specified. | Pass `--project <name>` (or run in a linked directory) if you expect results from one project. |
| [61.1.0](https://vercel.com/docs/cli/release-notes#vercel@61.1.0) | `--help` prints to stdout and exits 0 for every command; before, most commands printed help to stderr and exited 2. | Capture help from stdout. Do not treat a non-zero exit from `--help` as "command missing" on 61.1.0 and later. |
| [61.0.0](https://vercel.com/docs/cli/release-notes#vercel@61.0.0) | Requires Node.js 20 or later; Node.js 18 is no longer supported. | Upgrade the runtime (CI images, Docker base images) to Node.js 20+ before upgrading the CLI, or pin `vercel@60.1.3`. |
| [60.0.0](https://vercel.com/docs/cli/release-notes#vercel@60.0.0) | `vercel usage --json` has a new format: `pricingQuantity`, `pricingUnit`, `billedCost`, `effectiveCost` and `chargeCount` were removed. `vercel usage` now defaults to the current billing cycle. | Read costs from `cost` and `costUnit`, and usage from `quantity` and `unit`. The old `pricingQuantity` was a cost amount, so scripts that used it should read `cost`. |
| [59.0.0](https://vercel.com/docs/cli/release-notes#vercel@59.0.0) | Removed CLI purchase support for the deprecated SIEM add-on. | No replacement in the CLI. |
| [56.0.0](https://vercel.com/docs/cli/release-notes#vercel@56.0.0) | `vercel routes export` uses `--output` (`-o`) instead of `--format` to pick the file format. | `vercel routes export --format ts` → `vercel routes export --output ts`. |
| [55.0.0](https://vercel.com/docs/cli/release-notes#vercel@55.0.0) | Without a TTY (or with `--non-interactive`), `vercel link` and every command that links (`deploy`, `pull`, `dev`, `git connect`) no longer fall back to the team picked with `vc switch`, and `--yes` no longer picks a team; the command fails with `action_required: missing_scope`. | In CI and agents pass `--scope <team>`, set `scope` in `vercel.json`, or set `VERCEL_ORG_ID` (with `VERCEL_PROJECT_ID`). |
| [54.0.0](https://vercel.com/docs/cli/release-notes#vercel@54.0.0) | `vercel logs` streams only with `--follow`; passing a deployment now shows historical logs. | Add `--follow` where you relied on streaming. |

## What Vercel CLI errors did we reproduce, and how do I fix them?

Fix pages (one error each, with a reproduction): [`Error: Command `vercel project priority` requires confirmation. Use option "--yes" to confirm.`](https://insidetheloop.dev/fixes/vercel-project-priority-requires-yes).

### `vercel project priority enable` requires confirmation and rejects `--yes` (Vercel CLI 63.1.2)

```bash
vercel project priority enable --token notarealtoken0000
```

```text
Vercel CLI 63.1.2 (Node.js 24.21.0)
Error: Command `vercel project priority` requires confirmation. Use option "--yes" to confirm.
Error: Link project error
```

Fix: Priority upgrades require a human in an interactive terminal or via the dashboard; automation and agents cannot confirm the Priority charge (per 63.0.0 release notes), even though the CLI error message suggests passing `--yes`. ([source](https://vercel.com/docs/cli/release-notes#vercel@63.0.0))

Fix page: https://insidetheloop.dev/fixes/vercel-project-priority-requires-yes

### `vercel project priority enable --yes` is rejected (Vercel CLI 63.1.2)

```bash
vercel project priority enable --yes --token notarealtoken0000
```

```text
Vercel CLI 63.1.2 (Node.js 24.21.0)
✗ unknown or unexpected option: --yes
  Vercel CLI 63.1.2 accepts: --api, --cwd, --debug, --format, --global-config, --help, --json, --local-config, --no-color, --non-interactive, --scope, --team, --token, --version.
```

Fix: Do not pass `--yes`: the priority command rejects it. Confirm the Priority charge in an interactive terminal or use the Vercel dashboard. ([source](https://vercel.com/docs/cli/release-notes#vercel@63.0.0))

Fix page: https://insidetheloop.dev/fixes/vercel-project-priority-requires-yes

### `vercel schedules enable --for` requires a duration unit (Vercel CLI 63.1.2)

```bash
vercel schedules enable test --for foo --token notarealtoken0000
```

```text
Vercel CLI 63.1.2 (Node.js 24.21.0) | schedules is in beta — https://vercel.com/feedback
✗ `--for` must be a duration such as 30m, 5h, or 10s.
```

Fix: Pass a duration with an explicit unit to `--for`, such as `2h`, `30m`, or `10s`. Invalid formats exit 2 before the scheduling request. ([source](https://www.npmjs.com/package/vercel/v/63.1.0))

### `vercel schedules enable --until` requires ISO 8601 or Unix milliseconds (Vercel CLI 63.1.2)

```bash
vercel schedules enable test --until foo --token notarealtoken0000
```

```text
Vercel CLI 63.1.2 (Node.js 24.21.0) | schedules is in beta — https://vercel.com/feedback
✗ `--until` must be an ISO 8601 time or Unix milliseconds.
```

Fix: Pass an ISO 8601 timestamp or Unix milliseconds to `--until`, such as `2026-10-10T18:00:00Z`. Invalid formats exit 2 before the scheduling request. ([source](https://www.npmjs.com/package/vercel/v/63.1.0))

### `vercel env add --visibility` is deprecated in favour of `--type` (Vercel CLI 63.1.2)

```bash
vercel env add API_URL production --value https://api.example.com --visibility config --yes --token notarealtoken0000
```

```text
Vercel CLI 63.1.2 (Node.js 24.21.0)
! `--visibility` is deprecated. Use `--type` instead.
Error: Your codebase isn’t linked to a project on Vercel. Run `vercel link` to begin.
```

Fix: Use `--type config` or `--type secret`. Vercel's own changelog post of 2026-08-24 still shows `--visibility`; it was in `--help` in 58.4.4 and replaced by `--type` by 61.1.0. Without any token the CLI stops at `No existing credentials found` before printing the warning. ([source](https://vercel.com/changelog/environment-variables-now-use-config-and-secret-types))

### Bad arguments now exit 2, not 1 (Vercel CLI 63.1.2)

```bash
vercel deploy --nosuchflag
```

```text
Vercel CLI 63.1.2 (Node.js 24.21.0)
✗ unknown or unexpected option: --nosuchflag
  Vercel CLI 63.1.2 accepts: --api, --archive, --build-env, --confirm, --cwd, --debug, --dry, --env, --force, --format, --global-config, --guidance, --help, --json, --local-config, --logs, --meta, --name, --no-clipboard, --no-color, --no-logs, --no-wait, --non-interactive, --prebuilt, --prod, --project, --regions, --scope, --skip-domain, --target, --team, --temporary, --token, --turbo, --version, --with-cache, --yes.
```

Fix: Update scripts and agent wrappers that check for exit code 1. The accepted-options list in the message is a quick way to see hidden flags such as `--confirm`, `--name` and `--no-clipboard`. ([source](https://vercel.com/docs/cli/release-notes#vercel@62.4.0))

### `vercel usage --from/--to` prints deprecation warnings (Vercel CLI 63.1.2)

```bash
vercel usage --from 2026-09-01 --to 2026-09-30 --token notarealtoken0000
```

```text
Vercel CLI 63.1.2 (Node.js 24.21.0)
WARNING! `--from` is deprecated, please use `--since` instead
WARNING! `--to` is deprecated, please use `--until` instead
Error: The token provided via `--token` argument is not valid. Please provide a valid token.
```

Fix: `--since`/`--until` (ISO 8601 or relative like `7d`) and `inspect`. The warnings go to stderr, so `--json` on stdout is unaffected, but log scrapers will see them. ([source](https://vercel.com/docs/cli/release-notes#vercel@62.5.0))

### `vercel webhooks get` prints a deprecation warning (Vercel CLI 63.1.2)

```bash
vercel webhooks get hook_123 --token notarealtoken0000
```

```text
Vercel CLI 63.1.2 (Node.js 24.21.0)
! `vercel webhooks get` is deprecated. Use `vercel webhooks inspect`.
Error: The token provided via `--token` argument is not valid. Please provide a valid token.
```

Fix: Use `vercel webhooks inspect`. The warning goes to stderr, so `--json` on stdout is unaffected, but log scrapers will see it. ([source](https://vercel.com/docs/cli/release-notes#vercel@62.5.0))

### `vercel routes export --format` is an unknown option (Vercel CLI 63.1.2)

```bash
vercel routes export --format ts --token notarealtoken0000
```

```text
Vercel CLI 63.1.2 (Node.js 24.21.0)
✗ unknown or unexpected option: --format
  Vercel CLI 63.1.2 accepts: --api, --cwd, --debug, --global-config, --help, --local-config, --no-color, --non-interactive, --output, --project, --scope, --team, --token, --version.
```

Fix: `vercel routes export --output ts` (changed in 56.0.0). ([source](https://vercel.com/docs/cli/release-notes#vercel@56.0.0))

### `vercel oauth-apps` no longer exists, though the docs list it (Vercel CLI 63.1.2)

```bash
vercel oauth-apps --help
```

```text
✗ Unknown command oauth-apps for vercel.

  See all commands:
    `vercel --help`
```

Fix: It was in 58.4.4 and is absent from every snapshot we took from 59.26.0 on; no release note mentions the removal. Manage Vercel Apps (OAuth) in the dashboard or through `vercel api`. ([source](https://vercel.com/docs/cli))

### `vercel deploy --dry` still needs credentials (Vercel CLI 63.1.2)

```bash
cd site && vercel deploy --dry
```

```text
Vercel CLI 63.1.2 (Node.js 24.21.0)
Error: No existing credentials found. Run `vercel deploy --temporary` to create a temporary deployment you can claim later, or `vercel login` to log in.
Learn More: https://err.sh/vercel/no-credentials-found
```

Fix: `--dry` skips the upload, not the login. In CI pass `--token` (or `VERCEL_TOKEN`). `--temporary` deploys without an account, but it does create a real, public deployment. ([source](https://vercel.com/changelog/dry-run-deployments-with-vercel-cli))

### Update notice in older CLIs links to a GitHub release that does not exist (Vercel CLI 58.4.4)

```bash
vercel env add API_URL production --value x --yes --token not-a-real-token   # on 58.4.4
```

```text
Vercel CLI 58.4.4 (Node.js 24.21.0)
Error: You defined "--token", but its contents are invalid. Must not contain: "-"
Learn More: https://err.sh/vercel/invalid-token-value
╭──────────────────────────────────────────────────────────────────────────────╮
│                                                                              │
│                     Update available! v58.4.4 ≫ v63.1.2                      │
│   Changelog: https://github.com/vercel/vercel/releases/tag/vercel%4063.1.2   │
│                     Run `npm i vercel@latest` to update.                     │
│                                                                              │
│             The latest update may fix any errors that occurred.              │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯
```

Fix: Read https://vercel.com/docs/cli/release-notes#vercel@63.1.2 instead. Upgrade with `npm i -g vercel@latest`. ([source](https://vercel.com/docs/cli/release-notes))

### `npm i vercel@59.6.0` fails: the version was never published (Vercel CLI 63.1.2)

```bash
npm i -g vercel@59.6.0
```

```text
npm error code ETARGET
npm error notarget No matching version found for vercel@59.6.0.
```

Fix: Install a version that exists (`npm view vercel versions --json`). Vercel's changelog says `vercel changelog` needs 59.6.0 or later; the first npm release at or after it is 59.6.2 (2026-08-26). ([source](https://vercel.com/changelog/you-can-now-read-and-search-changelogs-from-the-cli))

## Vercel CLI release history by month

### 2026-10: 62.1.0 to 63.1.2 (11 releases to 2026-10-09)

- 63.0.0 major: Password Protection requires interactive confirmation; Linux native packages marked glibc-only; `vercel project priority enable` added; service-hosted schedules in `vercel.json`. ([source](https://vercel.com/docs/cli/release-notes#vercel@63.0.0))
- 63.1.0: `vercel domains buy` and `renew` work non-interactively for agents; `vercel schedules enable` adds `--for` and `--until`. ([source](https://vercel.com/docs/cli/release-notes#vercel@63.1.0))
- 62.4.0: exit codes 0/1/2 (usage errors exit 2); 62.5.0: `--since`/`--until` and `inspect` replace `--from`/`--to` and `get`. ([source](https://vercel.com/docs/cli/release-notes#vercel@62.5.0))

### 2026-09: 59.11.0 to 62.0.0 (31 releases)

- Three majors: 60.0.0 (`vercel usage --json` format), 61.0.0 (Node.js 20 required), 62.0.0 (`traces search` across the team). ([source](https://vercel.com/docs/cli/release-notes#vercel@61.0.0))
- Sub-second static artifact deploys from 59.16.0; `vercel traces search` announced 2026-09-29. ([source](https://vercel.com/changelog/sub-second-artifact-deployments-are-now-supported-in-vercel-cli))
- Public repo synced for the last time on 2026-09-08; `CHANGELOG.md` there ends at 59.11.7. ([source](https://github.com/vercel/vercel/issues/17408))

### 2026-08: 58.5.1 to 59.10.0 (22 releases)

- First releases published from a private repository, without GitHub releases or npm provenance (from 58.5.1). ([source](https://github.com/vercel/vercel/issues/17408))
- 59.0.0 removed SIEM add-on purchases; env vars gained Config/Secret types (2026-08-24); `vercel vcr` and `vercel comments` arrived (2026-08-20). ([source](https://vercel.com/changelog/environment-variables-now-use-config-and-secret-types))
- `vercel changelog` (59.6.x) and new `dns update`, `domains renew`, `project pause/resume` commands (59.6.2). ([source](https://vercel.com/changelog/vercel-cli-expands-commands-for-dns-domains-and-projects))

### 2026-07: 54.18.7 to 58.4.4 (23 releases)

- 55.0.0: non-interactive linking needs an explicit team; 56.0.0: `routes export --output`. ([source](https://vercel.com/docs/cli/release-notes#vercel@55.0.0))
- `vercel deploy --dry` (2026-07-01) and faster, predictable project linking (2026-07-15). ([source](https://vercel.com/changelog/dry-run-deployments-with-vercel-cli))
- 58.4.4 (2026-07-30) is the last version with a GitHub release. ([source](https://github.com/vercel/vercel/releases/tag/vercel%4058.4.4))

### 2026-06: 54.7.0 to 54.18.6 (33 releases)

- CLI deployment limits removed (2026-06-17); domain search, request tracing, signed Blob URLs and DNS verification from the CLI. ([source](https://vercel.com/changelog/cli-deployment-limits-removed))

### 2026-05: 53.1.0 to 54.6.1 (17 releases)

- 54.0.0: `vercel logs` streams only with `--follow`; experimental native binaries (`@vercel/vc-native`, 2026-05-27). ([source](https://vercel.com/docs/cli/release-notes#vercel@54.0.0))
- `vercel metrics` (2026-05-05), `vercel firewall` (2026-05-12) and native `vercel curl` syntax (2026-05-15). ([source](https://vercel.com/changelog/vercel-metrics-in-cli))

## Sources

- [vercel on the npm registry (versions, publish times, dist-tags, engines, integrity)](https://registry.npmjs.org/vercel) (read 2026-10-10)
- [Vercel CLI release notes (vercel.com docs)](https://vercel.com/docs/cli/release-notes) (read 2026-10-10)
- [Vercel CLI release 63.1.2 on npm](https://www.npmjs.com/package/vercel/v/63.1.2) (read 2026-10-10)
- [Vercel CLI release 63.1.0 on npm](https://www.npmjs.com/package/vercel/v/63.1.0) (read 2026-10-10)
- [Vercel CLI release 63.0.0 on npm](https://www.npmjs.com/package/vercel/v/63.0.0) (read 2026-10-10)
- [Vercel CLI 63.1.0 integrity hash published by Vercel](https://vercel.com/docs/cli/release-notes/npm/63.1.0/integrity) (read 2026-10-10)
- [vercel/vercel releases (GitHub API; last `vercel@` tag 58.4.4)](https://api.github.com/repos/vercel/vercel/releases) (read 2026-10-10)
- [Issue #17408: why recent Vercel CLI releases have no npm provenance (private repo since 58.5.1)](https://github.com/vercel/vercel/issues/17408) (read 2026-10-10)
- [packages/cli/CHANGELOG.md in vercel/vercel (ends at 59.11.7)](https://github.com/vercel/vercel/blob/main/packages/cli/CHANGELOG.md) (read 2026-10-10)
- [Vercel CLI docs (install, update, command list)](https://vercel.com/docs/cli) (read 2026-10-10)
- [Vercel changelog: Environment variables now use Config and Secret types (2026-08-24)](https://vercel.com/changelog/environment-variables-now-use-config-and-secret-types) (read 2026-10-10)
- [Vercel changelog: read and search changelogs from the CLI (2026-09-09)](https://vercel.com/changelog/you-can-now-read-and-search-changelogs-from-the-cli) (read 2026-10-10)
- [Vercel changelog: sub-second artifact deployments in Vercel CLI (2026-09-17)](https://vercel.com/changelog/sub-second-artifact-deployments-are-now-supported-in-vercel-cli) (read 2026-10-10)
- [Vercel changelog: Vercel CLI expands commands for DNS, domains, and projects (2026-08-28)](https://vercel.com/changelog/vercel-cli-expands-commands-for-dns-domains-and-projects) (read 2026-10-10)
- [Vercel changelog feed (Atom), CLI entries May to October 2026](https://vercel.com/atom) (read 2026-10-10)
- [npm downloads API, vercel, week 2026-09-28 to 2026-10-04](https://api.npmjs.org/downloads/point/last-week/vercel) (read 2026-10-10)
- [vercel/vercel repository (stars, licence, last commit on main)](https://github.com/vercel/vercel) (read 2026-10-10)

_Last verified: 2026-10-10._
