/status
Show the status of the current Vercel project — recent deployments, linked project info, and environment overview.
> /plugin marketplace add vercel-labs/vercel-plugin > /plugin install vercel-plugin@vercel
How it fires
How this command gets triggered: by you, by Claude, or both.
- Fires itselfClaude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/status
Context preview
What this command does when you run it.
Show the status of the current Vercel project — recent deployments, linked project info, and environment overview.
Command definition
status.mddescription: Show the status of the current Vercel project — recent deployments, linked project info, and environment overview.
Vercel Project Status (Doctor)
Comprehensive project health check. Diagnoses deployment state, environment configuration, domains, and build status.
Preflight
1. Check for `.vercel/project.json` in the current directory (or nearest parent).
- **If found**: read `projectId` and `orgId` to confirm linkage. Print project name.
- **If not found**: print a clear message:
> This project is not linked to Vercel. Run `vercel link` to connect it, then re-run `/status`. Stop here — remaining steps require a linked project. **Do NOT fall back to GitHub Actions (`gh run list`) or any other CI system.** The Vercel CLI is the only authoritative source for this command. 2. Verify `vercel` CLI is available on PATH. If missing, suggest `npm i -g vercel`. 3. Detect monorepo markers (`turbo.json`, `pnpm-workspace.yaml`). If present, note which package scope is active.
Plan
Gather project diagnostics using MCP reads where available, CLI as fallback:
1. Fetch recent deployments (last 5). 2. Inspect the latest deployment for build status and metadata. 3. List environment variables per environment (counts only — never print values). 4. Check domain configuration and status. 5. Read `vercel.json` for configuration highlights.
No destructive operations — this command is read-only.
Commands
1. Recent Deployments
vercel ls
> **Note:** `vercel ls` does not support `--limit`. It returns recent deployments by default.
Extract: deployment URL, state (READY / ERROR / BUILDING), target (production / preview), created timestamp.
2. Latest Deployment Inspection
vercel inspect <latest-deployment-url>
Extract: build duration, function count, region, framework detected, Node.js version.
3. Environment Variable Counts
vercel env ls
Count variables per environment (Production, Preview, Development). **Never echo variable values.**
Present as:
| Environment | Count | |-------------|-------| | Production | N | | Preview | N | | Development | N |
4. Domain Status
vercel domains ls
For each domain: name, DNS configured (yes/no), SSL valid (yes/no).
5. Configuration Highlights
Read `vercel.json` (if present) and summarize:
- Framework preset
- Build command overrides
- Function configuration (runtime, memory, duration)
- Rewrites / redirects count
- Cron jobs defined
- Headers or middleware config
If `vercel.json` does not exist, note "No vercel.json found — using framework defaults."
6. Observability Diagnostics
Check the project's observability posture — drains, error monitoring, analytics instrumentation, and drain security.
6a. Drains Configured?
Use MCP `list_drains` if available, or the REST API:
curl -s -H "Authorization: Bearer $VERCEL_TOKEN" \
"https://api.vercel.com/v1/drains?teamId=$TEAM_ID" | jq '.drains | length'
- **If drains exist**: list drain count, types (JSON/NDJSON/Syslog), and statuses.
- **If zero drains**: note "No drains configured" and flag as a gap for production observability.
6b. Errored Drains?
For each drain returned, check the status field. If any drain shows an error or disabled state:
⚠️ Drain "<drain-url>" is in error state.
Remediation:
1. Verify the endpoint URL is reachable and returns 2xx.
2. Check that the endpoint accepts the configured format (JSON/NDJSON/Syslog).
3. Test the drain: POST /v1/drains/<drain-id>/test
4. If unrecoverable, delete and recreate the drain.
6c. Analytics Instrumentation Present?
Scan the project source for `@vercel/analytics` and `@vercel/speed-insights` imports:
- Check `package.json` dependencies for `@vercel/analytics` and `@vercel/speed-insights`.
- If missing either package, flag:
> Analytics/Speed Insights not detected. Install `@vercel/analytics` and `@vercel/speed-insights` and add the components to your root layout.
6d. Drain Signature Verification
Vercel signs every drain payload with an HMAC-SHA1 signature in the `x-vercel-signature` header. **Always verify signatures in production** to prevent spoofed data.
> **Critical:** You must verify against the **raw request body** (not a parsed/re-serialized version). JSON parsing and re-stringifying can change key order or whitespace, breaking the signature match.
import { createHmac, timingSafeEqual } from 'crypto'
function verifyDrainSignature(rawBody: string, signature: string, secret: string): boolean {
const expected = createHmac('sha1', secret).update(rawBody).digest('hex')
// Use timing-safe comparison to prevent timing attacks
if (expected.length !== signature.length) return false
return timingSafeEqual(Buffer.from(expected), Buffer.from(signature))
}Usage in a drain endpoint:
// app/api/drain/route.ts
export async function POST(req: Request) {
const rawBody = await req.text()
const signature = req.headers.get('x-vercel-signature')
const secret = process.env.DRAIN_SECRET!
if (!signature || !verifyDrainSignature(rawBody, signature, secret)) {
return new Response('Unauthorized', { status: 401 })
}
const events = JSON.parse(rawBody)
// Process verified events...
return new Response('OK', { status: 200 })
}> **Secret management:** The drain signing secret is shown once when you create the drain. Store it in an environment variable (e.g., `DRAIN_SECRET`). If lost, delete and recreate the drain.
Check whether the project has a `DRAIN_SECRET` env var set via `vercel env ls`. If drains are configured but no signature secret is found, flag as a security gap.
6e. Fallback Guidance (No Drains)
If drains are unavailable (Hobby plan or not yet configured), use these alternatives:
| Need | Alternative | How | |------|-------------|-----| | View runtime logs | **Vercel Dashboard** | `https://vercel.com/{team}/{project}/deployments`
Read more
description: Show the status of the current Vercel project — recent deployments, linked project info, and environment overview.
Vercel Project Status (Doctor)
Comprehensive project health check. Diagnoses deployment state, environment configuration, domains, and build status.
Preflight
1. Check for `.vercel/project.json` in the current directory (or nearest parent).
- **If found**: read `projectId` and `orgId` to confirm linkage. Print project name.
- **If not found**: print a clear message:
> This project is not linked to Vercel. Run `vercel link` to connect it, then re-run `/status`. Stop here — remaining steps require a linked project. **Do NOT fall back to GitHub Actions (`gh run list`) or any other CI system.** The Vercel CLI is the only authoritative source for this command. 2. Verify `vercel` CLI is available on PATH. If missing, suggest `npm i -g vercel`. 3. Detect monorepo markers (`turbo.json`, `pnpm-workspace.yaml`). If present, note which package scope is active.
Plan
Gather project diagnostics using MCP reads where available, CLI as fallback:
1. Fetch recent deployments (last 5). 2. Inspect the latest deployment for build status and metadata. 3. List environment variables per environment (counts only — never print values). 4. Check domain configuration and status. 5. Read `vercel.json` for configuration highlights.
No destructive operations — this command is read-only.
Commands
1. Recent Deployments
vercel ls
> **Note:** `vercel ls` does not support `--limit`. It returns recent deployments by default.
Extract: deployment URL, state (READY / ERROR / BUILDING), target (production / preview), created timestamp.
2. Latest Deployment Inspection
vercel inspect <latest-deployment-url>
Extract: build duration, function count, region, framework detected, Node.js version.
3. Environment Variable Counts
vercel env ls
Count variables per environment (Production, Preview, Development). **Never echo variable values.**
Present as:
| Environment | Count | |-------------|-------| | Production | N | | Preview | N | | Development | N |
4. Domain Status
vercel domains ls
For each domain: name, DNS configured (yes/no), SSL valid (yes/no).
5. Configuration Highlights
Read `vercel.json` (if present) and summarize:
- Framework preset
- Build command overrides
- Function configuration (runtime, memory, duration)
- Rewrites / redirects count
- Cron jobs defined
- Headers or middleware config
If `vercel.json` does not exist, note "No vercel.json found — using framework defaults."
6. Observability Diagnostics
Check the project's observability posture — drains, error monitoring, analytics instrumentation, and drain security.
6a. Drains Configured?
Use MCP `list_drains` if available, or the REST API:
curl -s -H "Authorization: Bearer $VERCEL_TOKEN" \ "https://api.vercel.com/v1/drains?teamId=$TEAM_ID" | jq '.drains | length'
- **If drains exist**: list drain count, types (JSON/NDJSON/Syslog), and statuses.
- **If zero drains**: note "No drains configured" and flag as a gap for production observability.
6b. Errored Drains?
For each drain returned, check the status field. If any drain shows an error or disabled state:
⚠️ Drain "<drain-url>" is in error state. Remediation: 1. Verify the endpoint URL is reachable and returns 2xx. 2. Check that the endpoint accepts the configured format (JSON/NDJSON/Syslog). 3. Test the drain: POST /v1/drains/<drain-id>/test 4. If unrecoverable, delete and recreate the drain.
6c. Analytics Instrumentation Present?
Scan the project source for `@vercel/analytics` and `@vercel/speed-insights` imports:
- Check `package.json` dependencies for `@vercel/analytics` and `@vercel/speed-insights`.
- If missing either package, flag:
> Analytics/Speed Insights not detected. Install `@vercel/analytics` and `@vercel/speed-insights` and add the components to your root layout.
6d. Drain Signature Verification
Vercel signs every drain payload with an HMAC-SHA1 signature in the `x-vercel-signature` header. **Always verify signatures in production** to prevent spoofed data.
> **Critical:** You must verify against the **raw request body** (not a parsed/re-serialized version). JSON parsing and re-stringifying can change key order or whitespace, breaking the signature match.
import { createHmac, timingSafeEqual } from 'crypto'
function verifyDrainSignature(rawBody: string, signature: string, secret: string): boolean {
const expected = createHmac('sha1', secret).update(rawBody).digest('hex')
// Use timing-safe comparison to prevent timing attacks
if (expected.length !== signature.length) return false
return timingSafeEqual(Buffer.from(expected), Buffer.from(signature))
}Usage in a drain endpoint:
// app/api/drain/route.ts
export async function POST(req: Request) {
const rawBody = await req.text()
const signature = req.headers.get('x-vercel-signature')
const secret = process.env.DRAIN_SECRET!
if (!signature || !verifyDrainSignature(rawBody, signature, secret)) {
return new Response('Unauthorized', { status: 401 })
}
const events = JSON.parse(rawBody)
// Process verified events...
return new Response('OK', { status: 200 })
}> **Secret management:** The drain signing secret is shown once when you create the drain. Store it in an environment variable (e.g., `DRAIN_SECRET`). If lost, delete and recreate the drain.
Check whether the project has a `DRAIN_SECRET` env var set via `vercel env ls`. If drains are configured but no signature secret is found, flag as a security gap.
6e. Fallback Guidance (No Drains)
If drains are unavailable (Hobby plan or not yet configured), use these alternatives:
| Need | Alternative | How | |------|-------------|-----| | View runtime logs | **Vercel Dashboard** | `https://vercel.com/{team}/{project}/deployments`
Comprehensive Vercel ecosystem plugin — relational knowledge graph, skills for every major product, specialized agents, and Vercel conventions. Turns any AI agent into a Vercel expert.
Repo: vercel-labs/vercel-plugin
Other commands on vercel.
- /bootstrap
Bootstrap a repository with Vercel-linked resources by running preflight checks, provisioning integrations, verifying env keys, and then executing db/dev startup commands safely.
Open command - /deploy
Deploy the current project to Vercel. Pass "prod" or "production" as argument to deploy to production. Default is preview deployment.
Open command - /env
Manage Vercel environment variables. Commands include list, pull, add, remove, and diff. Use to sync environment variables between Vercel and your local development environment.
Open command

