vercel-cli — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited vercel-cli (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Safety-first wrapper for the Vercel CLI (vercel, alias vc). Every command is classified by risk tier before execution — full project control, with anything irreversible gated behind explicit confirmation.
vercel devenv, pull)vercel api calls or manage blob storage & integrationsnpm i -g vercel (or pnpm/yarn). Native binary (experimental): pnpm i -g @vercel/vc-native -fvercel login — or for CI/CD set VERCEL_TOKEN (preferred over the --token flag, which leaks into process lists). Tokens: https://vercel.com/account/tokensvercel --version and vercel whoamivercel link in the project dir (creates .vercel/)vercel teams ls; switch with vercel switch| Tier | Action Required | Examples |
|---|---|---|
| Safe | Execute immediately | vercel ls, inspect, env ls, whoami |
| Write | Inform user, then execute | deploy (preview), env add, alias set, dns add, staged routes/firewall rules edits |
| Destructive | AskUserQuestion BEFORE executing | deploy --prod, remove, rollback, promote, env rm, alias rm, domains rm, certs rm, cache purge, firewall publish |
| Forbidden | Multi-step typed confirmation, NEVER auto-confirm | project rm, domains buy/transfer-in, buy, cache dangerously-delete, firewall system-mitigations pause, git disconnect, bulk destructive loops |
Full classification + confirmation templates: references/safety-rules.md.
Command received
→ Classify risk tier (see Safety Model + references/commands.md)
→ Safe? Execute immediately
→ Write? State what will happen → execute
→ Destructive? AskUserQuestion with options → wait → execute or cancel
→ Forbidden? Warn → typed confirmation → final confirm → execute or cancel
On failure → Self-Healing (fetch the command's doc URI)These need typed multi-step confirmation — keep them visible. The full Destructive list and per-command tiers live in references/safety-rules.md and references/commands.md.
| Command | Why |
|---|---|
vercel project rm | Deletes project AND all its deployments — permanent |
vercel domains buy / domains transfer-in / buy | Spends money |
vercel domains move | Transfers domain to another scope |
vercel cache dangerously-delete | Hard-deletes cached data |
vercel firewall system-mitigations pause | Removes DDoS protection; you owe fees for abusive traffic |
vercel git disconnect | Breaks auto-deploy on push |
vercel logout | Destroys the local session |
| Bulk destructive loops | Multiplies blast radius |
For Destructive ops, present tailored options with a "Cancel". Examples:
Q: "Roll back production for <project>?"
- "Roll back to previous" — vercel rollback
- "Roll back to specific deployment" — vercel rollback <id>
- "Cancel"
Q: "Remove env var <NAME> from <environment>?"
- "Remove it" — vercel env rm <NAME> <env>
- "Cancel"For Forbidden ops, follow the triple-confirmation protocol in references/safety-rules.md.
--prod, promote, rollback, and *-release/publish change live traffic. Before running:
vercel project inspect, vercel teams ls)AskUserQuestion to confirm production intent (template in safety-rules.md)vercel inspect <url> and vercel logs <url>The CLI changes often (subcommands get renamed). On any error or unexpected behavior: read the error → vercel help <command> → if still unclear, WebFetch https://vercel.com/docs/cli/<command> → adjust → re-run. If a command was renamed/removed, surface that with the doc link rather than guessing repeatedly. Key URIs:
https://vercel.com/docs/cli/<command>vercel.json config: https://vercel.com/docs/project-configurationvercel api): https://vercel.com/docs/rest-apiFull URI map: references/commands.md.
| Flag | Description |
|---|---|
--token <t> | Auth token (prefer VERCEL_TOKEN env var) |
--scope <team> | Team/scope to operate in |
--cwd <dir> | Run as if in a different directory |
--target <env> | Target a custom environment |
--yes / -y | Skip prompts (NEVER on Forbidden ops) |
--debug | Verbose output for troubleshooting |
--json | Machine-readable output where supported |
| Error | Cause | Fix |
|---|---|---|
command not found: vercel | Not installed | npm i -g vercel |
Not authorized / No existing credentials | Not logged in | vercel login or set VERCEL_TOKEN |
Your codebase isn't linked | Dir not linked | vercel link |
The provided token is not valid | Bad/expired token | Regenerate at /account/tokens |
Can't find the specified scope | Wrong team | vercel teams ls → vercel switch |
unknown or unexpected option | Flag renamed | Self-heal: fetch /docs/cli/<command> |
--yes/-y to Destructive or Forbidden opsVERCEL_TOKEN env var over --token (argv is visible in process lists)| cat if a command might invoke a pagerPairs with: github-cli (repo/PRs that trigger deploys), nextjs-senior-dev / next-upgrade (the apps deployed), supabase-cli / neon-postgres-agent-platforms (data services), code-quality (review before a prod deploy).
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.