New to Claude Skills? Learn how to install them →

vercel on GitHub

Vercel CLI

OfficialFree

Manage and deploy Vercel projects from the command line.

by vercel16.1k stars on vercel/vercel
1 views
Updated Aug 3, 2026
Get this skill

Free · Opens the source repo

What Vercel CLI does

The Vercel CLI (vercel or vc) is a command line interface designed for deploying, managing, and developing projects hosted on the Vercel platform. It provides a comprehensive set of commands that allow developers to perform a variety of tasks directly from the terminal, including deploying applications, inspecting project settings, and troubleshooting issues. Users can execute commands like vercel deploy for production or preview deployments, and vercel dev for local development, streamlining the workflow for Vercel-based projects.

For effective project management, the CLI requires careful handling of project context. Commands such as vercel project inspect --non-interactive help confirm the correct project is being targeted, especially in environments with multiple projects or monorepos. The CLI also includes options for managing environment variables, domains, and DNS settings, as well as monitoring logs and performance metrics. This makes it a valuable tool for developers looking to maintain control over their deployment processes and project configurations.

The Vercel CLI is particularly beneficial for teams working in CI/CD environments, as it supports automation through non-interactive commands and JSON output for error reporting. This allows for seamless integration into automated workflows, ensuring that deployments can be managed without manual intervention. Additionally, the CLI provides robust support for advanced features like rolling releases, custom environments, and integrations with third-party services, making it a versatile choice for modern development practices.

Overall, the Vercel CLI is an essential tool for developers and teams who utilize Vercel for their web applications. It enhances productivity by providing a powerful command line interface that simplifies deployment and management tasks, allowing users to focus on building and improving their projects.

When to use it

Use this tool when you need to deploy or manage Vercel projects directly from the command line, especially in CI/CD workflows.

When not to use it

Avoid this tool if you are not using Vercel for your projects or prefer a graphical interface for deployment management.

What you can build with it

Deploying a New Project

Use the `vercel deploy` command to quickly deploy a new project to Vercel, enabling instant previews and production deployments.

Managing Environment Variables

Utilize the CLI to add or update environment variables for your Vercel projects, ensuring your applications have the necessary configurations.

Inspecting Project Settings

Run `vercel project inspect --non-interactive` to verify project settings and confirm the correct project context before executing commands.

How to install Vercel CLI

View source

1. Install with the skills CLI

npx skills add vercel/vercel/vercel-cli --agent claude-code

2. Or install it manually

Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.

Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs

Inside SKILL.md

Written by vercel

Vercel CLI Skill

The Vercel CLI (vercel or vc) deploys, manages, and develops projects on the Vercel platform from the command line. Use vercel <command> --help for full flag details on any command.

The installed CLI help is the source of truth for obscure or newly added flags. If a command example here is not enough, check vercel <command> --help before acting instead of guessing.

Parse only stdout for URLs and JSON. Warnings, progress, and --help print to stderr; merge streams only when searching help text. Some help commands exit 2 after printing usage, so treat printed usage as a successful help read.

In agent/non-interactive mode, many commands report errors and required confirmations as a single JSON object on stdout with status, reason, hint, and next (runnable follow-up commands). Prefer a suggested next command over composing a retry only after confirming that it preserves the user's intended target and authorization; do not automatically run linking, authentication, or mutation follow-ups. Read commands such as list, logs, inspect, and api keep their normal output shape.

Critical: Project Linking

Project context depends on the command's working directory. Before a consequential read or mutation, run vercel project inspect --non-interactive from the intended directory and confirm the reported owner and project. This command resolves only existing context in non-interactive mode; stop on link_required or a target mismatch instead of linking automatically.

Many project-aware commands also accept --project <name-or-id> with --scope <team> for an explicit, one-command target. Confirm that target and scope preserve the user's intent before using them.

  • <cwd>/.vercel/project.json: Created by vercel link. This exact working-directory link wins over a repository link. The CLI does not generally inherit a root project.json when run from an arbitrary subdirectory.
  • <repo-root>/.vercel/repo.json: Created by vercel link --repo. The CLI selects the deepest project directory that contains the working directory.
  • Unmatched repository path: If no repo mapping contains the working directory, interactive repo resolution prompts among the configured projects. Non-interactive repo resolution currently selects the only configured project or remains unresolved when multiple choices exist. Commands that set up projects may then enter a linking flow, so non-interactive mode is not generally fail-closed.

Being inside an app directory is not proof that the intended project was selected. Check the resolved project explicitly, especially when a repo mapping does not cover that directory.

vercel whoami --format json identifies the authenticated user and effective team; plain non-TTY vercel whoami prints only the username. Neither verifies the linked project. Read-only project commands can still require login or team SAML re-authentication and open a browser/device flow. Ask the user to complete that flow deliberately before continuing.

Quick Start

npm i -g vercel
vercel login
vercel link              # single project
# OR
vercel link --repo       # monorepo
vercel pull
vercel dev        # local development
vercel deploy     # preview deployment
vercel --prod     # production deployment

Decision Tree

Use this to route to the correct reference file:

  • Deploy, redeploy, forced builds, no-cache builds, or deployment source/provenancereferences/deployment.md
  • Rolling releases, deploy hooks, cron jobs, cache, git connection, Edge Config, redirects, custom environmentsreferences/project-infra.md
  • Local developmentreferences/local-development.md
  • Environment variablesreferences/environment-variables.md
  • CI/CD automationreferences/ci-automation.md
  • Domains or DNSreferences/domains-and-dns.md
  • Projects or teamsreferences/projects-and-teams.md
  • Build failures, deployment errors, logs, metrics, Speed Insights, Core Web Vitals, activity, performance, preview access, or production debuggingreferences/monitoring-and-debugging.md
  • Alerts, usage, contracts, billing purchases, tokens, telemetry, or CLI upgradesreferences/platform-ops.md
  • Blob storagereferences/storage.md
  • Container Registry (vercel vcr: repositories, images, tags, docker/podman/buildah login, push/pull)references/container-registry.md
  • Integrations (databases, storage, etc.)references/integrations.md
  • Connectors (vercel connect)references/connectors.md
  • Routing rulesreferences/routing.md
  • Firewall (WAF rules, IP blocks, rate limiting)references/firewall.md
  • Access a preview deployment → use vercel curl (see references/monitoring-and-debugging.md)
  • CLI command is unavailable or output is missing required fields → use vercel api after first-class CLI paths are unavailable or insufficient (see references/advanced.md)
  • Node.js backends (Express, Hono, etc.)references/node-backends.md
  • Monorepos (Turborepo, Nx, workspaces)references/monorepos.md
  • Bun runtimereferences/bun.md
  • Feature flagsreferences/flags.md
  • Microfrontendsreferences/microfrontends.md
  • Sandboxreferences/sandbox.md
  • Agent, MCP, skills discovery, or AI Gatewayreferences/agent-and-ai.md
  • Captured request traces (vercel traces, including --open / --view)references/advanced.md
  • Vercel Apps / OAuth apps (vercel oauth-apps)references/advanced.md
  • Advanced (vercel api fallback, webhooks)references/advanced.md
  • Global flagsreferences/global-options.md
  • First-time setupreferences/getting-started.md

Anti-Patterns

  • Wrong link type in monorepos with multiple projects: vercel link creates project.json, which only tracks one project. Use vercel link --repo instead. When things break, check .vercel/ first.
  • Letting commands auto-link in monorepos: Many commands implicitly run vercel link if .vercel/ doesn't exist. This creates project.json, which may be wrong. Run vercel link (or --repo) explicitly first.
  • Assuming an app subdirectory determines the project: Verify with vercel project inspect --non-interactive; an unmatched repo path can currently fall back to the sole configured project in non-interactive mode.
  • Using vercel whoami as linked-project verification: vercel whoami --format json reports authentication and team context, not the selected project.
  • Forgetting non-interactive flags in plain CI runs: detected agents get --non-interactive by default, but plain CI does not — pass it explicitly there, and add --yes only for commands that require confirmation.
  • Using vercel deploy after vercel build without --prebuilt: The build output is ignored.
  • Using vercel redeploy for no-cache rebuilds: vercel redeploy does not expose a no-cache flag; use vercel deploy --force without --with-cache when you need a fresh deployment that does not retain build cache.
  • Hardcoding tokens in flags: Use VERCEL_TOKEN env var instead of --token.
  • Disabling deployment protection: Use vercel curl instead to access preview deploys.
  • Using vercel api too early: Prefer first-class CLI commands when they expose the needed data or mutation.

Frequently asked questions about Vercel CLI

Similar skills