clerk-expo

Implement Clerk authentication in Expo and React Native apps using @clerk/expo.

Updated Aug 22, 2026
One-click install
npx skills add https://github.com/Rajaryan1726/ai-code-review-system --skill clerk-expo-rajaryan1726
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: clerk-expo
Source: https://github.com/Rajaryan1726/ai-code-review-system/tree/main/client/.agents/skills/clerk-expo
Command: npx skills add https://github.com/Rajaryan1726/ai-code-review-system --skill clerk-expo-rajaryan1726

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Adding authentication to an Expo or React Native app involves many failure-prone details: token persistence, dashboard configuration, deprecated APIs, and build-type constraints. This Skill provides verified, current patterns for @clerk/expo so the generated auth code works against the installed SDK instead of relying on outdated examples. ## Core Features & Use Cases - Prebuilt native components: Set up AuthView, UserButton, and UserProfileView from @clerk/expo/native for development builds, with theming via the config plugin. - Custom auth flows: Build email/password, SMS/phone OTP, MFA, forgot-password, and email-link flows with the current method-based useSignIn/useSignUp API. - Social and native sign-in: Implement browser SSO with useSSO or native Google/Apple sign-in hooks, plus Expo Router protected routes, biometrics, passkeys, and push notification registration. - Use Case: A developer asks to add phone SMS auth to an Expo app; the Skill first checks the factor is enabled in the Clerk Dashboard, then generates sign-up and sign-in screens using signUp.verifications.sendPhoneCode and signIn.phoneCode.verifyCode with a captcha mount point. ## Quick Start Ask the assistant to add Clerk authentication to your Expo app and it will set up the provider, token cache, and a working sign-in flow.

Frequently Asked Questions about clerk-expo

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add Clerk authentication to an Expo app?▼

Install @clerk/expo and expo-secure-store, set EXPO_PUBLIC_CLERK_PUBLISHABLE_KEY in your .env, and wrap your root layout in ClerkProvider with tokenCache. Then use the prebuilt AuthView component for dev builds or custom useSignIn/useSignUp flows for Expo Go.

How do I add phone SMS authentication with Clerk in React Native?▼

Enable phone number and SMS verification in the Clerk Dashboard first, since SMS is instance-dependent. Then use signUp.create({ phoneNumber }) with verifications.sendPhoneCode/verifyPhoneCode for sign-up and signIn.phoneCode.sendCode/verifyCode for sign-in, calling finalize() when complete.

Does Clerk Expo work with Expo Go?▼

Custom flows with useSignIn/useSignUp and browser SSO via useSSO work in Expo Go. Native components like AuthView, native Google/Apple sign-in hooks, biometrics, and passkeys require a development build created with npx expo run:ios or run:android.

Why does my Clerk session not persist after restarting my Expo app?▼

The session is lost because tokenCache is missing from ClerkProvider. Import tokenCache from @clerk/expo/token-cache and pass it to the provider; it stores tokens in the device keychain via expo-secure-store. Never use AsyncStorage for session tokens.

Should I use useSSO or useOAuth for Google sign-in in Expo?▼

Use useSSO; useOAuth is deprecated. Call startSSOFlow({ strategy: 'oauth_google' }) and set the session with setActive({ session: createdSessionId }). For fully native Google sign-in without a browser, use useSignInWithGoogle from @clerk/expo/google with a development build.

When should I not use the clerk-expo skill?▼

Do not use it for native iOS/Swift or Android/Kotlin projects without React Native, or for web-only frameworks like Next.js or plain React. Those platforms have their own dedicated Clerk SDKs and matching skills.