
Vercel Deploy
Package and upload a project to get an instant Vercel preview URL plus a claim link, without signing in first—ideal for demos and client handoff.
Overview
Vercel Deploy is an agent skill for the Ship phase that packages your app, uploads it, and returns a live preview URL plus a claimable deployment link without requiring authentication first.
Install
npx skills add https://github.com/vercel-labs/vercel-deploy-codex-skill --skill vercel-deployWhat is this skill?
- Runs packaging via deploy.sh: tar.gz upload excluding node_modules and .git
- Auto-detects framework from package.json or treats static HTML (single file → index.html)
- No authentication required for initial preview; returns Preview URL and Claim URL
- Supports directory path or pre-built .tgz artifact
- Triggered by natural deploy phrases (deploy my app, push this live, preview deployment)
- Packaging excludes node_modules and .git; framework auto-detected from package.json when present
Adoption & trust: 48 installs on skills.sh; 4 GitHub stars; 2/3 security scanners passed (skills.sh audits).
What problem does it solve?
You want a shareable live URL now but do not want to stop and configure Vercel auth inside the agent session.
Who is it for?
Indie hackers and agents users who need fast, link-in-chat previews from a local repo or tarball.
Skip if: Multi-region production governance, Azure architecture decisions, or deep post-deploy debugging—use architect or investigation skills after the link is up.
When should I use this skill?
User asks to deploy, push live, create a preview deployment, or get a shareable Vercel link from a path or tarball.
What do I get? / Deliverables
You receive a working preview URL and a claim URL so stakeholders can click immediately and you can transfer ownership when ready.
- Live Preview URL on vercel.app
- Claim URL to transfer deployment to your Vercel account
Recommended Skills
Journey fit
Ship is the primary journey phase for “push this live” and preview deployments that unblock launch and feedback loops. Launch fits shareable preview URLs and going live moments, including claimable transfers into a real Vercel account.
How it compares
One-shot preview deploy packaging—not a full CI/CD pipeline designer or hosting migration playbook.
Common Questions / FAQ
Who is vercel-deploy for?
Solo builders and agent users who need an instant Vercel preview and optional account claim without manual dashboard steps.
When should I use vercel-deploy?
In Ship when you are ready to launch a preview, share a demo link, or validate landing behavior on real HTTPS infrastructure.
Is vercel-deploy safe to install?
It uploads project archives to a deployment service—review the Security Audits panel on this Prism page, exclude secrets from the bundle, and claim deployments under your own Vercel account.
SKILL.md
READMESKILL.md - Vercel Deploy
# Vercel Deploy Deploy any project to Vercel instantly. No authentication required. ## How It Works 1. Packages your project into a `.tar.gz` (excludes `node_modules` and `.git`) 2. Auto-detects framework from `package.json` 3. Uploads to deployment service 4. Returns **Preview URL** (live site) and **Claim URL** (transfer to your Vercel account) ## Usage ```bash bash scripts/deploy.sh [path] ``` **Arguments:** - `path` - Directory to deploy, or a `.tgz` file (defaults to current directory) If you pass a directory, the script will create a `.tar.gz` before upload. **Examples:** ```bash # Deploy current directory bash scripts/deploy.sh # Deploy specific project bash scripts/deploy.sh /path/to/project # Deploy existing tarball bash scripts/deploy.sh /path/to/project.tgz ``` ## Packaging Rules - Exclude `node_modules` and `.git` - If no `package.json`, keep `framework` as `null` - For static HTML with a single `.html` file, rename it to `index.html` before packaging ## Output ``` Preparing deployment... Creating deployment package... Deploying... ✓ Deployment successful! Preview URL: https://skill-deploy-abc123.vercel.app Claim URL: https://vercel.com/claim-deployment?code=... ``` The script also outputs JSON to stdout for programmatic use. ```json { "previewUrl": "https://skill-deploy-abc123.vercel.app", "claimUrl": "https://vercel.com/claim-deployment?code=...", "deploymentId": "dpl_...", "projectId": "prj_..." } ``` ## Framework Detection The script auto-detects frameworks from `package.json`. Supported frameworks include: - **React**: Next.js, Gatsby, Create React App, Remix, React Router - **Vue**: Nuxt, Vitepress, Vuepress, Gridsome - **Svelte**: SvelteKit, Svelte, Sapper - **Other Frontend**: Astro, Solid Start, Angular, Ember, Preact, Docusaurus - **Backend**: Express, Hono, Fastify, NestJS, Elysia, h3, Nitro - **Build Tools**: Vite, Parcel - **And more**: Blitz, Hydrogen, RedwoodJS, Storybook, Sanity, etc. For static HTML projects (no `package.json`), framework is set to `null`. ## Static HTML Projects For projects without a `package.json`: - If there's a single `.html` file not named `index.html`, it gets renamed automatically - This ensures the page is served at the root URL (`/`) ## Present Results to User Always show both URLs: ``` ✓ Deployment successful! Preview URL: https://skill-deploy-abc123.vercel.app Claim URL: https://vercel.com/claim-deployment?code=... View your site at the Preview URL. To transfer this deployment to your Vercel account, visit the Claim URL. ``` ## Troubleshooting ### Network Egress Error If deployment fails due to network restrictions, tell the user: ``` Deployment failed due to network restrictions. To fix this: 1. Allow outbound access to *.vercel.com 2. Try deploying again ``` interface: display_name: Vercel Deploy short_description: Deploy applications and websites to Vercel with a claimable preview. icon_small: assets/vercel.svg icon_large: assets/vercel.svg ownership: name: Vercel url: https://vercel.com #!/bin/bash # Vercel Deployment Script (via claimable deploy endpoint) # Usage: ./deploy.sh [project-path] # Returns: JSON with previewUrl, claimUrl, deploymentId, projectId set -e DEPLOY_ENDPOINT="https://codex-deploy-skills.vercel.sh/api/deploy" # Detect framework from package.json detect_framework() { local pkg_json="$1" if [ ! -f "$pkg_json" ]; then echo "null" return fi local content=$(cat "$pkg_json") # Helper to check if a package exists in dependencies or devDependencies has_dep() { echo "$content" | grep -q "\"$1\"" }