vercel-cli
Command-line interface for deploying, managing, and developing Vercel projects locally and in CI/CD pipelines.
- Requires explicit project linking via
vercel link(single project) orvercel link --repo(monorepos); commands must run from the directory containing.vercel/folder - Core workflows:
vercel devfor local development,vercel deployfor preview deployments,vercel --prodfor production - Supports environment variables, domains, DNS, blob storage, integrations, Node.js backends, monorepos, Bun runtime, and feature flags through dedicated command categories
- Includes
vercel apias a fallback for operations without direct CLI commands, andvercel curlfor accessing preview deployments without disabling protection
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> -h for full flag details on any command.
Critical: Project Linking
Commands must be run from the directory containing the .vercel folder (or a subdirectory of it). How .vercel gets set up depends on your project structure:
.vercel/project.json: Created byvercel link. Links a single project. Fine for single-project repos, and can work in monorepos if there's only one project..vercel/repo.json: Created byvercel link --repo. Links a repo that may contain multiple projects. Always a good idea when any project has a non-root directory (e.g.,apps/web).
Running from a project subdirectory (e.g., apps/web/) skips the "which project?" prompt since it's unambiguous.
When something goes wrong, check how things are linked first — look at what's in .vercel/ and whether it's project.json or repo.json. Also verify you're on the right team with vercel whoami — linking while on the wrong team is a common mistake.
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 →
references/deployment.md - Local development →
references/local-development.md - Environment variables →
references/environment-variables.md - CI/CD automation →
references/ci-automation.md - Domains or DNS →
references/domains-and-dns.md - Projects or teams →
references/projects-and-teams.md - Logs, debugging, or accessing preview deploys →
references/monitoring-and-debugging.md - Blob storage →
references/storage.md - Integrations (databases, storage, etc.) →
references/integrations.md - Routing rules →
references/routing.md - Access a preview deployment → use
vercel curl(seereferences/monitoring-and-debugging.md) - CLI doesn't have a command for it → use
vercel apias a fallback (seereferences/advanced.md) - Node.js backends (Express, Hono, etc.) →
references/node-backends.md - Monorepos (Turborepo, Nx, workspaces) →
references/monorepos.md - Bun runtime →
references/bun.md - Feature flags →
references/flags.md - Advanced (API, webhooks) →
references/advanced.md - Global flags →
references/global-options.md - First-time setup →
references/getting-started.md
Anti-Patterns
- Wrong link type in monorepos with multiple projects:
vercel linkcreatesproject.json, which only tracks one project. Usevercel link --repoinstead. When things break, check.vercel/first. - Letting commands auto-link in monorepos: Many commands implicitly run
vercel linkif.vercel/doesn't exist. This createsproject.json, which may be wrong. Runvercel link(or--repo) explicitly first. - Linking while on the wrong team: Use
vercel whoamito check,vercel teams switchto change. - Forgetting
--yesin CI: Required to skip interactive prompts. - Using
vercel deployaftervercel buildwithout--prebuilt: The build output is ignored. - Hardcoding tokens in flags: Use
VERCEL_TOKENenv var instead of--token. - Disabling deployment protection: Use
vercel curlinstead to access preview deploys.