netlify-agent-runner
Run AI agent tasks remotely on Netlify using Claude, Codex, or Gemini. Use when the user wants to run an AI agent on their site, get a second opinion from…
Picks the right Netlify protection layer for a deployed site and disambiguates the three unrelated things people call "auth". Use when a developer wants to password-protect a site or previews, restrict a project to their team, make a project public/private, set team visibility
$ npx -y skills add netlify/context-and-tools --skill netlify-access-control --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/netlify-access-controlContext preview
The summary Claude sees to decide when to auto-load this skill.
Picks the right Netlify protection layer for a deployed site and disambiguates the three unrelated things people call "auth". Use when a developer wants to password-protect a site or previews, restrict a project to their team, make a project public/private, set team visibility
name: netlify-access-control
description: Picks the right Netlify protection layer for a deployed site and disambiguates the three unrelated things people call "auth". Use when a developer wants to password-protect a site or previews, restrict a project to their team, make a project public/private, set team visibility defaults, require SSO to view a site, or debug SSO-session symptoms like being logged out mid-session / getting 401s on an SSO-protected site / token expiry or refresh. Routes app-user login ("who is this user in my app") to the netlify-identity skill and dashboard/team SSO SSO elsewhere; this skill only chooses the perimeter layer for site/preview access.This skill ROUTES. Its job is choosing the correct protection layer for loading a site, not implementing app auth. Before recommending anything, disambiguate — three unrelated layers get called "auth":
Sessions are separate. The same provider (e.g. Google) can be an Identity OAuth provider for app users AND a SAML IdP for team members — unrelated wiring.
These settings have **no public API, no CLI command, and no MCP tool**. Do NOT curl `api.netlify.com` or read local auth tokens to inspect or change them. Hand the user the dashboard path and checklist. On failure, report what you tried and stop.
A Password-Protection / team-login perimeter session and a Netlify Identity app session have **no bridge** — no shared cookie, no header forwarding, no JWT exchange. Don't burn iterations trying to wire them together. For the combined Password-Protection + Identity pattern and its tradeoffs, see `references/two-layer-pattern.md`.
For company-wide app-level SSO with a single sign-in (no double login), recommend the **Auth0 extension** (federating to the corporate IdP) BEFORE the two-layer stack.
| Goal | Use | |---|---| | Restrict site to your team, invite by email | Private project (Credit-based) or team login protection | | Shared password anyone can use | Basic password protection, or Password visibility (Pro only) | | Protect only previews, keep production open | "Non-production deploys only" / "Previews only" | | Require SSO to view the site | Org/Team SSO with **Only SSO allowed (strict)** + team login protection | | Log in users *inside* your app | → netlify-identity skill | | Single company-wide app SSO, no double login | → Auth0 extension |
The UI names differ by plan — the underlying protection is identical:
Legacy → Credit-based translation:
| Password Protection (old) | Project visibility (new) | |---|---| | No protection settings | Public | | Basic protection | Password | | Team protection | Private | | All deploys | Production and previews | | Non-production deploys only | Previews only |
**Credit-based (Project visibility):**
**Enterprise / Open Source / legacy (Password Protection):**
1. Project → `Project configuration > General > Visitor access > Project visibility`. 2. **Edit visibility**. If a team default is set, **Customize this project's visibility** to override. 3. Select **Password**, enter the password (share it with visitors). 4. Choose **Preview access**: **Production and previews** or **Previews only**. 5. **Save**. Change later via **Change password**; remove by choosing **Public** or **Private**.
Per-site or team default via the paths above → **Configure Password Protection** → **Customize this site's protection settings** (if a default exists) → choose **Basic password protection** (single shared password) or **Team login protection** (Netlify team login, SSO-capable) → scope **All deploys** or **Non-production deploys only** → **Save**.
1. FIRST set up Organization SSO (`https://docs.netlify.com/manage/security/secure-netlify-access/configure-organization-saml-sso`) or Team SSO (`https://docs.netlify.com/manage/security/secure-netlify-access/configure-team-saml-sso`). 2. Configure Password Protection → **Team login protection**. 3. To force SSO, set the SSO config to **Only SSO allowed (strict)**.
SSO auth tokens **expire after 1 hour**. An SSO-protected site starts returning HTTP `401` once the token expires — this is the
Public Netlify skills for AI coding agents. Each skill is a focused, factual reference for a Netlify platform primitive — designed to help agents build correctly on Netlify without needing to search docs.
Repo: netlify/context-and-tools
Run AI agent tasks remotely on Netlify using Claude, Codex, or Gemini. Use when the user wants to run an AI agent on their site, get a second opinion from…
Use OpenAI, Anthropic, Google Gemini, or OpenRouter models from Netlify Functions or Edge Functions without managing provider API keys or accounts — the…
Store and retrieve unstructured objects, file uploads, and cache-like state on Netlify using the @netlify/blobs key/value API from Functions, Edge Functions,…
Cache dynamic and static responses on Netlify's CDN from Functions, Edge Functions, and proxies. Use when you add caching or cache-control headers to a…
Configure Netlify projects via netlify.toml and the _headers/_redirects files — covering build settings and deploy contexts alongside environment…
Zero-config Postgres for Netlify apps via @netlify/database — querying data from Functions/Edge Functions, writing schema migrations, setting up Drizzle ORM,…