Auth0 logo

Auth0

Organization
auth0
auth0

Use when adding, fixing, or improving how an app authenticates users or protects an API, or when using or configuring any Auth0 feature — signing users in and out, sessions and tokens, guarding routes and endpoints, MFA, SSO, Organizations, RBAC, custom domains, Universal Portals for hosted account and organization self-service, or Universal Login branding. Also use to audit a tenant's health, security, and plan fit (CheckMate), to debug why an auth flow fails, to migrate from another auth provider, or to set up the Vercel native integration. Covers any web, mobile, or backend framework and every Auth0 SDK, tool, and API. Use even if the user never mentions Auth0.

Overview

Publisherauth0
Repositoryagent-skills
Skill nameauth0
Stars
52
Forks
28
Bundled files
110
LicenseApache-2.0
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 110 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by auth0 on GitHub. Read the source before you install it.

Installation

Install the Auth0 AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/auth0/agent-skills/tree/main/plugins/auth0/skills/auth0
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/auth0/agent-skills.git /tmp/agent-skills
mkdir -p .claude/skills
cp -r /tmp/agent-skills/plugins/auth0/skills/auth0 .claude/skills/auth0
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Auth0 in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Auth0 on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Auth0 is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Auth0

Detect intent → detect framework → detect tooling → load 2–3 reference files.


Step 1: Detect intent

Match the request against the What the developer wants column — it describes the goal in plain language, not just the Auth0 term (someone who says "make users confirm with a code from their phone" lands on feature:mfa). The Intent you pick is a lookup key: in Step 4 it appears verbatim as a section heading (### feature:mfa) listing which reference files to load.

What the developer wants (plain language + Auth0 term)Intent
Add login, signup, sign-in, "let users log in / create accounts" to an app, or otherwise add and use an Auth0 SDK in an app or scriptintegrate
Require a second step after the password — a one-time code, SMS or email code, authenticator app, passkey, fingerprint/face (biometric), or security key; or re-confirm identity before a sensitive action. Auth0: multi-factor authentication (MFA), two-factor (2FA), two-step verification, step-up authentication.feature:mfa
Let separate companies, teams, workspaces, or tenants each have their own users, members, roles, and login — typically a product sold to businesses. Auth0: Organizations, multi-org, B2B SaaS.feature:organizations
Deploy a hosted self-service portal for profile, passkeys, MFA, or organization details instead of building a “My Account” or “My Organization” UI. Auth0: Universal Portals, My Account portal, My Organization portal.feature:universal-portals
Serve the login page from your own web address (e.g. login.example.com, auth.company.com) instead of the default Auth0 URL. Auth0: custom domain.feature:custom-domains
Build fully custom login/signup screens with your own code or framework, beyond what theme settings allow. Auth0: Advanced Customization for Universal Login (ACUL).feature:acul
Change how the login page looks — logo, colors, fonts, background, overall theme. Auth0: branding, Universal Login customization.feature:branding
Bind tokens to the client so a stolen or leaked token can't be reused/replayed from another machine. Auth0: DPoP (Demonstrating Proof-of-Possession), sender-constrained tokens.feature:dpop
Audit a tenant for security/config issues, report, then optionally fix findings. Auth0: tenant audit, CheckMate.audit
Check if a tenant is healthy and on the right plan — two scores + a recommendation. Auth0: health check.healthcheck
Ask for best practices, "is this secure?", how to handle tokens safely, "how should I do X". Auth0: guidance / security.guidance
Hit an error: 401 Unauthorized, 403 Forbidden, CORS, callback URL mismatch, redirect loop. Auth0: debugging.debug
Hit rate limiting: 429 Too Many Requests, quota exceeded. Auth0: rate limits.debug:rate-limit
Move an existing app off Clerk, NextAuth.js, Firebase, Cognito, Okta, Supabase, Passport.js, or another auth provider. Auth0: provider migration.migrate
Upgrade the Auth0 SDK itself to a new major version (e.g. Auth0.swift v2→v3, Auth0.Android v3→v4) — breaking changes, deprecated APIs, "update to the latest SDK". Auth0: SDK major-version upgrade.upgrade-sdk
Install Auth0's Vercel Marketplace integration, connect Auth0 to a Vercel project, or sync Auth0 configuration into a Vercel-hosted Next.js app. Auth0: Vercel native integration.integrate
Use the Auth0 CLI directly — "create an app/API with the auth0 CLI", script tenant setup, or automate Auth0 config in CI — with no application framework in play. Auth0: CLI / tooling-only.tooling

If nothing clearly matches

Pick the closest goal. If the goal is genuinely unclear, ask the developer what they're trying to accomplish - don't guess an intent.


Step 2: Detect framework

Skip this step for the tooling intent — a CLI-first request has no framework. Go to Step 3, load the tooling reference; only ask about a framework if the developer later pivots to integrating auth into an app.

Work top-down. Stop at the first tier that yields a framework.

Tier 1 — Auth0 SDK already installed (strongest signal)

Node.js / JavaScript / TypeScript — check package.json → dependencies

Rows are most-specific first: an Ionic/Capacitor project also carries the base SDK, so check the @capacitor/browser rows before it.

PackageFramework
@capacitor/browser + @auth0/auth0-angularionic-angular
@capacitor/browser + @auth0/auth0-reactionic-react
@capacitor/browser + @auth0/auth0-vueionic-vue
@auth0/nextjs-auth0nextjs
@auth0/auth0-nuxtnuxt
@auth0/auth0-tanstack-start-reacttanstack-start
@auth0/auth0-reactreact
@auth0/auth0-vuevue
@auth0/auth0-angularangular
@auth0/auth0-spa-jsspa-js
express-openid-connectexpress
@auth0/auth0-fastifyfastify
@auth0/auth0-fastify-apifastify-api
express-oauth2-jwt-bearerexpress-jwt
react-native-auth0 + app.json or app.config.js presentexpo
react-native-auth0 (no Expo files)react-native
@auth0/auth0-api-jsauth0-api-js
@auth0/auth0-server-jsauth0-server-js
@auth0/auth0-auth-jsauth0-auth-js
auth0 (the bare package, not @auth0/*)node-auth0

Python — check requirements.txt or pyproject.toml

Rows are most-specific first: auth0-server-python is the framework-agnostic server core, so check for a co-installed web framework before falling back to the bare-SDK row.

PackageFramework
auth0-server-python + flaskflask
auth0-server-python (no Flask web framework)server-python
auth0-fastapi-apifastapi-api

Java / Kotlin — check build.gradle or pom.xml

DependencyFramework
mvc-auth-commons (com.auth0:mvc-auth-commons)java-mvc
spring-security-oauth2-resource-serverspringboot-api

.NET — check *.csproj or NuGet.Config

PackageFramework
Auth0.AspNetCore.Authentication (no .Api suffix)aspnetcore-auth
Auth0.AspNetCore.Authentication.Apiaspnetcore-api
Auth0.OidcClient.MAUImaui
Auth0.OidcClient.AndroidXnet-android
Auth0.OidcClient.iOSnet-ios
Auth0.OidcClient.WinFormswinforms
Auth0.OidcClient.WPFwpf

PHP — check composer.json

auth0/auth0-php powers both PHP web apps and APIs via SdkConfiguration's strategy. The STRATEGY_API row is more specific — check it first.

PackageFramework
auth0/auth0-php + SdkConfiguration::STRATEGY_API (or strategy: 'api')php-api
auth0/auth0-php (no STRATEGY_API / STRATEGY_REGULAR or strategy: 'webapp')php
auth0/login (laravel, no AuthorizationGuard)laravel
auth0/login + AuthorizationGuardlaravel-api

If auth0/auth0-php is installed but no SdkConfiguration strategy is set yet (fresh project), fall through to variant disambiguation below.

Go — check go.mod

ModuleFramework
github.com/auth0/go-jwt-middlewarego

Mobile (native)

SignalFramework
build.gradle(.kts) + com.auth0.kmp:auth0 (Kotlin Multiplatform module)kmp
Package.swift or .xcodeproj + Auth0.swiftswift
build.gradle + com.auth0.android:auth0android
pubspec.yaml + auth0_flutter + developer names/targets Windows desktopflutter-windows
pubspec.yaml + auth0_flutter + flutter.web: falseflutter-native
pubspec.yaml + auth0_flutter + web enabledflutter-web

Tier 2 — Framework from non-Auth0 workspace dependencies

If no Auth0 SDK matched, detect the framework from ordinary (non-Auth0) dependencies. Stop at the first match. This picks the base; any web-vs-API variant is resolved in "Variant disambiguation" below. As in Tier 1, check the @ionic/* rows before their base framework.

SignalBase framework
next in package.jsonnextjs
nuxt in package.jsonnuxt
@tanstack/react-start in package.jsontanstack-start
@ionic/* + @angular/coreionic-angular
@ionic/* + reactionic-react
@ionic/* + vueionic-vue
@angular/core in package.jsonangular
vue in package.json (no nuxt)vue
expo in package.jsonexpo
react-native (no expo)react-native
react (no meta-framework above)react (SPA) — see note
express in package.jsonexpress (variant below)
fastify in package.jsonfastify (variant below)
flask in requirements.txt/pyproject.tomlflask
fastapi in requirements.txt/pyproject.tomlfastapi-api (variant below)
spring-boot in pom.xml/build.gradlespringboot-api
laravel/framework in composer.jsonlaravel (variant below)
composer.json present (no Laravel)php (variant below)
go.mod present + HTTP server/routergo
org.jetbrains.kotlin.multiplatform plugin + commonMain source set (shared Android+iOS module)kmp
Package.swift or .xcodeprojswift
pubspec.yaml (Flutter) + developer names/targets Windows desktopflutter-windows
pubspec.yaml (Flutter, web disabled)flutter-native
pubspec.yaml (Flutter, web enabled)flutter-web
*.csproj referencing MAUImaui
*.csproj (WinForms)winforms
*.csproj (WPF)wpf
*.csproj ASP.NET (web app or API)aspnetcore (variant below)

react note: a plain React project maps to react for an SPA using the React SDK, or spa-js if the app is framework-agnostic vanilla JS. If unclear, ask before loading.

Tier 3 — Framework from the prompt

If no workspace signal matched, map the framework or language named in the request. Stop at the first match.

Developer mentions...Framework
Next.js / nextnextjs
Nuxtnuxt
TanStack Start (React)tanstack-start
Angular (not Ionic)angular
Vue (not Nuxt/Ionic)vue
React SPA (not Next.js)react
vanilla JS / plain JS / no framework SPAspa-js
node-auth0 / the auth0 npm packagenode-auth0
@auth0/auth0-api-js / auth0-api-js / low-level resource-server SDKauth0-api-js
@auth0/auth0-server-js / auth0-server-js / server-side Auth0 session SDKauth0-server-js
@auth0/auth0-auth-js / auth0-auth-js / AuthClient / low-level OAuth OIDCauth0-auth-js
Express (web app / server-rendered)express
Express API / protect API routesexpress-jwt
Fastify (web) / Fastify APIfastify / fastify-api
Flaskflask
FastAPI (web app) / FastAPI APIserver-python / fastapi-api
auth0-server-python / framework-agnostic Python server SDK / Python OIDC web server with no dedicated reference (Django, Starlette, Sanic, Quart, aiohttp)server-python
Spring Bootspringboot-api
Java MVC / servletjava-mvc
ASP.NET Core web app / APIaspnetcore-auth / aspnetcore-api
MAUI / WinForms / WPFmaui / winforms / wpf
PHP web app / PHP APIphp / php-api
Laravel web app / Laravel APIlaravel / laravel-api
Go / Golang APIgo
Kotlin Multiplatform / KMP / shared Android+iOS auth code / com.auth0.kmpkmp
Swift / iOSswift
Android / Kotlinandroid
Flutter (native / web / Windows)flutter-native / flutter-web / flutter-windows
React Native / Exporeact-native / expo
Ionic (Angular/React/Vue)ionic-angular / ionic-react / ionic-vue

Variant disambiguation (web app vs API)

Some frameworks have separate web-app and API references. When Tier 1 did not pin the variant, choose intent-first:

BaseWeb-app variantAPI variantChoose API when…
expressexpressexpress-jwtprotecting API routes / validating JWTs, no server-rendered UI
fastifyfastifyfastify-apiresource server / JWT validation only
fastapiserver-pythonfastapi-apiresource server / JWT validation only; a web app with login/logout UI uses server-python
phpphpphp-apibuilding/protecting a PHP API, no web UI
laravellaravellaravel-apiAPI-only (token guard), no Blade UI
aspnetcoreaspnetcore-authaspnetcore-apiWeb API / JWT bearer, no cookie login UI

If intent is still ambiguous (both a UI and protected endpoints, or unclear), state what you detected and ask the developer web app vs API before loading.

If nothing matched

Ask the developer what framework/language they are using. Do not guess.

Conflicts

If Tier 2 (workspace) and Tier 3 (prompt) disagree materially (e.g. the prompt says "Next.js" but package.json has no next), state the conflict and ask rather than silently picking. Workspace signals outrank the prompt when both are present and consistent.


Step 3: Detect tooling

Read the project file tree and the request — a project-context decision, not a product preference.

Project has...Load
terraform/ directory OR any *.tf filestooling-terraform/index.md
Auth0 MCP server active in this agent sessiontooling-mcp/index.md
A request for the Auth0 Vercel Marketplace/native integration, or to connect Auth0 to a Vercel projecttooling-vercel/index.md
Anything else (default)tooling-cli/index.md

Step 4: Load reference files

Find the section below whose heading matches the Intent you picked in Step 1, then read the reference files it lists.

integrate

Read: references/framework-{framework}/index.md
Read: references/tooling-{tooling}/index.md
Follow the integration workflow in references/framework-{framework}/index.md.
Use references/tooling-{tooling}/index.md for all Auth0 tenant configuration steps.

feature:mfa

Read: references/feature-mfa/index.md
Read: references/tooling-{tooling}/index.md

feature:organizations

Read: references/feature-organizations/index.md
Read: references/tooling-{tooling}/index.md
If framework detected: Read references/framework-{framework}/index.md
If multi-tenant architecture / B2B SaaS design question: also Read references/pattern-multi-tenant/index.md

feature:universal-portals

Read: references/feature-universal-portals/index.md
Read: references/tooling-{tooling}/index.md

feature:custom-domains

Read: references/feature-custom-domains/index.md
Read: references/tooling-{tooling}/index.md

feature:acul

Read: references/feature-acul/index.md
Read: references/tooling-{tooling}/index.md

feature:branding

Read: references/feature-branding/index.md
Read: references/tooling-{tooling}/index.md

feature:dpop

Read: references/feature-dpop/index.md
Read: references/tooling-{tooling}/index.md
If a SPA framework is detected (vue/react/angular/spa-js): Read references/framework-{framework}/index.md
DPoP is SPA-only (no SSR: Next.js/Nuxt) — feature-dpop/index.md states the exclusion.

guidance

Read: references/pattern-security/index.md
If framework detected: Read references/framework-{framework}/index.md (for SDK-specific guidance — token storage, session handling, route protection)
If token handling / JWT vs opaque / storage: Read references/pattern-token-handling/index.md
If multi-tenant / B2B architecture: Read references/pattern-multi-tenant/index.md + references/feature-organizations/index.md

debug

Read: references/pattern-common-errors/index.md
If framework detected: Read references/framework-{framework}/index.md

debug:rate-limit

Read: references/pattern-rate-limiting/index.md

migrate

Read: references/feature-migration/index.md
Read: references/tooling-{tooling}/index.md
If framework detected: Read references/framework-{framework}/index.md

audit

Read: references/feature-audit/index.md
Read: references/feature-audit-pricing/index.md
Read: references/feature-audit-remediation/index.md
Read: references/tooling-{tooling}/index.md
Apply findings only with per-command confirmation; verify each change by re-fetch.

healthcheck

Read: references/feature-healthcheck/index.md
Read: references/feature-audit/index.md
Read: references/feature-audit-pricing/index.md
Read: references/feature-audit-remediation/index.md
Read: references/tooling-{tooling}/index.md
If a scan can run, do the audit workflow first, then score and recommend a plan. If not, score capability fit and recommend anyway. Never quote Enterprise pricing.

upgrade-sdk

Read: references/framework-{framework}/index.md
Follow its "Major Version Migration" section (e.g. Auth0.swift v3, Auth0.Android v4).
This is an Auth0 SDK version bump — NOT a provider migration. Do not load feature-migration/index.md.
If no framework is detected: ask which Auth0 SDK the developer is upgrading.

tooling

Read: references/tooling-{tooling}/index.md
No framework file — this is a CLI/tooling-only task (create apps/APIs, script
tenant setup, automate config in CI). If the developer then wants to integrate
auth into an app, return to Step 1 with the integrate intent.

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

and 50 more files.

Frequently asked questions

What does the Auth0 AI skill do?

Use when adding, fixing, or improving how an app authenticates users or protects an API, or when using or configuring any Auth0 feature — signing users in and out, sessions and tokens, guarding routes and endpoints, MFA, SSO, Organizations, RBAC, custom domains, Universal Portals for hosted account and organization self-service, or Universal Login branding. Also use to audit a tenant's health, security, and plan fit (CheckMate), to debug why an auth flow fails, to migrate from another auth provider, or to set up the Vercel native integration. Covers any web, mobile, or backend framework and...

Why use Auth0 on TypingMind?

Because you install it once and use it with any model. Auth0 is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Auth0 in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/auth0/agent-skills/tree/main/plugins/auth0/skills/auth0. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Auth0?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Auth0?

As many as you like. As long as a model supports skills, you can use Auth0 with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Auth0 AI skill free?

Yes. It is published on GitHub by auth0 under the Apache-2.0 license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇