---
Skills follow the [Agent Skills](https://agentskills.io/) format.
## Install
The `clerk` plugin bundles every skill plus the [Clerk MCP server](https://mcp.clerk.com/mcp). `npx skills` installs the skills alone, into any agent.
### Agent Skills
```bash
npx skills add clerk/skills
```
### Claude Code
```bash
/plugin marketplace add clerk/skills
/plugin install clerk@clerk-skills
```
To get updates automatically, open `/plugin`, go to **Marketplaces**, select `clerk-skills`, and enable auto-update.
### Codex
```bash
codex plugin marketplace add clerk/skills
codex plugin add clerk@clerk
```
`clerk` replaces the earlier `clerk-skills@clerk` plugin, which no longer updates. To switch, run `codex plugin remove clerk-skills@clerk`, then add `clerk@clerk`.
### Cursor
```bash
cursor-agent plugin marketplace add https://github.com/clerk/skills
```
Then install `clerk` from `/plugin`, or from **Customize** in the editor.
### GitHub Copilot CLI
```bash
copilot plugin marketplace add clerk/skills
copilot plugin install clerk@clerk-skills
```
`clerk` replaces the earlier `core`, `frameworks`, `features`, and `mobile` plugins. Copilot moves those installs to `clerk@clerk-skills` but leaves it disabled, so run `copilot plugin enable clerk@clerk-skills` once.
## Skills
### Core
| Skill | Purpose | When to Use |
|-------|---------|-------------|
| `/clerk` | **Router** - Routes to the right skill | Always start here |
| `clerk-cli` | Clerk CLI operations | Users, orgs, apps, env keys, deploy checks |
| `clerk-setup` | Add Clerk to any framework | New projects, framework setup |
| `clerk-custom-ui` | Custom sign-in/up and appearance | Building custom forms, styling |
| `clerk-backend-api` | Backend REST API explorer | Browsing or calling API endpoints |
### Framework Patterns
| Skill | Framework | Patterns |
|-------|-----------|----------|
| `clerk-nextjs-patterns` | Next.js | Middleware, Server Actions, caching |
| `clerk-react-patterns` | React | Hooks, auth guards, protected routes |
| `clerk-react-router-patterns` | React Router | Loaders, actions, route protection |
| `clerk-vue-patterns` | Vue | Composables, Pinia integration |
| `clerk-nuxt-patterns` | Nuxt | Server middleware, SSR auth |
| `clerk-astro-patterns` | Astro | SSR auth, island components |
| `clerk-tanstack-patterns` | TanStack Start | Server functions, route protection |
| `clerk-chrome-extension-patterns` | Chrome Extension | Background scripts, popup auth |
### Features
| Skill | Purpose | When to Use |
|-------|---------|-------------|
| `clerk-orgs` | Multi-tenant B2B organizations | Team workspaces, RBAC |
| `clerk-billing` | Subscription billing and feature gating | Pricing tables, plans, per-seat, entitlements |
| `clerk-webhooks` | Real-time events and data syncing | Database sync, notifications |
| `clerk-testing` | E2E testing for auth flows | Playwright/Cypress tests |
### Native Mobile
| Skill | Platform | Patterns |
|-------|----------|----------|
| `clerk-swift` | iOS, macOS | ClerkKitUI views, custom ClerkKit flows, Sign in with Apple |
| `clerk-android` | Android | Kotlin, Jetpack Compose |
| `clerk-expo` | Expo / React Native | Native components, custom flows, SMS OTP, OAuth |
## Quick Start
### 1. Ask Your Agent to Add Clerk
After installing Clerk Skills, ask your coding agent to add Clerk authentication
to your app. The [`clerk-setup`](skills/clerk-setup/SKILL.md) skill sets up
Clerk in an existing project, scaffolds a new app in an empty directory, and can
link an existing Clerk application instead of creating a new one.
For a new project on a supported framework, `clerk init` can start without a
Clerk account or browser login. See [Accountless development keys](skills/clerk-setup/SKILL.md#step-1c-accountless-development-keys)
for how temporary keys and later account claiming work.
### 2. Example Requests
| You Say | Skill Used |
|---------|------------|
| "List Clerk users" | `clerk-cli` |
| "Add Clerk auth to my Next.js app" | `clerk-setup` |
| "Use Server Actions with Clerk" | `clerk-nextjs-patterns` |
| "Add Clerk to my Vue app" | `clerk-vue-patterns` |
| "Add Clerk to my Nuxt app" | `clerk-nuxt-patterns` |
| "Add auth to my Expo app" | `clerk-expo` |
| "Add phone SMS auth to my Expo app" | `clerk-expo` |
| "Add Clerk to my Astro site" | `clerk-astro-patterns` |
| "Build custom sign-in form" | `clerk-custom-ui` |
| "Sync users to Prisma via webhooks" | `clerk-webhooks` |
| "Add Playwright tests for auth" | `clerk-testing` |
| "Set up organizations for my B2B app" | `clerk-orgs` |
| "Add subscription billing with pricing table" | `clerk-billing` |
| "Gate features by plan" | `clerk-billing` |
| "Add Clerk auth to my iOS app" | `clerk-setup` |
| "Add a custom sign-in screen to my SwiftUI app" | `clerk-swift` |
| "Add Clerk auth to my Android app" | `clerk-android` |
## Repository Structure
```
clerk-skills/ # the repo root is the plugin root
├── skills/ # one folder per skill, flat
│ ├── clerk/ # Router skill
│ ├── clerk-setup/
│ ├── clerk-nextjs-patterns/
│ └── ...
├── plugin.json # Agent Plugins 1.0.0 manifest
├── mcp.json # Agent Plugins MCP config
├── .mcp.json # Claude Code and older Codex MCP config
├── .claude-plugin/ # plugin.json + marketplace.json
├── .cursor-plugin/ # plugin.json + marketplace.json
├── .codex-plugin/plugin.json
├── .agents/plugins/marketplace.json # Codex marketplace
├── scripts/ # CI checkers, run with pnpm run check
└── README.md
```
## Contributing
This repo uses [pnpm](https://pnpm.io). If you've enabled Corepack, run `corepack disable pnpm` first; Corepack can't run pnpm 12.
[Install pnpm](https://pnpm.io/installation), then run:
```bash
pnpm install
pnpm test # test the checkers
pnpm run check # validate the skills
```
## Resources
- [Clerk Docs](https://clerk.com/docs)
- [Dashboard](https://dashboard.clerk.com)
- [Discord](https://clerk.com/discord)
## Request a Skill
Don't see what you need? [Request a skill](https://github.com/clerk/skills/issues/new?template=skill-request.md).
## License
MIT