Skip to main content

vercel-cli

Vercel CLI expert guidance. Use when deploying, managing environment variables, linking projects, viewing logs, managing domains, or interacting with the Vercel platform from the command line.

Source facts

Repository
zhongjingyun/codex-plugins
Last source activity
June 10, 2026 at 03:40
Detected SKILL.md language
English
Stars
22
Forks
2

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
2 files

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
vercel-cli
description
Vercel CLI expert guidance. Use when deploying, managing environment variables, linking projects, viewing logs, managing domains, or interacting with the Vercel platform from the command line.
metadata
{"priority":4,"docs":["https://vercel.com/docs/cli"],"sitemap":"https://vercel.com/sitemap/docs.xml","pathPatterns":["vercel.json","vercel.ts",".vercel/**",".vercelignore","now.json"],"bashPatterns":["^\\s*vercel(?:\\s|$)","^\\s*vc(?:\\s|$)","\\bnpx\\s+vercel\\b","\\bpnpm\\s+dlx\\s+vercel\\b","\\bbunx\\s+vercel\\b","\\byarn\\s+dlx\\s+vercel\\b","\\bnpx\\s+@vercel/config\\b"],"promptSignals":{"phrases":["check deployment","check deploy","deployment status","deploy status","vercel logs","deployment logs","deploy logs","vercel inspect","is it deployed","deploy failing","deploy failed","deployment error","check vercel","vercel status"],"allOf":["[Truncated]","[Truncated]","[Truncated]","[Truncated]","[Truncated]","[Truncated]","[Truncated]"],"anyOf":["deployment","deploy","vercel","production"],"noneOf":["terraform","aws deploy","heroku"],"minScore":6}}
# Vercel CLI You are an expert in the Vercel CLI v50.28.0 (`vercel` or `vc`). The CLI is the primary way to manage Vercel projects from the terminal. ## Installation ```bash npm i -g vercel ``` ## Login The CLI uses an **OAuth 2.0 Device Flow** for authentication. ```bash vercel login ``` > **Deprecation notice**: Email-based login (`vercel login your@email.com`) and the flags `--github`, `--gitlab`, `--bitbucket`, `--oob` were removed February 26, 2026. The `team` method (SAML-based login) remains supported until June 1, 2026, then will also be removed. ## Core Commands ### Deployment ```bash # Preview deployment (from project root) vercel # Production deployment vercel --prod # Build locally, deploy build output only vercel build vercel deploy --prebuilt # Build for production (uses production env vars) vercel build --prod vercel deploy --prebuilt --prod # Force a new deployment (skip cache) vercel --force # Promote a preview deployment to production vercel promote <deployment-url> # Rollback to previous production deployment vercel rollback ``` ### Development ```bash # Start local dev server with Vercel features vercel dev # Link current directory to a Vercel project vercel link # Deterministic non-interactive link (recommended for bootstrap/automation) vercel link --yes --project <name-or-id> --scope <team> # Pull environment variables and project settings vercel pull # Pull specific environment vercel pull --environment=production # Open linked project in the Vercel Dashboard vercel open ``` ### Deterministic Project Linking (Recommended) Prefer explicit non-interactive linking for bootstrap and automation: ```bash vercel link --yes --project <name-or-id> --scope <team> ``` This is more reliable than interactive prompt-driven linking, which can pick the wrong project or team in multi-account setups. If there is any ambiguity, run `vercel open` to confirm the dashboard project, then relink with explicit `--project` and `--scope`. ### Environment Variables ```bash # List all environment variables vercel env ls # Add an environment variable vercel env add MY_VAR # Add for specific environments vercel env add MY_VAR production vercel env add MY_VAR preview development # Add branch-scoped variable vercel env add MY_VAR preview --branch=feature-x # Add sensitive (write-only) variable vercel env add MY_SECRET --sensitive # Remove an environment variable vercel env rm MY_VAR # Pull all env vars to .env.local vercel env pull vercel env pull .env.production.local --environment=production ``` ### Logs & Inspection The `vercel logs` command (rebuilt February 2026) supports **historical log querying** and uses **git context by default** — it automatically scopes logs to your current repository when run from a project directory. ```bash # View runtime/function logs (real-time) vercel logs <deployment-url> # Follow logs in real-time (streaming mode) vercel logs <deployment-url> --follow # Query historical logs (no longer limited to live-only) vercel logs --since 24h vercel logs --since 7d # Filter by time range vercel logs <deployment-url> --since 1h vercel logs <deployment-url> --since 30m # Filter by log level vercel logs <deployment-url> --level error vercel logs <deployment-url> --level warning # Filter by deployment ID, request ID, or arbitrary string vercel logs --deployment-id dpl_xxxxx vercel logs --request-id req_xxxxx vercel logs --query "TypeError" # Output as JSON (for piping to jq or other tools) vercel logs <deployment-url> --json # Combine filters: stream errors from the last hour as JSON vercel logs <deployment-url> --follow --since 1h --level error --json # Inspect a deployment (build details, metadata, function list) vercel inspect <deployment-url> # List recent deployments vercel ls ``` > **Note:** `vercel logs` shows runtime request logs only. For build output, use > `vercel inspect <deployment-url>` or view build logs at `https://vercel.com/{team}/{project}/deployments` → select deployment → **Build Logs**. > > **Drains and advanced observability:** Log drains, trace export, and analytics data forwarding are > configured via the Vercel Dashboard at `https://vercel.com/dashboard/{team}/~/settings/log-drains` or REST API (`/v1/drains`), not the CLI. See `⤳ skill: observability` > for drain setup, payload schemas, and signature verification. ### Domains ```bash # List domains vercel domains ls # Add a domain to a project vercel domains add example.com # Remove a domain vercel domains rm example.com ``` ### DNS ```bash # List DNS records vercel dns ls example.com # Add a DNS record vercel dns add example.com @ A 1.2.3.4 ``` ### Teams ```bash # List teams vercel teams ls # Switch to a team vercel teams switch my-team ``` ### Cache Management ```bash # Purge all cache (CDN + Data cache) for current project vercel cache purge # Purge only CDN cache vercel cache purge --type cdn # Purge only Data cache vercel cache purge --type data # Purge without confirmation prompt vercel cache purge --yes # Invalidate by tag (stale-while-revalidate) vercel cache invalidate --tag blog-posts # Invalidate multiple tags vercel cache invalidate --tag blog-posts,user-profiles,homepage # Hard delete by tag (blocks until revalidated — use with caution) vercel cache dangerously-delete --tag blog-posts # Hard delete with revalidation deadline (deletes only if not accessed within N seconds) vercel cache dangerously-delete --tag blog-posts --revalidation-deadline-seconds 3600 # Invalidate cached image transformations by source path vercel cache invalidate --srcimg /api/avatar/1 # Hard delete cached image transformations vercel cache dangerously-delete --srcimg /api/avatar/1 ``` **Key distinction:** `invalidate` serves STALE and revalidates in the background. `dangerously-delete` serves MISS and blocks while revalidating. Prefer `invalidate` unless you need immediate freshness. **Note:** `--tag` and `--srcimg` cannot be used together. ### MCP Server Integration ```bash # Initialize global MCP client configuration for your Vercel account vercel mcp # Set up project-specific MCP access for the linked project vercel mcp --project ``` The `vercel mcp` command links your local MCP client configuration to a Vercel Project. It generates connection details so AI agents and tools can call your MCP endpoints deployed on Vercel securely. ### Programmatic Configuration (`@vercel/config`) ```bash # Compile vercel.ts to JSON (stdout) npx @vercel/config compile # Validate configuration and show summary npx @vercel/config validate # Generate vercel.json locally for development npx @vercel/config generate ``` Use `vercel.ts` (or `.js`, `.mjs`, `.cjs`, `.mts`) instead of `vercel.json` for type-safe, dynamic project configuration. Only one config file per project — `vercel.json` or `vercel.ts`, not both. > **Note:** Legacy `now.json` support will be removed on March 31, 2026. Rename to `vercel.json` (no content changes needed). ### Marketplace Integrations Auto-provisioning is the default for `vercel integration add` — the CLI automatically creates resources and sets environment variables without extra prompts. ```bash # List installed integrations vercel integration list # Add an integration (auto-provisions env vars by default) vercel integration add neon # Open an integration's dashboard vercel integration open neon # Remove an integration vercel integration remove neon ``` #### Agent-Optimized: `discover` and `guide` AI agents can autonomously discover, install, and retrieve setup instructions for Marketplace integrations (added March 2026): ```bash # Search the integration catalog (returns JSON for automation) vercel integration discover --format=json # Search with a keyword filter vercel integration discover database --format=json # Get agent-friendly setup guide with code snippets vercel integration guide neon # Full workflow: discover → add → guide vercel integration discover storage --format=json vercel integration add neon vercel integration guide neon ``` - `discover` — Searches the Vercel Marketplace catalog. Use `--format=json` for non-interactive output suitable for scripting and agent pipelines. - `guide <name>` — Returns getting-started documentation in agent-friendly markdown: environment variables, SDK setup, and code snippets. - Human-in-the-loop safety: the CLI prompts for developer confirmation when accepting Terms of Service. > Full subcommands: `discover`, `guide`, `add`, `list` (alias `ls`), `balance`, `open`, `remove`. ### Project-Level Routing (No Redeploy) Create and update routing rules — headers, rewrites, redirects — without building a new deployment. Rules take effect instantly. Available via dashboard (CDN tab), API, CLI, and Vercel SDK. Project-level routes run after bulk redirects and before deployment config routes. ### Feature Flags ```bash # Create a feature flag vercel flags add redesigned-checkout --kind boolean --description "New checkout flow" # List SDK keys vercel flags sdk-keys ls # Enable/disable, archive, and manage flags from CLI vercel flags --help ``` See `⤳ skill: vercel-flags` for full flag configuration and adapter patterns. ### Direct API Access The `vercel api` command (added January 2026) gives direct access to the full Vercel REST API from the terminal. Designed for AI agents — call Vercel APIs with no additional configuration. ```bash # Call any Vercel REST API endpoint vercel api GET /v9/projects vercel api GET /v13/deployments vercel api POST /v9/projects/:id/env --body '{"key":"MY_VAR","value":"val","target":["production"]}' # Pipe JSON output to jq vercel api GET /v9/projects | jq '.[].name' ``` ### Metrics ```bash # Query project metrics (rich text output with sparklines) vercel metrics # Raw values for scripting vercel metrics --raw-values ``` ## CI/CD Integration Required environment variables for CI: ```bash VERCEL_TOKEN=<your-token> VERCEL_ORG_ID=<org-id> VERCEL_PROJECT_ID=<project-id> ``` ### GitHub Actions Example ```yaml - name: Deploy to Vercel run: | vercel pull --yes --environment=production --token=${{ secrets.VERCEL_TOKEN }} vercel build --prod --token=${{ secrets.VERCEL_TOKEN }} vercel deploy --prebuilt --prod --token=${{ secrets.VERCEL_TOKEN }} ``` ## Global Options | Flag | Purpose | |------|---------| | `--token` | Authentication token (for CI) | | `--cwd <dir>` | Working directory | | `--debug` / `-d` | Verbose output | | `--yes` / `-y` | Skip confirmation prompts | | `--scope <team>` | Execute as a team | ## Common Workflows ### First-Time Setup ```bash vercel link # Connect to Vercel project vercel env pull # Get environment variables vercel dev # Start local dev ``` ### Deploy from CI ```bash vercel pull --yes --environment=production --token=$TOKEN vercel build --prod --token=$TOKEN vercel deploy --prebuilt --prod --token=$TOKEN ``` ### Quick Preview ```bash vercel # Creates preview deployment, returns URL ``` ## Official Documentation - [Vercel CLI](https://vercel.com/docs/cli) - [Cache Management](https://vercel.com/docs/cli/cache) - [MCP Integration](https://vercel.com/docs/cli/mcp) - [Deployments](https://vercel.com/docs/deployments) - [REST API](https://vercel.com/docs/rest-api/reference) - [GitHub: Vercel CLI](https://github.com/vercel/vercel)
View on GitHub