cli-ux
Vercel CLI Design System
This skill defines the Vercel CLI we are building toward. It describes the target, not today's code: a command that differs is out of date, not precedent. Changes move the CLI toward it within the scope of the change. Breaking changes are allowed through Changing a contract.
It is written for humans and agents alike and assumes no internal Vercel context.
MUST / NEVER are requirements. SHOULD is the default; deviate only with a stated reason in the PR. MAY is optional.
The Bar
Every command answers four questions, for a person at a terminal and for a script:
- What will it act on? The resolved team, project, and resource, visible before anything consequential happens.
- What will change? Risky or broad effects are shown before they happen. Nothing is a surprise.
- What happened? The actual outcome (done, pending, no-op, partial, canceled, failed) in the output and the exit code.
- What next? One exact, working command when there is a useful next step.
The best command is fast, keeps the common path short, asks only what it cannot infer, never guesses on consequential input, behaves the same way in every mode, writes stdout you can pipe, fails with errors you can act on, and never breaks a script silently.