Preface

After modifying code locally, the next step is often online verification: configuring environments, installing the CLI, logging into an account, choosing between Preview or Production… For developers who are used to writing code with AI programming assistants, these steps often disrupt their flow state. What you actually want is a single prompt like “Help me deploy this project and send me the link”, and the Agent will follow the standardized process to complete the deployment.

vercel-deploy is the Agent Skill built exactly for this purpose. It is included in the .curated curated directory of the openai/skills repository maintained by OpenAI. Licensed by Vercel under the MIT License, this Skill specifically guides AI Agents to deploy applications or websites to Vercel and return accessible preview links. This article is organized based on the official SKILL.md and the source code of scripts/deploy.sh, and the key processes can be verified against the original text.

What is this

vercel-deploy is a general-purpose Agent Skill in standard format (SKILL.md + supporting scripts), with its core positioning as follows:

When a user says “deploy my app”, “deploy and give me the link”, “push live” or “create a preview deployment”, the Agent should call this Skill to deploy the project to Vercel and return the URL.

It does not aim to “teach you how to write Vercel configurations”, but rather to standardize the deployment action: the Agent first checks the Vercel CLI, uses the CLI directly if available; if the CLI is unavailable or the user is not logged in, it automatically falls back to the deploy.sh script built into the Skill, allowing users to obtain preview links without pre-configuring a Vercel account.

Source attribution:
- Repository: openai/skillsskills/.curated/vercel-deploy/
- Copyright: Vercel (MIT License, 2026)
- Compatible tools: AI programming tools that support the SKILL.md format, such as Cursor, Codex CLI, Claude Code, etc.

Core Features and Highlights

1. Default Preview Deployment to Avoid Accidental Production Releases

The Skill clearly stipulates that unless the user explicitly requests a production environment, all deployments should use Preview mode by default. This prevents the Agent from pushing unvalidated code to Production when the user only wants to “check the effect”.

Production deployment will only be executed when the user explicitly requests it:

vercel deploy [path] --prod -y

2. Dual-path Deployment: CLI First, Script Fallback

Path A — Vercel CLI (already installed and logged in)

  1. First check if the CLI exists with normal permissions (without escalating sandbox permissions):
command -v vercel
  1. If it exists, execute the deployment (it is recommended to set a timeout of 10 minutes, as the build may take a long time):
vercel deploy [path] -y

Path B — Unauthenticated Fallback Script

When the CLI is not installed, or the error No existing credentials found is reported, the Agent should call the scripts/deploy.sh script located in the Skill directory:

skill_dir="<path-to-skill>"

# Deploy the current directory
bash "$skill_dir/scripts/deploy.sh"

# Deploy a specified project directory
bash "$skill_dir/scripts/deploy.sh" /path/to/project

# Deploy an existing tarball
bash "$skill_dir/scripts/deploy.sh" /path/to/project.tgz

The script will package the project and upload it to https://codex-deploy-skills.vercel.sh/api/deploy, wait for the build to complete, and then return a JSON containing:
- previewUrl: The directly accessible preview site
- claimUrl: Used to claim the deployment to your own Vercel account

The Agent should inform the user: “Your deployment is ready at [previewUrl]. Claim it at [claimUrl] to manage your deployment.”

3. Automatic Framework Detection and Static Site Handling

deploy.sh will read the dependencies in package.json and automatically recognize framework types, such as Next.js, Nuxt, SvelteKit, Astro, Remix, Vite, Express, NestJS and dozens of others. It will exclude directories such as node_modules, .git, .env during packaging to avoid uploading redundant or sensitive files.

For pure static HTML projects without a package.json: if there is only one HTML file in the root directory and it is not named index.html, the script will automatically rename it to index.html to ensure the page is accessible at the root path /.

4. Sandbox Network and Timeout Handling

Deployments may fail due to network restrictions in sandbox environments such as Cursor and Codex. The Skill requires: do not escalate permissions when checking the CLI; only when executing the actual deployment command, if a timeout, DNS error or connection reset occurs, retry the deployment command with sandbox_permissions=require_escalated. The deployment itself may take several minutes, so the Agent needs to set a reasonable timeout (600000ms, i.e. 10 minutes, for the CLI path).

5. Output Specifications

  • Show the deployment URL to the user; when deploying via the fallback script, also show the claim URL
  • Do not use tools like curl to verify if the deployment URL is accessible, just return the links directly

Installation and Activation

The Skill exists as a directory, and at minimum requires SKILL.md and scripts/deploy.sh (the unauthenticated fallback depends on the latter). The official directory structure is as follows:

vercel-deploy/
├── SKILL.md
├── scripts/
│   └── deploy.sh
├── agents/
│   └── openai.yaml
├── assets/
├── LICENSE.txt

Usage in Cursor

  1. Copy the entire vercel-deploy directory from the official repository to the project-level or user-level Skills path:
# Project-level (shared with the team via the repository)
mkdir -p .cursor/skills
git clone --depth 1 --filter=blob:none --sparse https://github.com/openai/skills.git /tmp/openai-skills
cd /tmp/openai-skills && git sparse-checkout set skills/.curated/vercel-deploy
cp -r skills/.curated/vercel-deploy /your-project/.cursor/skills/

# Or user-level (available for all projects)
cp -r skills/.curated/vercel-deploy ~/.cursor/skills/
  1. Confirm that the frontmatter at the top of SKILL.md contains the name: vercel-deploy and description fields; the folder name must match the name (lowercase, hyphenated).
  2. After restarting or refreshing Cursor, the Skill will appear in the list of available Agent skills. You can manually call it by entering /vercel-deploy in the Agent chat, or let the Agent automatically select it when the description matches.

Cursor will also scan .agents/skills/ and ~/.agents/skills/, with the same path rules as .cursor/skills/.

Usage in Codex CLI

Place the same directory in .codex/skills/vercel-deploy/ or ~/.codex/skills/vercel-deploy/. Codex runs in a sandbox by default, and the Skill documentation specifies: try the CLI first, fall back to deploy.sh if authentication fails.

Usage in Claude Code

Place it in .claude/skills/vercel-deploy/ or ~/.claude/skills/vercel-deploy/, with the same format as Cursor.

Typical Usage Examples

Scenario 1: Local Next.js project, already logged in via CLI

The user says to the Agent:

Help me deploy the current project to Vercel and send me the preview link.

The Agent executes according to the Skill:

command -v vercel
vercel deploy . -y

Returns a preview URL in the format https://xxx.vercel.app.

Scenario 2: Sandbox environment, no Vercel login

The user says to the Agent:

Deploy my app and give me the link.

After the CLI reports No existing credentials found, the Agent calls:

bash "$skill_dir/scripts/deploy.sh" .

The script will output the build progress to stderr, and finally return JSON to stdout. The user will get two links, for example:
- Preview URL: https://skill-deploy-xxxxx.vercel.app
- Claim URL: https://vercel.com/claim-deployment?code=...

You can bind this deployment to your own Vercel account via the Claim URL, and manage domains, environment variables, etc. in the console afterwards.

Scenario 3: Explicitly requesting production deployment

The user says:

Deploy this project to Vercel Production environment.

Only then should the Agent use:

vercel deploy . --prod -y

If the CLI is unavailable, you need to confirm with the user whether to accept the preview deployment + Claim process first, because the fallback script is designed for claimable preview deployments, not direct Production pushes.

Applicable Scenarios and Notes

Who is this for

  • Developers using AI assistants to quickly build prototypes, landing pages, full-stack demos who need “modify and see the online effect immediately”
  • Developers working in Cursor / Codex / Claude Code sandboxes who have not yet installed or logged into the Vercel CLI
  • Teams that want to standardize “deploy to Vercel” as an Agent standard action to reduce repetitive verbal instructions

Usage Notes

  1. Preview first: The design philosophy of the Skill is to default to Preview; production deployment must be explicitly requested by the user.
  2. Keep the scripts directory: Just copying SKILL.md is not enough, the unauthenticated fallback depends on scripts/deploy.sh.
  3. Build time: The first deployment may be slow, both the Agent and the user need to be patient; the script will poll for up to about 5 minutes waiting for the build to complete.
  4. Sensitive files: The script will exclude files like .env, but it is still recommended to check the project for keys that should not be uploaded before deployment.
  5. Network permissions: If the deployment fails in the sandbox, the Agent may ask you to authorize elevated network permissions before retrying.
  6. Difference from official Vercel Skills: Vercel Labs also maintains Skills such as deploy-to-vercel, which focuses more on CLI login and Git association; the OpenAI curated vercel-deploy highlights the “zero-account preview + Claim” fallback, which is more suitable for Agent sandbox scenarios.

Summary

vercel-deploy formalizes the process of “from code to accessible link” into an executable specification for Agents: use the standard vercel deploy when the CLI is available, use the bundled script for one-click packaging and upload when it is not, and return the preview URL and Claim URL. For developers who widely use Vercel for frontend and full-stack hosting, this is a very practical Skill.

Official address: https://github.com/openai/skills/tree/main/skills/.curated/vercel-deploy