| name | Vercel CLI Management |
| description | Deploy, manage environment variables, view logs, and configure cron jobs with Vercel CLI. Use when deploying to Vercel, managing env vars (add/update/remove), viewing runtime/build logs, or configuring scheduled tasks in vercel.json. |
Vercel CLI Management
Master Vercel CLI for deployments, environment variable management, log viewing, and cron job configuration.
Quick Reference
Deployment
vercel
vercel deploy --prod
vercel --prod
vercel deploy --force
vercel deploy --env NODE_ENV=production -e API_KEY=secret
vercel build
vercel deploy --prebuilt
vercel redeploy <deployment-url-or-id>
vercel promote <deployment-url-or-id>
vercel rollback <deployment-url-or-id>
vercel list
vercel inspect <deployment-url-or-id>
vercel remove <deployment-id>
Environment Variables
List
vercel env list
vercel env list production
vercel env list preview
vercel env list development
vercel env list production main
Add
vercel env add MY_VAR
vercel env add API_TOKEN production
vercel env add SECRET_KEY --sensitive
vercel env add MY_VAR --force
vercel env add DB_URL production main
Update
vercel env update MY_VAR
vercel env update API_TOKEN production
cat ~/.npmrc | vercel env update NPM_RC production
vercel env update CONFIG production < config.json
vercel env update SECRET_KEY --sensitive
Remove
vercel env remove API_TOKEN
vercel env remove SECRET_KEY production
vercel env remove API_TOKEN -y
vercel env remove DB_URL production main
Pull to Local
vercel env pull
vercel env pull .env.development.local
vercel env pull .env.production --environment production
Logs
Runtime Logs (live application logs)
vercel logs <deployment-url-or-id>
vercel logs jupiter-qhb0ke91n-captaincrouton89s-projects.vercel.app
vercel logs <deployment-url-or-id> --json
vercel logs <deployment-url-or-id> --json | jq 'select(.level == "error")'
Build Logs (compilation + deployment)
vercel inspect <deployment-url-or-id> --logs
vercel inspect <deployment-url-or-id> --logs --wait
vercel inspect <deployment-url-or-id> --logs --timeout 90s
Cron Jobs
Cron jobs are configured in vercel.json only—there are no CLI commands for management.
Configuration (vercel.json)
{
"crons": [
{
"path": "/api/cron/email-sync",
"schedule": "*/5 * * * *"
},
{
"path": "/api/cron/weekly-digest",
"schedule": "0 0 * * 1"
},
{
"path": "/api/cron/cleanup",
"schedule": "0 2 * * *"
}
]
}
Cron Expression Format (standard cron syntax, UTC timezone)
minute (0-59) hour (0-23) day-of-month (1-31) month (1-12) day-of-week (0-6)
Examples
*/5 * * * * Every 5 minutes
0 */4 * * * Every 4 hours
0 0 * * * Daily at midnight UTC
0 9 * * 1 Every Monday at 9 AM UTC
0 0 1 * * First day of month
0 0 * * 0 Every Sunday
Important Constraints
- Cannot use both day-of-month AND day-of-week; one must be
*
- No text alternatives (MON, SUN, JAN, DEC not supported)
- All times in UTC
- Cron jobs make GET requests to your deployment with
vercel-cron/1.0 user agent
Verify Crons
- Modify
vercel.json and redeploy: vercel deploy --prod
- View status in dashboard: Project → Settings → Cron Jobs
- Monitor logs:
vercel logs <deployment-url>
Common Workflows
Deploy with Environment Variables
Interactive
vercel env add NODE_ENV
vercel env add LOG_LEVEL
vercel deploy --prod
Command Line
vercel deploy --prod -e NODE_ENV=production -e LOG_LEVEL=debug
Fix Failed Deployment
vercel inspect <deployment-id> --logs
vercel deploy --prod
vercel redeploy <deployment-id> --target production
vercel rollback <deployment-id>
Monitor Live Application
vercel logs my-app-xyz.vercel.app
vercel logs my-app-xyz.vercel.app --json | jq 'select(.level == "error")'
vercel logs my-app-xyz.vercel.app --json | jq 'select(.path == "/api/cron/email-sync")'
Environment Variable Workflow
vercel env add DATABASE_URL production
vercel env add API_KEY production --sensitive
vercel env pull .env.local
vercel env update API_KEY production
vercel env remove OLD_TOKEN -y
Debug Cron Jobs
cat vercel.json
vercel deploy --prod
vercel logs <deployment-url> --json | jq 'select(.path == "/api/cron/your-route")'
Important Notes
Deployment Targets
- Production: Assigned to project domains, no live preview
- Preview: Auto-generated URL, live preview before promoting
- Development: Local testing with
vercel dev
Environment Scopes
production - Production environment
preview - Preview/staging deployments
development - Local .env.local file
- Git branches - Specific branch overrides
API Rate Limits
- Check dashboard for per-team limits
- Redeploys and promotions may have separate limits
User Agent Detection for Crons
- Vercel cron requests include:
User-Agent: vercel-cron/1.0
- Use for authentication:
if (req.headers['user-agent'] === 'vercel-cron/1.0')
Examples from Real Projects
Jupiter Mail Project
{
"crons": [
{
"path": "/api/cron/email-sync",
"schedule": "*/5 * * * *"
},
{
"path": "/api/cron/weekly-digest",
"schedule": "0 0 * * 1"
},
{
"path": "/api/cron/delete-old-emails",
"schedule": "0 0 * * *"
}
]
}
Deploy with: vercel deploy --prod