Vercel Cli With Tokens

TopTinker Aug 13, 2026 New v1.0.0 3,541 installs Sec S+ Verified source
Claude Code Cursor
Free
Open verification
AI OverviewGenerated from SKILL.md
Core usage
This skill deploys and manages Vercel projects using the Vercel CLI with token-based authentication instead of interactive login. It guides locating a VERCEL_TOKEN from the environment or .env, setting VERCEL_ORG_ID and VERCEL_PROJECT_ID when available, linking projects if needed, and deploying preview builds by default unless production is explicitly requested. Use it by exporting the token as an environment variable and running vercel commands such as vercel deploy, vercel inspect, and vercel ls.
Key advantages
It avoids interactive vercel login, enabling automated and non-interactive deployments. It keeps the token out of command-line arguments by relying on the VERCEL_TOKEN environment variable, and supports targeting projects via environment IDs or --scope. It also prefers git push deployments and vercel link --repo, which is described as more reliable than plain vercel link.
Limitations
The token must be found in the environment, a .env file, or provided by the user, so setup can fail if no token is available. It requires the Vercel CLI to be installed and up to date, and projects without an existing project ID must go through the linking flow. VERCEL_ORG_ID and VERCEL_PROJECT_ID must be set together or the CLI errors, and certain detection commands like vercel project inspect or vercel link can have interactive or side effects in unlinked directories.
Target audience
This is for developers, automation scripts, and AI agents who need to deploy or manage Vercel projects non-interactively using access tokens. It is especially useful for CI/CD environments or remote executions where interactive vercel login is impractical or impossible.
Risks & notes
Passing the token as a --token flag exposes it in shell history and process listings, so it must be exported as an environment variable instead. Git push deploys trigger automatic Vercel builds, so the user must approve any push before it is executed. Running vercel link or vercel project inspect in an unlinked directory can prompt interactively or silently link as a side effect, and setting only one of VERCEL_ORG_ID or VERCEL_PROJECT_ID causes an error.
DescriptionWritten by the seller

# Vercel CLI with Tokens

Deploy and manage projects on Vercel using the CLI with token-based authentication, without relying on `vercel login`.

## Step 1: Locate the Vercel Token

Before running any Vercel CLI commands, identify where the token is coming from. Work through these scenarios in order:

### A) `VERCEL_TOKEN` is already set in the environment

```bash
printenv VERCEL_TOKEN
```

If this returns a value, you're ready. Skip to Step 2.

### B) Token is in a `.env` file under `VERCEL_TOKEN`

```bash
grep '^VERCEL_TOKEN=' .env 2>/dev/null
```

If found, export it:

```bash
export VERCEL_TOKEN=$(grep '^VERCEL_TOKEN=' .env | cut -d= -f2-)
```

### C) Token is in a `.env` file under a different name

Look for any variable that looks like a Vercel token (Vercel tokens typically start with `vca_`):

```bash
grep -i 'vercel' .env 2>/dev/null
```

Inspect the output to identify which variable holds the token, then export it as `VERCEL_TOKEN`:

```bash
export VERCEL_TOKEN=$(grep '^=' .env | cut -d= -f2-)
```

### D) No token found — ask the user

If none of the above yield a token, ask the user to provide one. They can create a Vercel access token at vercel.com/account/tokens.

---

**Important:** Once `VERCEL_TOKEN` is exported as an environment variable, the Vercel CLI reads it natively — **do not pass it as a `--token` flag**. Putting secrets in command-line arguments exposes them in shell history and process listings.

```bash
# Bad — token visible in shell history and process listings
vercel deploy --token "vca_abc123"

# Good — CLI reads VERCEL_TOKEN from the environment
export VERCEL_TOKEN="vca_abc123"
vercel deploy
```

## Step 2: Locate the Project and Team

Similarly, check for the project ID and team scope. These let the CLI target the right project without needing `vercel link`.

```bash
# Check environment
printenv VERCEL_PROJECT_ID
printenv VERCEL_ORG_ID

# Or check .env
grep -i 'vercel' .env 2>/dev/null
```

**If you have a project URL** (e.g. `https://vercel.com/my-team/my-project`), extract the team slug:

```bash
# e.g. "my-team" from "https://vercel.com/my-team/my-project"
echo "$PROJECT_URL" | sed 's|https://vercel.com/||' | cut -d/ -f1
```

**If you have both `VERCEL_ORG_ID` and `VERCEL_PROJECT_ID` in your environment**, export them — the CLI will use these automatically and skip any `.vercel/` directory:

```bash
export VERCEL_ORG_ID=""
export VERCEL_PROJECT_ID=""
```

Note: `VERCEL_ORG_ID` and `VERCEL_PROJECT_ID` must be set together — setting only one causes an error.

## CLI Setup

Ensure the Vercel CLI is installed and up to date:

```bash
npm install -g vercel
vercel --version
```

## Deploying a Project

Always deploy as **preview** unless the user explicitly requests production. Choose a method based on what you have available.

### Quick Deploy (have project ID — no linking needed)

When `VERCEL_TOKEN` and `VERCEL_PROJECT_ID` are set in the environment, deploy directly:

```bash
vercel deploy -y --no-wait
```

With a team scope (either via `VERCEL_ORG_ID` or `--scope`):

```bash
vercel deploy --scope -y --no-wait
```

Production (only when explicitly requested):

```bash
vercel deploy --prod --scope -y --no-wait
```

Check status:

```bash
vercel inspect
```

### Full Deploy Flow (no project ID — need to link)

Use this when you have a token and team but no pre-existing project ID.

#### Check project state first

```bash
# Does the project have a git remote?
git remote get-url origin 2>/dev/null

# Is it already linked to a Vercel project?
cat .vercel/project.json 2>/dev/null || cat .vercel/repo.json 2>/dev/null
```

#### Link the project

**With git remote (preferred):**

```bash
vercel link --repo --scope -y
```

Reads the git remote and connects to the matching Vercel project. Creates `.vercel/repo.json`. More reliable than plain `vercel link`, which matches by directory name.

**Without git remote:**

```bash
vercel link --scope -y
```

Creates `.vercel/project.json`.

**Link to a specific project by name:**

```bash
vercel link --project --scope -y
```

If the project is already linked, check `orgId` in `.vercel/project.json` or `.vercel/repo.json` to verify it matches the intended team.

#### Deploy after linking

**A) Git Push Deploy — has git remote (preferred)**

Git pushes trigger automatic Vercel deployments.

1. **Ask the user before pushing.** Never push without explicit approval.
2. Commit and push:
```bash
git add .
git commit -m "deploy: "
git push
```
3. Vercel builds automatically. Non-production branches get preview deployments.
4. Retrieve the deployment URL:
```bash
sleep 5
vercel ls --format json --scope
```
Find the latest entry in the `deployments` array.

**B) CLI Deploy — no git remote**

```bash
vercel deploy --scope -y --no-wait
```

Check status:

```bash
vercel inspect
```

### Deploying from a Remote Repository (code not cloned locally)

1. Clone the repository:
```bash
git clone
cd
```
2. Link to Vercel:
```bash
vercel link --repo --scope -y
```
3. Deploy via git push (if you have push access) or CLI deploy.

### About `.vercel/` Directory

A linked project has either:
- `.vercel/project.json` — from `vercel link`. Contains `projectId` and `orgId`.
- `.vercel/repo.json` — from `vercel link --repo`. Contains `orgId`, `remoteName`, and a `projects` map.

Not needed when `VERCEL_ORG_ID` + `VERCEL_PROJECT_ID` are both set in the environment.

**Do NOT** run `vercel project inspect` or `vercel link` in an unlinked directory to detect state — they will interactively prompt or silently link as a side-effect. `vercel ls` is safe (in an unlinked directory it defaults to showing all deployments for the scope). `vercel whoami` is safe anywhere.

## Managing Environment Variables

```bash
# Set for all environments
echo "value" | vercel env add VAR_NAME --scope

# Set for a specific environment (production, preview, development)
echo "value" | vercel env add VAR_NAME production --scope

# List environment variables
vercel env ls --scope

# Pull env vars to local .env.local file
vercel env pull --scope

# Remove a variable
vercel env rm VAR_NAME --scope -y
```

## Inspecting Deployments

```bash
# List recent deployments
vercel ls --format json --scope

# Inspect a specific deployment
vercel inspect

# View build logs (requires Vercel CLI v35+)
vercel inspect --logs

# View runtime request logs (follows live by default; add --no-follow for a one-shot snapshot)
vercel logs
```

## Managing Domains

```bash
# List domains
vercel domains ls --scope

# Add a domain to the project — linked or env-linked directory (1 arg)
vercel domains add --scope

# Add a domain — unlinked directory (requires positional)
vercel domains add --scope
```

## Stripe Projects Plan Changes

If this project is managed by Stripe Projects. **Ask the user before running any paid or destructive plan change** — upgrades bill a real card, downgrades remove seats.

First run `stripe projects status --json` to confirm the Vercel resource's local name. The examples below assume the default (`vercel-plan`); substitute the actual name if it was renamed at `stripe projects add` time.

- **Upgrade to Pro:** `stripe projects add vercel/pro` (or `stripe projects upgrade vercel-plan pro`)
- **Downgrade to Hobby:** `stripe projects downgrade vercel-plan hobby`

### What Pro gives you

- $20/month platform fee, includes $20/month of usage credit.
- Turbo build machines (30 vCPUs, 60 GB memory) by default for new projects — significantly faster builds than Hobby.
- 1 deploying seat + unlimited free Viewer seats (read-only collaborators, preview comments).
- Higher included allocations (1 TB Fast Data Transfer, 10M Edge Requests per month).
- Paid add-ons available: SAML SSO, HIPAA BAA, Flags Explorer, Observability Plus, Speed Insights, Web Analytics Plus.

Full details: https://vercel.com/docs/plans/pro-plan

## Working Agreement

- **Never pass `VERCEL_TOKEN` as a `--token` flag.** Export it as an environment variable and let the CLI read it natively.
- **Check the environment for tokens before asking the user.** Look in the current env and `.env` files first.
- **Default to preview deployments.** Only deploy to production when explicitly asked.
- **Ask before pushing to git.** Never push commits without the user's approval.
- **Do not modify `.vercel/` files directly.** The CLI manages this directory. Reading them (e.g. to verify `orgId`) is fine.
- **Do not curl/fetch deployed URLs to verify.** Just return the link to the user.
- **Use `--format json`** when structured output will help with follow-up steps.
- **Use `-y`** on commands that prompt for confirmation to avoid interactive blocking.

## Troubleshooting

### Token not found

Check the environment and any `.env` files present:

```bash
printenv | grep -i vercel
grep -i vercel .env 2>/dev/null
```

### Authentication error

If the CLI fails with `Authentication required`:
- The token may be expired or invalid.
- Verify: `vercel whoami` (uses `VERCEL_TOKEN` from environment).
- Ask the user for a fresh token.

### Wrong team

Verify the scope is correct:

```bash
vercel whoami --scope
```

### Build failure

Check the build logs:

```bash
vercel inspect --logs
```

Common causes:
- Missing dependencies — ensure `package.json` is complete and committed.
- Missing environment variables — add with `vercel env add`.
- Framework misconfiguration — check `vercel.json`. Vercel auto-detects frameworks (Next.js, Remix, Vite, etc.) from `package.json`; override with `vercel.json` if detection is wrong.

### CLI not installed

```bash
npm install -g vercel
```

Use caseInput → Output
Input
Before running any Vercel CLI commands, identify where the token is coming from. Work through these scenarios in order:
Output
Verified guidance, commands and best practices for Vercel Cli With Tokens, ready to paste into your agent
How it worksImport to your platform and run
Item details
Use case
AI Skills
Capability
Coding
Agents
Claude Code, Cursor
Version
1.0.0
First seen
Aug 13, 2026
Installs
3,541
License
Non-exclusive
Last update
Aug 13, 2026
InstallCompatible with agent skill ecosystem
npx skills add vercel-labs/agent-skills --skill vercel-cli-with-tokens
Source: vercel-labs/agent-skills
What you get
SKILL.md skill definitionCommand referenceInstallation instructionsVercel Cli With Tokens reference
Verified sourceOriginal project page — inspect before install
Open the original source project
Check the upstream repository, license and changelog before install
Open source
Security ScanS+Score 100/100 · 2 findings · 2026-08-15 21:34:32🤖 AI 已复核
Static analysis100
Dynamic behavior100
Dependencies100
Network100
Privacy100
Threat intel100
Findings (2)
LowHardcoded secrets(placeholder)3 处
Suspected hardcoded keys/passwords. Real secrets must be removed and injected via environment variables.
🤖 Snippets show commands for extracting a token from .env and an example token 'vca_abc123', not a real secret.
L28 · TOKEN=' .env 2>/dev/null ``` If found, export it: ```bash export VERCEL_TOKEN=$(grep '
L34 · TOKEN=' .env | cut -d= -f2-) ``` ### C) Token is in a `.env` file under a different name Look for any variable that lo
L64 · TOKEN="vca_abc123"
LowSystem info collection(false positive)3 处
Collects hostname/IP/username; be cautious if unrelated to declared function.
🤖 'whoami' alone is a common benign command and no malicious context or exfiltration is shown.
L230 · whoami
L325 · whoami
L333 · whoami
Security scan generated by TopTinker automated engine from SKILL.md static analysis, for pre-install reference only. Third-party skills carry their own runtime risk.
WeChat
Qizhuwang Source Code Trading Platform
2021-12-28开店时间
284商品数
认证
Guarantees
Escrow paymentOn
Platform holds funds until delivery is confirmed
Install verified
Free download - install & run before you pay
Source transparency
Original GitHub repo linked & verified
No refunds after download
Digital product - disputes arbitrated on evidence only
Enhanced protection
Trusted seller - priority arbitration within 48h, backed by platform bond
Free

Report this listing

This content is locked. Buy it once and use it forever - instant delivery after purchase.

one-time
Unlock now
Escrow payment · 7-day refund support