skills/netlify-cli-and-deploy/SKILL.md
Guide for using the Netlify CLI and deploying sites. Use when installing the CLI, linking sites, deploying (Git-based or manual), managing environment variables, or running local development. Covers netlify dev, netlify deploy, Git vs non-Git workflows, and environment variable management.
npx skillsauth add netlify/context-and-tools netlify-cli-and-deployInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
npm install -g netlify-cli # Global (for local dev)
npm install netlify-cli -D # Local (for CI)
Requires Node.js 18.14.0+.
netlify login # Opens browser for OAuth
netlify status # Check auth + linked site status
For CI, set NETLIFY_AUTH_TOKEN environment variable instead.
Check if already linked with netlify status. If not:
# Interactive
netlify link
# By Git remote (if using Git)
netlify link --git-remote-url https://github.com/org/repo
# Create new site
netlify init # With Git CI/CD setup
netlify init --manual # Without Git CI/CD
Site ID is stored in .netlify/state.json. Add .netlify to .gitignore.
Set up with netlify init. Automatic deploys trigger on push/PR:
Build runs on Netlify's servers. Configure build settings in netlify.toml.
Build locally, then upload:
netlify deploy # Draft deploy (preview URL)
netlify deploy --prod # Production deploy
netlify deploy --dir=dist # Specify output directory
This works without Git — useful for prototypes, local-only projects, or CI pipelines.
netlify dev
Wraps your framework's dev server and provides:
For projects using Vite (React SPA, TanStack Start, SvelteKit, Remix), the Vite plugin provides Netlify platform primitives directly in the framework's dev server:
npm install @netlify/vite-plugin
// vite.config.ts
import netlify from "@netlify/vite-plugin";
export default defineConfig({ plugins: [netlify()] });
Then run your normal dev command (npm run dev) — no netlify dev wrapper needed. This gives you access to Blobs, DB, Functions, and environment variables during development.
See the netlify-frameworks skill for framework-specific local dev guidance.
# Set
netlify env:set API_KEY "value"
netlify env:set API_KEY "value" --secret # Hidden from logs
netlify env:set API_KEY "value" --context production # Context-specific
# Get
netlify env:get API_KEY
# List
netlify env:list
netlify env:list --plain > .env # Export to file
# Import from file
netlify env:import .env
# Delete
netlify env:unset API_KEY
Variables can be scoped to deploy contexts:
netlify env:set API_URL "https://api.prod.com" --context production
netlify env:set API_URL "https://api.staging.com" --context deploy-preview
netlify env:set DEBUG "true" --context branch:feature-x
Netlify.env.get("VAR") (preferred) or process.env.VARVITE_-prefixed vars via import.meta.env.VITE_VARPUBLIC_-prefixed vars via import.meta.env.PUBLIC_VARNever use VITE_ or PUBLIC_ prefix for secrets — these are exposed to the browser.
| Command | Description |
|---|---|
| netlify status | Auth and site link status |
| netlify dev | Start local dev server |
| netlify build | Run build locally (mimics Netlify environment) |
| netlify deploy | Draft deploy |
| netlify deploy --prod | Production deploy |
| netlify dev:exec <cmd> | Run command with Netlify environment loaded |
| netlify env:list | List environment variables |
| netlify clone org/repo | Clone, link, and set up in one step |
devops
Guide for using Netlify Database — the GA managed Postgres product built into Netlify. Use when a project needs any kind of dynamic, structured, or relational data. Covers provisioning via @netlify/database, Drizzle ORM (@beta) setup, migrations, preview branching, and safe production data handling. Blobs is only for file/asset storage — any dynamic data belongs in the database.
devops
Guide for using Netlify Database — the GA managed Postgres product built into Netlify. Use when a project needs any kind of dynamic, structured, or relational data. Covers provisioning via @netlify/database, Drizzle ORM (@beta) setup, migrations, preview branching, and safe production data handling. Blobs is only for file/asset storage — any dynamic data belongs in the database.
development
Reference for Netlify AI Gateway — the managed proxy that routes calls to OpenAI, Anthropic, and Google Gemini SDKs without provider API keys. Use this skill any time the user wants to add AI on a Netlify site (chat, completion, reasoning, image generation, image-to-image edit/stylize), choose or change a model, wire up the OpenAI / Anthropic / @google/genai SDK, decide which provider to use for an image-gen feature (it's Gemini-only on the gateway), or debug "model not found" / "API key missing" against the gateway. Required reading before pinning a model — the gateway exposes a curated subset, not every provider model.
development
Guide for using Netlify Image CDN for image optimization and transformation. Use when serving optimized images, creating responsive image markup, setting up user-uploaded image pipelines, or configuring image transformations. Covers the /.netlify/images endpoint, query parameters, remote image allowlisting, clean URL rewrites, and composing uploads with Functions + Blobs.