From vercel-pack
Deploys and manages Vercel preview URLs for git branches and PRs using CLI, API, and status polling. Useful for PR testing before production and sharing previews.
How this skill is triggered — by the user, by Claude, or both
Slash command
/vercel-pack:vercel-deploy-previewThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Deploy preview environments for branches and pull requests. Every `git push` to a non-production branch generates a unique preview URL. Covers CLI-based previews, API-based previews, deployment protection, and comment integration.
Deploy preview environments for branches and pull requests. Every git push to a non-production branch generates a unique preview URL. Covers CLI-based previews, API-based previews, deployment protection, and comment integration.
vercel-install-auth setupvercel link# Deploy current directory to a preview URL (default — not --prod)
vercel
# Output:
# 🔗 Linked to your-team/my-app
# 🔍 Inspect: https://vercel.com/your-team/my-app/AbCdEfG
# ✅ Preview: https://my-app-git-feature-branch-your-team.vercel.app
# Deploy a specific directory
vercel ./dist
# Deploy and wait for build to complete (useful in CI)
vercel --no-wait # returns immediately with deployment URL
# Create a deployment via API — useful for custom CI pipelines
curl -X POST "https://api.vercel.com/v13/deployments" \
-H "Authorization: Bearer $VERCEL_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "my-app",
"target": "preview",
"gitSource": {
"type": "github",
"repoId": "123456789",
"ref": "feature/new-feature",
"sha": "abc123def456"
}
}'
# Poll deployment status until READY
curl -s -H "Authorization: Bearer $VERCEL_TOKEN" \
"https://api.vercel.com/v13/deployments/dpl_xxxxxxxxxxxx" \
| jq '{state: .state, url: .url, readyState: .readyState}'
# States: QUEUED → BUILDING → READY (or ERROR/CANCELED)
// Programmatic polling
async function waitForDeployment(client: VercelClient, deploymentId: string) {
while (true) {
const d = await client.getDeployment(deploymentId);
if (d.state === 'READY') return d;
if (d.state === 'ERROR' || d.state === 'CANCELED') {
throw new Error(`Deployment ${d.state}: ${deploymentId}`);
}
await new Promise(r => setTimeout(r, 5000)); // poll every 5s
}
}
# Add env vars scoped to preview only
vercel env add DATABASE_URL preview
# Enter value when prompted
# Or via API — scope to preview environment
curl -X POST "https://api.vercel.com/v9/projects/my-app/env" \
-H "Authorization: Bearer $VERCEL_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"key": "DATABASE_URL",
"value": "postgres://preview-db:5432/myapp",
"type": "encrypted",
"target": ["preview"]
}'
Vercel supports password-protecting preview deployments:
// vercel.json — require authentication for previews
{
"deploymentProtection": {
"preview": "vercel-authentication"
}
}
Options:
"vercel-authentication" — requires Vercel team login"standard-protection" — bypass for automation with x-vercel-protection-bypass headerWhen a GitHub repo is connected, Vercel automatically:
To configure in the Vercel dashboard:
# Ignored Build Step — skip deploy when only docs changed
# vercel.json
{
"ignoreCommand": "git diff HEAD^ HEAD --quiet -- . ':!docs' ':!*.md'"
}
| Branch | URL Pattern |
|---|---|
feature/auth | my-app-git-feature-auth-team.vercel.app |
fix/bug-123 | my-app-git-fix-bug-123-team.vercel.app |
| Random deploy | my-app-abc123def.vercel.app |
| Error | Cause | Solution |
|---|---|---|
BUILD_FAILED | Build command failed | Check build logs: vercel inspect <url> |
FUNCTION_INVOCATION_FAILED | Runtime error in function | Review function logs: vercel logs <url> |
NO_BUILDS | No output detected | Verify outputDirectory in vercel.json |
| Preview not updating | Cached old deployment | Force rebuild: vercel --force |
DEPLOYMENT_BLOCKED | Deployment protection active | Use x-vercel-protection-bypass header |
For edge function development, see vercel-edge-functions.
npx claudepluginhub jeremylongshore/claude-code-plugins-plus-skills --plugin vercel-packDeploys projects to Vercel as preview deployments, linking the project with git integration. Handles team selection and detects project state.
Deploys apps to Vercel via CLI: checks vercel version/login, runs production (`vercel --prod`) or preview (`vercel`) deploys, displays URLs/build status/logs. For deploy requests.
Sets up Vercel CI/CD with GitHub Actions for PR preview deployments, production deploys on main, secret management, and PR URL comments.