[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-clerk-clerk-android":3,"mdc-t9ypmg-key":34,"related-org-clerk-clerk-android":1301,"related-repo-clerk-clerk-android":1489},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":23,"repoUrl":24,"updatedAt":25,"license":26,"forks":27,"topics":28,"repo":29,"sourceUrl":32,"mdContent":33},"clerk-android","implement Clerk auth for native Android apps","Implement Clerk authentication for native Android apps using Kotlin and Jetpack Compose with clerk-android source-guided patterns. Use for prebuilt AuthView\u002FUserButton or custom API-driven auth flows. Do not use for Expo or React Native projects.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"clerk","Clerk","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fclerk.png",[12,16,17,20],{"name":13,"slug":14,"type":15},"Kotlin","kotlin","tag",{"name":9,"slug":8,"type":15},{"name":18,"slug":19,"type":15},"Android","android",{"name":21,"slug":22,"type":15},"Mobile","mobile",59,"https:\u002F\u002Fgithub.com\u002Fclerk\u002Fskills","2026-04-10T05:00:18.622871","MIT",4,[],{"repoUrl":24,"stars":23,"forks":27,"topics":30,"description":31},[],"AI Skills to enhance working with Clerk","https:\u002F\u002Fgithub.com\u002Fclerk\u002Fskills\u002Ftree\u002FHEAD\u002Fskills\u002Fmobile\u002Fclerk-android","---\nname: clerk-android\ndescription: Implement Clerk authentication for native Android apps using Kotlin and\n  Jetpack Compose with clerk-android source-guided patterns. Use for prebuilt AuthView\u002FUserButton\n  or custom API-driven auth flows. Do not use for Expo or React Native projects.\nlicense: MIT\nallowed-tools: WebFetch\nmetadata:\n  author: clerk\n  version: 1.2.0\ncompatibility: Requires Android Studio and clerk-android Gradle dependency\n---\n\n# Clerk Android (Native)\n\nThis skill implements Clerk in native Android projects by following current `clerk-android` SDK and docs patterns.\n\n## Activation Rules\n\nActivate this skill when either condition is true:\n- The user explicitly asks for Android, Kotlin, Jetpack Compose, or native mobile Clerk implementation on Android.\n- The project appears to be native Android (for example `build.gradle(.kts)` with Android plugins, `AndroidManifest.xml`, `app\u002Fsrc\u002Fmain\u002Fjava`, Compose UI files).\n\nDo not activate this skill when either condition is true:\n- The project is Expo.\n- The project is React Native.\n\nIf Expo\u002FReact Native signals are present, route to the general setup skill instead.\n\n## What Do You Need?\n\n| Task | Reference |\n|------|-----------|\n| Prebuilt AuthView \u002F UserButton (fastest) | references\u002Fprebuilt.md |\n| Custom API-driven auth flows (full control) | references\u002Fcustom.md |\n\n## Quick Start\n\n| Step | Action |\n|------|--------|\n| 1 | Confirm project type is native Android and not Expo\u002FReact Native |\n| 2 | Determine flow type (`prebuilt` or `custom`) and load the matching reference file |\n| 3 | Ensure a real Clerk publishable key exists (or ask developer) |\n| 4 | Ensure correct Clerk artifacts are installed for the selected flow |\n| 5 | Read official Android quickstart and verify required setup (Native API, min SDK\u002FJava, manifest, initialization) |\n| 6 | Inspect `clerk-android` source\u002Fsample patterns relevant to selected flow |\n| 7 | Implement flow by following only the selected reference checklist |\n\n## Decision Tree\n\n```text\nUser asks for Clerk in Android\u002FKotlin\n    |\n    +-- Expo\u002FReact Native project detected?\n    |     |\n    |     +-- YES -> Do not use this skill\n    |     |\n    |     +-- NO -> Continue\n    |\n    +-- Existing auth UI detected?\n    |     |\n    |     +-- Prebuilt views detected -> Load references\u002Fprebuilt.md\n    |     |\n    |     +-- Custom flow detected -> Load references\u002Fcustom.md\n    |     |\n    |     +-- New implementation -> Ask developer prebuilt\u002Fcustom, then load matching reference\n    |\n    +-- Ensure publishable key and SDK initialization path\n    |\n    +-- Ensure correct Android artifacts are installed\n    |\n    +-- Verify quickstart prerequisites in project\n    |\n    +-- Implement using selected flow reference\n```\n\n## Flow References\n\nAfter flow type is known, load exactly one:\n- Prebuilt flow: [references\u002Fprebuilt.md](references\u002Fprebuilt.md)\n- Custom flow: [references\u002Fcustom.md](references\u002Fcustom.md)\n\nDo not blend the two references in a single implementation unless the developer explicitly asks for a hybrid approach.\n\n## Interaction Contract\n\nBefore any implementation edits, the agent must have both:\n- flow choice: `prebuilt` or `custom`\n- a real Clerk publishable key\n\nIf either value is missing from the user request\u002Fcontext:\n- ask the user for the missing value(s)\n- pause and wait for the answer\n- do not edit files or install dependencies yet\n\nOnly skip asking when the user has already explicitly provided the value in this conversation.\n\n## Source-Driven Templates\n\nDo not hardcode implementation examples in this skill. Inspect current `clerk-android` source\u002Fdocs for the installed SDK version before implementing.\n\n| Use Case | Source of Truth |\n|----------|-----------------|\n| SDK artifacts and dependency split (`clerk-android-api` vs `clerk-android-ui`) | `clerk-android` README and Android install docs |\n| SDK initialization and publishable key wiring | Android quickstart and `source\u002Fapi\u002F...\u002FClerk.kt` |\n| Prebuilt auth and profile behavior | `source\u002Fui\u002F...\u002FAuthView.kt`, `source\u002Fui\u002F...\u002FUserButton.kt`, and prebuilt sample |\n| Custom auth sequencing and factor handling | `source\u002Fui\u002Fauth\u002F*`, `source\u002Fapi\u002Fauth\u002F*`, and custom-flows sample |\n| Capability\u002Ffeature gating from instance settings | `Clerk` public fields (for example `enabledFirstFactorAttributes`, `socialProviders`, `isGoogleOneTapEnabled`, `mfaIsEnabled`) and environment model source |\n| Required Android setup checklist | Official Android quickstart (`\u002Fdocs\u002Fandroid\u002Fgetting-started\u002Fquickstart`) |\n\n## Execution Gates (Do Not Skip)\n\n1. No implementation edits before prerequisites\n- Do not edit project files until flow type is confirmed and a valid publishable key is available.\n\n2. Missing flow or key must trigger a question\n- If flow choice is missing, explicitly ask: prebuilt views or custom flow.\n- If publishable key is missing\u002Fplaceholder\u002Finvalid, explicitly ask for a real key.\n- Do not continue until both answers are provided.\n\n3. Publishable key wiring mode is mandatory\n- By default, wire the developer-provided key directly in `Clerk.initialize(...)`.\n- Do not introduce secret-management indirection unless explicitly requested.\n\n4. Artifact install policy is mandatory\n- Prebuilt flow: use `clerk-android-ui` (includes API).\n- Custom flow: use `clerk-android-api` unless prebuilt components are explicitly requested.\n- If Clerk artifacts are missing, add the latest stable release available.\n\n5. Android quickstart compliance is mandatory\n- Verify Native API is enabled for the Clerk app.\n- Verify Android requirements from quickstart are implemented in project (minimum SDK and Java target, manifest internet permission, app-level Clerk initialization).\n- Verify app waits for SDK initialization (`Clerk.isInitialized`) before assuming auth-ready state.\n\n6. Capability-driven behavior is mandatory\n- Use Clerk runtime capability\u002Fsettings state (for example enabled factors\u002Fsocial providers\u002FMFA flags) to gate flow behavior.\n- Do not hardcode factor assumptions that may conflict with dashboard configuration.\n\n7. Reference-file discipline is mandatory\n- Once flow is selected, follow only that flow reference file for implementation and verification.\n\n8. Custom-flow structure parity is mandatory\n- For `custom` flow, preserve multi-step auth progression and factor-specific handling (no single all-fields form by default).\n- Keep UI, state orchestration, and Clerk API integration in separate modules.\n\n9. Prebuilt preference is mandatory when selected\n- For `prebuilt` flow, do not rebuild auth forms with custom API calls unless explicitly requested.\n- Use `AuthView`\u002F`UserButton` as default building blocks.\n\n## Workflow\n\n1. Detect native Android vs Expo\u002FReact Native.\n2. If flow type is not explicitly provided, ask user for `prebuilt` or `custom`.\n3. If publishable key is not explicitly provided, ask user for it.\n4. Wait for both answers before changing files.\n5. Load matching flow reference file.\n6. Ensure `Clerk.initialize(...)` path and publishable key wiring are valid.\n7. Ensure dependencies\u002Fartifacts match selected flow.\n8. Review Android quickstart requirements and apply missing setup in project.\n9. Implement using selected reference checklist.\n10. Verify using selected reference checklist plus shared gates.\n\n## Common Pitfalls\n\n| Level | Issue | Prevention |\n|-------|-------|------------|\n| CRITICAL | Not asking for missing flow choice before implementation | Ask for `prebuilt` vs `custom` and wait before edits |\n| CRITICAL | Not asking for missing publishable key before implementation | Ask for key and wait before edits |\n| CRITICAL | Starting implementation before flow type is confirmed | Confirm flow first and load matching reference |\n| CRITICAL | Skipping Android quickstart prerequisites | Verify and apply required setup from official Android quickstart |\n| CRITICAL | Missing app-level `Clerk.initialize(...)` call | Initialize Clerk from `Application` startup path |\n| HIGH | Wrong artifact for chosen flow | Prebuilt: `clerk-android-ui`; custom: `clerk-android-api` |\n| HIGH | Rendering auth UI before SDK initialization completes | Gate UI with `Clerk.isInitialized` state |\n| HIGH | Hardcoding auth factors\u002Fsocial providers | Drive behavior from Clerk runtime capability fields |\n| HIGH | Using this skill for Expo\u002FReact Native | Detect and route away before implementation |\n\n## See Also\n\n- `clerk` skill for top-level Clerk routing\n- `clerk-setup` skill for cross-framework quickstart setup\n- `https:\u002F\u002Fgithub.com\u002Fclerk\u002Fclerk-android`\n- `https:\u002F\u002Fclerk.com\u002Fdocs\u002Fandroid\u002Fgetting-started\u002Fquickstart`\n",{"data":35,"body":40},{"name":4,"description":6,"license":26,"allowed-tools":36,"metadata":37,"compatibility":39},"WebFetch",{"author":8,"version":38},"1.2.0","Requires Android Studio and clerk-android Gradle dependency",{"type":41,"children":42},"root",[43,52,66,73,78,117,122,135,140,146,200,206,342,348,360,366,371,393,398,404,409,433,438,456,461,467,479,673,679,688,696,705,723,732,753,761,793,802,828,837,850,859,867,876,896,905,940,946,1018,1024,1253,1259],{"type":44,"tag":45,"props":46,"children":48},"element","h1",{"id":47},"clerk-android-native",[49],{"type":50,"value":51},"text","Clerk Android (Native)",{"type":44,"tag":53,"props":54,"children":55},"p",{},[56,58,64],{"type":50,"value":57},"This skill implements Clerk in native Android projects by following current ",{"type":44,"tag":59,"props":60,"children":62},"code",{"className":61},[],[63],{"type":50,"value":4},{"type":50,"value":65}," SDK and docs patterns.",{"type":44,"tag":67,"props":68,"children":70},"h2",{"id":69},"activation-rules",[71],{"type":50,"value":72},"Activation Rules",{"type":44,"tag":53,"props":74,"children":75},{},[76],{"type":50,"value":77},"Activate this skill when either condition is true:",{"type":44,"tag":79,"props":80,"children":81},"ul",{},[82,88],{"type":44,"tag":83,"props":84,"children":85},"li",{},[86],{"type":50,"value":87},"The user explicitly asks for Android, Kotlin, Jetpack Compose, or native mobile Clerk implementation on Android.",{"type":44,"tag":83,"props":89,"children":90},{},[91,93,99,101,107,109,115],{"type":50,"value":92},"The project appears to be native Android (for example ",{"type":44,"tag":59,"props":94,"children":96},{"className":95},[],[97],{"type":50,"value":98},"build.gradle(.kts)",{"type":50,"value":100}," with Android plugins, ",{"type":44,"tag":59,"props":102,"children":104},{"className":103},[],[105],{"type":50,"value":106},"AndroidManifest.xml",{"type":50,"value":108},", ",{"type":44,"tag":59,"props":110,"children":112},{"className":111},[],[113],{"type":50,"value":114},"app\u002Fsrc\u002Fmain\u002Fjava",{"type":50,"value":116},", Compose UI files).",{"type":44,"tag":53,"props":118,"children":119},{},[120],{"type":50,"value":121},"Do not activate this skill when either condition is true:",{"type":44,"tag":79,"props":123,"children":124},{},[125,130],{"type":44,"tag":83,"props":126,"children":127},{},[128],{"type":50,"value":129},"The project is Expo.",{"type":44,"tag":83,"props":131,"children":132},{},[133],{"type":50,"value":134},"The project is React Native.",{"type":44,"tag":53,"props":136,"children":137},{},[138],{"type":50,"value":139},"If Expo\u002FReact Native signals are present, route to the general setup skill instead.",{"type":44,"tag":67,"props":141,"children":143},{"id":142},"what-do-you-need",[144],{"type":50,"value":145},"What Do You Need?",{"type":44,"tag":147,"props":148,"children":149},"table",{},[150,169],{"type":44,"tag":151,"props":152,"children":153},"thead",{},[154],{"type":44,"tag":155,"props":156,"children":157},"tr",{},[158,164],{"type":44,"tag":159,"props":160,"children":161},"th",{},[162],{"type":50,"value":163},"Task",{"type":44,"tag":159,"props":165,"children":166},{},[167],{"type":50,"value":168},"Reference",{"type":44,"tag":170,"props":171,"children":172},"tbody",{},[173,187],{"type":44,"tag":155,"props":174,"children":175},{},[176,182],{"type":44,"tag":177,"props":178,"children":179},"td",{},[180],{"type":50,"value":181},"Prebuilt AuthView \u002F UserButton (fastest)",{"type":44,"tag":177,"props":183,"children":184},{},[185],{"type":50,"value":186},"references\u002Fprebuilt.md",{"type":44,"tag":155,"props":188,"children":189},{},[190,195],{"type":44,"tag":177,"props":191,"children":192},{},[193],{"type":50,"value":194},"Custom API-driven auth flows (full control)",{"type":44,"tag":177,"props":196,"children":197},{},[198],{"type":50,"value":199},"references\u002Fcustom.md",{"type":44,"tag":67,"props":201,"children":203},{"id":202},"quick-start",[204],{"type":50,"value":205},"Quick Start",{"type":44,"tag":147,"props":207,"children":208},{},[209,225],{"type":44,"tag":151,"props":210,"children":211},{},[212],{"type":44,"tag":155,"props":213,"children":214},{},[215,220],{"type":44,"tag":159,"props":216,"children":217},{},[218],{"type":50,"value":219},"Step",{"type":44,"tag":159,"props":221,"children":222},{},[223],{"type":50,"value":224},"Action",{"type":44,"tag":170,"props":226,"children":227},{},[228,241,270,283,296,309,329],{"type":44,"tag":155,"props":229,"children":230},{},[231,236],{"type":44,"tag":177,"props":232,"children":233},{},[234],{"type":50,"value":235},"1",{"type":44,"tag":177,"props":237,"children":238},{},[239],{"type":50,"value":240},"Confirm project type is native Android and not Expo\u002FReact Native",{"type":44,"tag":155,"props":242,"children":243},{},[244,249],{"type":44,"tag":177,"props":245,"children":246},{},[247],{"type":50,"value":248},"2",{"type":44,"tag":177,"props":250,"children":251},{},[252,254,260,262,268],{"type":50,"value":253},"Determine flow type (",{"type":44,"tag":59,"props":255,"children":257},{"className":256},[],[258],{"type":50,"value":259},"prebuilt",{"type":50,"value":261}," or ",{"type":44,"tag":59,"props":263,"children":265},{"className":264},[],[266],{"type":50,"value":267},"custom",{"type":50,"value":269},") and load the matching reference file",{"type":44,"tag":155,"props":271,"children":272},{},[273,278],{"type":44,"tag":177,"props":274,"children":275},{},[276],{"type":50,"value":277},"3",{"type":44,"tag":177,"props":279,"children":280},{},[281],{"type":50,"value":282},"Ensure a real Clerk publishable key exists (or ask developer)",{"type":44,"tag":155,"props":284,"children":285},{},[286,291],{"type":44,"tag":177,"props":287,"children":288},{},[289],{"type":50,"value":290},"4",{"type":44,"tag":177,"props":292,"children":293},{},[294],{"type":50,"value":295},"Ensure correct Clerk artifacts are installed for the selected flow",{"type":44,"tag":155,"props":297,"children":298},{},[299,304],{"type":44,"tag":177,"props":300,"children":301},{},[302],{"type":50,"value":303},"5",{"type":44,"tag":177,"props":305,"children":306},{},[307],{"type":50,"value":308},"Read official Android quickstart and verify required setup (Native API, min SDK\u002FJava, manifest, initialization)",{"type":44,"tag":155,"props":310,"children":311},{},[312,317],{"type":44,"tag":177,"props":313,"children":314},{},[315],{"type":50,"value":316},"6",{"type":44,"tag":177,"props":318,"children":319},{},[320,322,327],{"type":50,"value":321},"Inspect ",{"type":44,"tag":59,"props":323,"children":325},{"className":324},[],[326],{"type":50,"value":4},{"type":50,"value":328}," source\u002Fsample patterns relevant to selected flow",{"type":44,"tag":155,"props":330,"children":331},{},[332,337],{"type":44,"tag":177,"props":333,"children":334},{},[335],{"type":50,"value":336},"7",{"type":44,"tag":177,"props":338,"children":339},{},[340],{"type":50,"value":341},"Implement flow by following only the selected reference checklist",{"type":44,"tag":67,"props":343,"children":345},{"id":344},"decision-tree",[346],{"type":50,"value":347},"Decision Tree",{"type":44,"tag":349,"props":350,"children":355},"pre",{"className":351,"code":353,"language":50,"meta":354},[352],"language-text","User asks for Clerk in Android\u002FKotlin\n    |\n    +-- Expo\u002FReact Native project detected?\n    |     |\n    |     +-- YES -> Do not use this skill\n    |     |\n    |     +-- NO -> Continue\n    |\n    +-- Existing auth UI detected?\n    |     |\n    |     +-- Prebuilt views detected -> Load references\u002Fprebuilt.md\n    |     |\n    |     +-- Custom flow detected -> Load references\u002Fcustom.md\n    |     |\n    |     +-- New implementation -> Ask developer prebuilt\u002Fcustom, then load matching reference\n    |\n    +-- Ensure publishable key and SDK initialization path\n    |\n    +-- Ensure correct Android artifacts are installed\n    |\n    +-- Verify quickstart prerequisites in project\n    |\n    +-- Implement using selected flow reference\n","",[356],{"type":44,"tag":59,"props":357,"children":358},{"__ignoreMap":354},[359],{"type":50,"value":353},{"type":44,"tag":67,"props":361,"children":363},{"id":362},"flow-references",[364],{"type":50,"value":365},"Flow References",{"type":44,"tag":53,"props":367,"children":368},{},[369],{"type":50,"value":370},"After flow type is known, load exactly one:",{"type":44,"tag":79,"props":372,"children":373},{},[374,384],{"type":44,"tag":83,"props":375,"children":376},{},[377,379],{"type":50,"value":378},"Prebuilt flow: ",{"type":44,"tag":380,"props":381,"children":382},"a",{"href":186},[383],{"type":50,"value":186},{"type":44,"tag":83,"props":385,"children":386},{},[387,389],{"type":50,"value":388},"Custom flow: ",{"type":44,"tag":380,"props":390,"children":391},{"href":199},[392],{"type":50,"value":199},{"type":44,"tag":53,"props":394,"children":395},{},[396],{"type":50,"value":397},"Do not blend the two references in a single implementation unless the developer explicitly asks for a hybrid approach.",{"type":44,"tag":67,"props":399,"children":401},{"id":400},"interaction-contract",[402],{"type":50,"value":403},"Interaction Contract",{"type":44,"tag":53,"props":405,"children":406},{},[407],{"type":50,"value":408},"Before any implementation edits, the agent must have both:",{"type":44,"tag":79,"props":410,"children":411},{},[412,428],{"type":44,"tag":83,"props":413,"children":414},{},[415,417,422,423],{"type":50,"value":416},"flow choice: ",{"type":44,"tag":59,"props":418,"children":420},{"className":419},[],[421],{"type":50,"value":259},{"type":50,"value":261},{"type":44,"tag":59,"props":424,"children":426},{"className":425},[],[427],{"type":50,"value":267},{"type":44,"tag":83,"props":429,"children":430},{},[431],{"type":50,"value":432},"a real Clerk publishable key",{"type":44,"tag":53,"props":434,"children":435},{},[436],{"type":50,"value":437},"If either value is missing from the user request\u002Fcontext:",{"type":44,"tag":79,"props":439,"children":440},{},[441,446,451],{"type":44,"tag":83,"props":442,"children":443},{},[444],{"type":50,"value":445},"ask the user for the missing value(s)",{"type":44,"tag":83,"props":447,"children":448},{},[449],{"type":50,"value":450},"pause and wait for the answer",{"type":44,"tag":83,"props":452,"children":453},{},[454],{"type":50,"value":455},"do not edit files or install dependencies yet",{"type":44,"tag":53,"props":457,"children":458},{},[459],{"type":50,"value":460},"Only skip asking when the user has already explicitly provided the value in this conversation.",{"type":44,"tag":67,"props":462,"children":464},{"id":463},"source-driven-templates",[465],{"type":50,"value":466},"Source-Driven Templates",{"type":44,"tag":53,"props":468,"children":469},{},[470,472,477],{"type":50,"value":471},"Do not hardcode implementation examples in this skill. Inspect current ",{"type":44,"tag":59,"props":473,"children":475},{"className":474},[],[476],{"type":50,"value":4},{"type":50,"value":478}," source\u002Fdocs for the installed SDK version before implementing.",{"type":44,"tag":147,"props":480,"children":481},{},[482,498],{"type":44,"tag":151,"props":483,"children":484},{},[485],{"type":44,"tag":155,"props":486,"children":487},{},[488,493],{"type":44,"tag":159,"props":489,"children":490},{},[491],{"type":50,"value":492},"Use Case",{"type":44,"tag":159,"props":494,"children":495},{},[496],{"type":50,"value":497},"Source of Truth",{"type":44,"tag":170,"props":499,"children":500},{},[501,535,554,580,606,653],{"type":44,"tag":155,"props":502,"children":503},{},[504,525],{"type":44,"tag":177,"props":505,"children":506},{},[507,509,515,517,523],{"type":50,"value":508},"SDK artifacts and dependency split (",{"type":44,"tag":59,"props":510,"children":512},{"className":511},[],[513],{"type":50,"value":514},"clerk-android-api",{"type":50,"value":516}," vs ",{"type":44,"tag":59,"props":518,"children":520},{"className":519},[],[521],{"type":50,"value":522},"clerk-android-ui",{"type":50,"value":524},")",{"type":44,"tag":177,"props":526,"children":527},{},[528,533],{"type":44,"tag":59,"props":529,"children":531},{"className":530},[],[532],{"type":50,"value":4},{"type":50,"value":534}," README and Android install docs",{"type":44,"tag":155,"props":536,"children":537},{},[538,543],{"type":44,"tag":177,"props":539,"children":540},{},[541],{"type":50,"value":542},"SDK initialization and publishable key wiring",{"type":44,"tag":177,"props":544,"children":545},{},[546,548],{"type":50,"value":547},"Android quickstart and ",{"type":44,"tag":59,"props":549,"children":551},{"className":550},[],[552],{"type":50,"value":553},"source\u002Fapi\u002F...\u002FClerk.kt",{"type":44,"tag":155,"props":555,"children":556},{},[557,562],{"type":44,"tag":177,"props":558,"children":559},{},[560],{"type":50,"value":561},"Prebuilt auth and profile behavior",{"type":44,"tag":177,"props":563,"children":564},{},[565,571,572,578],{"type":44,"tag":59,"props":566,"children":568},{"className":567},[],[569],{"type":50,"value":570},"source\u002Fui\u002F...\u002FAuthView.kt",{"type":50,"value":108},{"type":44,"tag":59,"props":573,"children":575},{"className":574},[],[576],{"type":50,"value":577},"source\u002Fui\u002F...\u002FUserButton.kt",{"type":50,"value":579},", and prebuilt sample",{"type":44,"tag":155,"props":581,"children":582},{},[583,588],{"type":44,"tag":177,"props":584,"children":585},{},[586],{"type":50,"value":587},"Custom auth sequencing and factor handling",{"type":44,"tag":177,"props":589,"children":590},{},[591,597,598,604],{"type":44,"tag":59,"props":592,"children":594},{"className":593},[],[595],{"type":50,"value":596},"source\u002Fui\u002Fauth\u002F*",{"type":50,"value":108},{"type":44,"tag":59,"props":599,"children":601},{"className":600},[],[602],{"type":50,"value":603},"source\u002Fapi\u002Fauth\u002F*",{"type":50,"value":605},", and custom-flows sample",{"type":44,"tag":155,"props":607,"children":608},{},[609,614],{"type":44,"tag":177,"props":610,"children":611},{},[612],{"type":50,"value":613},"Capability\u002Ffeature gating from instance settings",{"type":44,"tag":177,"props":615,"children":616},{},[617,622,624,630,631,637,638,644,645,651],{"type":44,"tag":59,"props":618,"children":620},{"className":619},[],[621],{"type":50,"value":9},{"type":50,"value":623}," public fields (for example ",{"type":44,"tag":59,"props":625,"children":627},{"className":626},[],[628],{"type":50,"value":629},"enabledFirstFactorAttributes",{"type":50,"value":108},{"type":44,"tag":59,"props":632,"children":634},{"className":633},[],[635],{"type":50,"value":636},"socialProviders",{"type":50,"value":108},{"type":44,"tag":59,"props":639,"children":641},{"className":640},[],[642],{"type":50,"value":643},"isGoogleOneTapEnabled",{"type":50,"value":108},{"type":44,"tag":59,"props":646,"children":648},{"className":647},[],[649],{"type":50,"value":650},"mfaIsEnabled",{"type":50,"value":652},") and environment model source",{"type":44,"tag":155,"props":654,"children":655},{},[656,661],{"type":44,"tag":177,"props":657,"children":658},{},[659],{"type":50,"value":660},"Required Android setup checklist",{"type":44,"tag":177,"props":662,"children":663},{},[664,666,672],{"type":50,"value":665},"Official Android quickstart (",{"type":44,"tag":59,"props":667,"children":669},{"className":668},[],[670],{"type":50,"value":671},"\u002Fdocs\u002Fandroid\u002Fgetting-started\u002Fquickstart",{"type":50,"value":524},{"type":44,"tag":67,"props":674,"children":676},{"id":675},"execution-gates-do-not-skip",[677],{"type":50,"value":678},"Execution Gates (Do Not Skip)",{"type":44,"tag":680,"props":681,"children":682},"ol",{},[683],{"type":44,"tag":83,"props":684,"children":685},{},[686],{"type":50,"value":687},"No implementation edits before prerequisites",{"type":44,"tag":79,"props":689,"children":690},{},[691],{"type":44,"tag":83,"props":692,"children":693},{},[694],{"type":50,"value":695},"Do not edit project files until flow type is confirmed and a valid publishable key is available.",{"type":44,"tag":680,"props":697,"children":699},{"start":698},2,[700],{"type":44,"tag":83,"props":701,"children":702},{},[703],{"type":50,"value":704},"Missing flow or key must trigger a question",{"type":44,"tag":79,"props":706,"children":707},{},[708,713,718],{"type":44,"tag":83,"props":709,"children":710},{},[711],{"type":50,"value":712},"If flow choice is missing, explicitly ask: prebuilt views or custom flow.",{"type":44,"tag":83,"props":714,"children":715},{},[716],{"type":50,"value":717},"If publishable key is missing\u002Fplaceholder\u002Finvalid, explicitly ask for a real key.",{"type":44,"tag":83,"props":719,"children":720},{},[721],{"type":50,"value":722},"Do not continue until both answers are provided.",{"type":44,"tag":680,"props":724,"children":726},{"start":725},3,[727],{"type":44,"tag":83,"props":728,"children":729},{},[730],{"type":50,"value":731},"Publishable key wiring mode is mandatory",{"type":44,"tag":79,"props":733,"children":734},{},[735,748],{"type":44,"tag":83,"props":736,"children":737},{},[738,740,746],{"type":50,"value":739},"By default, wire the developer-provided key directly in ",{"type":44,"tag":59,"props":741,"children":743},{"className":742},[],[744],{"type":50,"value":745},"Clerk.initialize(...)",{"type":50,"value":747},".",{"type":44,"tag":83,"props":749,"children":750},{},[751],{"type":50,"value":752},"Do not introduce secret-management indirection unless explicitly requested.",{"type":44,"tag":680,"props":754,"children":755},{"start":27},[756],{"type":44,"tag":83,"props":757,"children":758},{},[759],{"type":50,"value":760},"Artifact install policy is mandatory",{"type":44,"tag":79,"props":762,"children":763},{},[764,776,788],{"type":44,"tag":83,"props":765,"children":766},{},[767,769,774],{"type":50,"value":768},"Prebuilt flow: use ",{"type":44,"tag":59,"props":770,"children":772},{"className":771},[],[773],{"type":50,"value":522},{"type":50,"value":775}," (includes API).",{"type":44,"tag":83,"props":777,"children":778},{},[779,781,786],{"type":50,"value":780},"Custom flow: use ",{"type":44,"tag":59,"props":782,"children":784},{"className":783},[],[785],{"type":50,"value":514},{"type":50,"value":787}," unless prebuilt components are explicitly requested.",{"type":44,"tag":83,"props":789,"children":790},{},[791],{"type":50,"value":792},"If Clerk artifacts are missing, add the latest stable release available.",{"type":44,"tag":680,"props":794,"children":796},{"start":795},5,[797],{"type":44,"tag":83,"props":798,"children":799},{},[800],{"type":50,"value":801},"Android quickstart compliance is mandatory",{"type":44,"tag":79,"props":803,"children":804},{},[805,810,815],{"type":44,"tag":83,"props":806,"children":807},{},[808],{"type":50,"value":809},"Verify Native API is enabled for the Clerk app.",{"type":44,"tag":83,"props":811,"children":812},{},[813],{"type":50,"value":814},"Verify Android requirements from quickstart are implemented in project (minimum SDK and Java target, manifest internet permission, app-level Clerk initialization).",{"type":44,"tag":83,"props":816,"children":817},{},[818,820,826],{"type":50,"value":819},"Verify app waits for SDK initialization (",{"type":44,"tag":59,"props":821,"children":823},{"className":822},[],[824],{"type":50,"value":825},"Clerk.isInitialized",{"type":50,"value":827},") before assuming auth-ready state.",{"type":44,"tag":680,"props":829,"children":831},{"start":830},6,[832],{"type":44,"tag":83,"props":833,"children":834},{},[835],{"type":50,"value":836},"Capability-driven behavior is mandatory",{"type":44,"tag":79,"props":838,"children":839},{},[840,845],{"type":44,"tag":83,"props":841,"children":842},{},[843],{"type":50,"value":844},"Use Clerk runtime capability\u002Fsettings state (for example enabled factors\u002Fsocial providers\u002FMFA flags) to gate flow behavior.",{"type":44,"tag":83,"props":846,"children":847},{},[848],{"type":50,"value":849},"Do not hardcode factor assumptions that may conflict with dashboard configuration.",{"type":44,"tag":680,"props":851,"children":853},{"start":852},7,[854],{"type":44,"tag":83,"props":855,"children":856},{},[857],{"type":50,"value":858},"Reference-file discipline is mandatory",{"type":44,"tag":79,"props":860,"children":861},{},[862],{"type":44,"tag":83,"props":863,"children":864},{},[865],{"type":50,"value":866},"Once flow is selected, follow only that flow reference file for implementation and verification.",{"type":44,"tag":680,"props":868,"children":870},{"start":869},8,[871],{"type":44,"tag":83,"props":872,"children":873},{},[874],{"type":50,"value":875},"Custom-flow structure parity is mandatory",{"type":44,"tag":79,"props":877,"children":878},{},[879,891],{"type":44,"tag":83,"props":880,"children":881},{},[882,884,889],{"type":50,"value":883},"For ",{"type":44,"tag":59,"props":885,"children":887},{"className":886},[],[888],{"type":50,"value":267},{"type":50,"value":890}," flow, preserve multi-step auth progression and factor-specific handling (no single all-fields form by default).",{"type":44,"tag":83,"props":892,"children":893},{},[894],{"type":50,"value":895},"Keep UI, state orchestration, and Clerk API integration in separate modules.",{"type":44,"tag":680,"props":897,"children":899},{"start":898},9,[900],{"type":44,"tag":83,"props":901,"children":902},{},[903],{"type":50,"value":904},"Prebuilt preference is mandatory when selected",{"type":44,"tag":79,"props":906,"children":907},{},[908,919],{"type":44,"tag":83,"props":909,"children":910},{},[911,912,917],{"type":50,"value":883},{"type":44,"tag":59,"props":913,"children":915},{"className":914},[],[916],{"type":50,"value":259},{"type":50,"value":918}," flow, do not rebuild auth forms with custom API calls unless explicitly requested.",{"type":44,"tag":83,"props":920,"children":921},{},[922,924,930,932,938],{"type":50,"value":923},"Use ",{"type":44,"tag":59,"props":925,"children":927},{"className":926},[],[928],{"type":50,"value":929},"AuthView",{"type":50,"value":931},"\u002F",{"type":44,"tag":59,"props":933,"children":935},{"className":934},[],[936],{"type":50,"value":937},"UserButton",{"type":50,"value":939}," as default building blocks.",{"type":44,"tag":67,"props":941,"children":943},{"id":942},"workflow",[944],{"type":50,"value":945},"Workflow",{"type":44,"tag":680,"props":947,"children":948},{},[949,954,971,976,981,986,998,1003,1008,1013],{"type":44,"tag":83,"props":950,"children":951},{},[952],{"type":50,"value":953},"Detect native Android vs Expo\u002FReact Native.",{"type":44,"tag":83,"props":955,"children":956},{},[957,959,964,965,970],{"type":50,"value":958},"If flow type is not explicitly provided, ask user for ",{"type":44,"tag":59,"props":960,"children":962},{"className":961},[],[963],{"type":50,"value":259},{"type":50,"value":261},{"type":44,"tag":59,"props":966,"children":968},{"className":967},[],[969],{"type":50,"value":267},{"type":50,"value":747},{"type":44,"tag":83,"props":972,"children":973},{},[974],{"type":50,"value":975},"If publishable key is not explicitly provided, ask user for it.",{"type":44,"tag":83,"props":977,"children":978},{},[979],{"type":50,"value":980},"Wait for both answers before changing files.",{"type":44,"tag":83,"props":982,"children":983},{},[984],{"type":50,"value":985},"Load matching flow reference file.",{"type":44,"tag":83,"props":987,"children":988},{},[989,991,996],{"type":50,"value":990},"Ensure ",{"type":44,"tag":59,"props":992,"children":994},{"className":993},[],[995],{"type":50,"value":745},{"type":50,"value":997}," path and publishable key wiring are valid.",{"type":44,"tag":83,"props":999,"children":1000},{},[1001],{"type":50,"value":1002},"Ensure dependencies\u002Fartifacts match selected flow.",{"type":44,"tag":83,"props":1004,"children":1005},{},[1006],{"type":50,"value":1007},"Review Android quickstart requirements and apply missing setup in project.",{"type":44,"tag":83,"props":1009,"children":1010},{},[1011],{"type":50,"value":1012},"Implement using selected reference checklist.",{"type":44,"tag":83,"props":1014,"children":1015},{},[1016],{"type":50,"value":1017},"Verify using selected reference checklist plus shared gates.",{"type":44,"tag":67,"props":1019,"children":1021},{"id":1020},"common-pitfalls",[1022],{"type":50,"value":1023},"Common Pitfalls",{"type":44,"tag":147,"props":1025,"children":1026},{},[1027,1048],{"type":44,"tag":151,"props":1028,"children":1029},{},[1030],{"type":44,"tag":155,"props":1031,"children":1032},{},[1033,1038,1043],{"type":44,"tag":159,"props":1034,"children":1035},{},[1036],{"type":50,"value":1037},"Level",{"type":44,"tag":159,"props":1039,"children":1040},{},[1041],{"type":50,"value":1042},"Issue",{"type":44,"tag":159,"props":1044,"children":1045},{},[1046],{"type":50,"value":1047},"Prevention",{"type":44,"tag":170,"props":1049,"children":1050},{},[1051,1082,1099,1116,1133,1165,1195,1219,1236],{"type":44,"tag":155,"props":1052,"children":1053},{},[1054,1059,1064],{"type":44,"tag":177,"props":1055,"children":1056},{},[1057],{"type":50,"value":1058},"CRITICAL",{"type":44,"tag":177,"props":1060,"children":1061},{},[1062],{"type":50,"value":1063},"Not asking for missing flow choice before implementation",{"type":44,"tag":177,"props":1065,"children":1066},{},[1067,1069,1074,1075,1080],{"type":50,"value":1068},"Ask for ",{"type":44,"tag":59,"props":1070,"children":1072},{"className":1071},[],[1073],{"type":50,"value":259},{"type":50,"value":516},{"type":44,"tag":59,"props":1076,"children":1078},{"className":1077},[],[1079],{"type":50,"value":267},{"type":50,"value":1081}," and wait before edits",{"type":44,"tag":155,"props":1083,"children":1084},{},[1085,1089,1094],{"type":44,"tag":177,"props":1086,"children":1087},{},[1088],{"type":50,"value":1058},{"type":44,"tag":177,"props":1090,"children":1091},{},[1092],{"type":50,"value":1093},"Not asking for missing publishable key before implementation",{"type":44,"tag":177,"props":1095,"children":1096},{},[1097],{"type":50,"value":1098},"Ask for key and wait before edits",{"type":44,"tag":155,"props":1100,"children":1101},{},[1102,1106,1111],{"type":44,"tag":177,"props":1103,"children":1104},{},[1105],{"type":50,"value":1058},{"type":44,"tag":177,"props":1107,"children":1108},{},[1109],{"type":50,"value":1110},"Starting implementation before flow type is confirmed",{"type":44,"tag":177,"props":1112,"children":1113},{},[1114],{"type":50,"value":1115},"Confirm flow first and load matching reference",{"type":44,"tag":155,"props":1117,"children":1118},{},[1119,1123,1128],{"type":44,"tag":177,"props":1120,"children":1121},{},[1122],{"type":50,"value":1058},{"type":44,"tag":177,"props":1124,"children":1125},{},[1126],{"type":50,"value":1127},"Skipping Android quickstart prerequisites",{"type":44,"tag":177,"props":1129,"children":1130},{},[1131],{"type":50,"value":1132},"Verify and apply required setup from official Android quickstart",{"type":44,"tag":155,"props":1134,"children":1135},{},[1136,1140,1152],{"type":44,"tag":177,"props":1137,"children":1138},{},[1139],{"type":50,"value":1058},{"type":44,"tag":177,"props":1141,"children":1142},{},[1143,1145,1150],{"type":50,"value":1144},"Missing app-level ",{"type":44,"tag":59,"props":1146,"children":1148},{"className":1147},[],[1149],{"type":50,"value":745},{"type":50,"value":1151}," call",{"type":44,"tag":177,"props":1153,"children":1154},{},[1155,1157,1163],{"type":50,"value":1156},"Initialize Clerk from ",{"type":44,"tag":59,"props":1158,"children":1160},{"className":1159},[],[1161],{"type":50,"value":1162},"Application",{"type":50,"value":1164}," startup path",{"type":44,"tag":155,"props":1166,"children":1167},{},[1168,1173,1178],{"type":44,"tag":177,"props":1169,"children":1170},{},[1171],{"type":50,"value":1172},"HIGH",{"type":44,"tag":177,"props":1174,"children":1175},{},[1176],{"type":50,"value":1177},"Wrong artifact for chosen flow",{"type":44,"tag":177,"props":1179,"children":1180},{},[1181,1183,1188,1190],{"type":50,"value":1182},"Prebuilt: ",{"type":44,"tag":59,"props":1184,"children":1186},{"className":1185},[],[1187],{"type":50,"value":522},{"type":50,"value":1189},"; custom: ",{"type":44,"tag":59,"props":1191,"children":1193},{"className":1192},[],[1194],{"type":50,"value":514},{"type":44,"tag":155,"props":1196,"children":1197},{},[1198,1202,1207],{"type":44,"tag":177,"props":1199,"children":1200},{},[1201],{"type":50,"value":1172},{"type":44,"tag":177,"props":1203,"children":1204},{},[1205],{"type":50,"value":1206},"Rendering auth UI before SDK initialization completes",{"type":44,"tag":177,"props":1208,"children":1209},{},[1210,1212,1217],{"type":50,"value":1211},"Gate UI with ",{"type":44,"tag":59,"props":1213,"children":1215},{"className":1214},[],[1216],{"type":50,"value":825},{"type":50,"value":1218}," state",{"type":44,"tag":155,"props":1220,"children":1221},{},[1222,1226,1231],{"type":44,"tag":177,"props":1223,"children":1224},{},[1225],{"type":50,"value":1172},{"type":44,"tag":177,"props":1227,"children":1228},{},[1229],{"type":50,"value":1230},"Hardcoding auth factors\u002Fsocial providers",{"type":44,"tag":177,"props":1232,"children":1233},{},[1234],{"type":50,"value":1235},"Drive behavior from Clerk runtime capability fields",{"type":44,"tag":155,"props":1237,"children":1238},{},[1239,1243,1248],{"type":44,"tag":177,"props":1240,"children":1241},{},[1242],{"type":50,"value":1172},{"type":44,"tag":177,"props":1244,"children":1245},{},[1246],{"type":50,"value":1247},"Using this skill for Expo\u002FReact Native",{"type":44,"tag":177,"props":1249,"children":1250},{},[1251],{"type":50,"value":1252},"Detect and route away before implementation",{"type":44,"tag":67,"props":1254,"children":1256},{"id":1255},"see-also",[1257],{"type":50,"value":1258},"See Also",{"type":44,"tag":79,"props":1260,"children":1261},{},[1262,1272,1283,1292],{"type":44,"tag":83,"props":1263,"children":1264},{},[1265,1270],{"type":44,"tag":59,"props":1266,"children":1268},{"className":1267},[],[1269],{"type":50,"value":8},{"type":50,"value":1271}," skill for top-level Clerk routing",{"type":44,"tag":83,"props":1273,"children":1274},{},[1275,1281],{"type":44,"tag":59,"props":1276,"children":1278},{"className":1277},[],[1279],{"type":50,"value":1280},"clerk-setup",{"type":50,"value":1282}," skill for cross-framework quickstart setup",{"type":44,"tag":83,"props":1284,"children":1285},{},[1286],{"type":44,"tag":59,"props":1287,"children":1289},{"className":1288},[],[1290],{"type":50,"value":1291},"https:\u002F\u002Fgithub.com\u002Fclerk\u002Fclerk-android",{"type":44,"tag":83,"props":1293,"children":1294},{},[1295],{"type":44,"tag":59,"props":1296,"children":1298},{"className":1297},[],[1299],{"type":50,"value":1300},"https:\u002F\u002Fclerk.com\u002Fdocs\u002Fandroid\u002Fgetting-started\u002Fquickstart",{"items":1302,"total":1488},[1303,1317,1324,1342,1360,1376,1394,1411,1427,1444,1459,1473],{"slug":8,"name":8,"fn":1304,"description":1305,"org":1306,"tags":1307,"stars":23,"repoUrl":24,"updatedAt":1316},"route Clerk authentication requests","Clerk authentication router. Use when user asks about Clerk CLI operations, adding authentication, setting up Clerk, custom sign-in flows, Swift or native iOS auth, native Android auth, Next.js patterns, React patterns, Vue patterns, Nuxt patterns, Astro patterns, TanStack Start patterns, Expo patterns, React Router patterns, Chrome Extension patterns, organizations, billing, subscriptions, payments, pricing, plans, seat-based pricing, feature entitlements, syncing users, testing, impersonating a user, or testing webhooks locally. Automatically routes to the specific skill based on their task.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1308,1311,1312,1313],{"name":1309,"slug":1310,"type":15},"Authentication","authentication",{"name":9,"slug":8,"type":15},{"name":21,"slug":22,"type":15},{"name":1314,"slug":1315,"type":15},"Web Development","web-development","2026-07-18T05:12:23.438307",{"slug":4,"name":4,"fn":5,"description":6,"org":1318,"tags":1319,"stars":23,"repoUrl":24,"updatedAt":25},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1320,1321,1322,1323],{"name":18,"slug":19,"type":15},{"name":9,"slug":8,"type":15},{"name":13,"slug":14,"type":15},{"name":21,"slug":22,"type":15},{"slug":1325,"name":1325,"fn":1326,"description":1327,"org":1328,"tags":1329,"stars":23,"repoUrl":24,"updatedAt":1341},"clerk-astro-patterns","implement Clerk auth in Astro apps","Astro patterns with Clerk — middleware, SSR pages, island components, API routes, static vs SSR rendering. Triggers on: astro clerk, clerk astro middleware, astro protected page, clerk island component, astro API route auth, clerk astro SSR.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1330,1333,1334,1335,1338],{"name":1331,"slug":1332,"type":15},"Astro","astro",{"name":1309,"slug":1310,"type":15},{"name":9,"slug":8,"type":15},{"name":1336,"slug":1337,"type":15},"Frontend","frontend",{"name":1339,"slug":1340,"type":15},"Serverless","serverless","2026-04-07T04:46:14.731808",{"slug":1343,"name":1343,"fn":1344,"description":1345,"org":1346,"tags":1347,"stars":23,"repoUrl":24,"updatedAt":1359},"clerk-backend-api","execute Clerk Backend API requests","Clerk Backend REST API explorer and executor. Browse tags, inspect endpoint schemas, and execute authenticated requests. Use when listing users, managing organizations, or calling any Clerk API endpoint.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1348,1351,1352,1355,1356],{"name":1349,"slug":1350,"type":15},"API Development","api-development",{"name":1309,"slug":1310,"type":15},{"name":1353,"slug":1354,"type":15},"Backend","backend",{"name":9,"slug":8,"type":15},{"name":1357,"slug":1358,"type":15},"REST API","rest-api","2026-04-10T05:00:08.728072",{"slug":1361,"name":1361,"fn":1362,"description":1363,"org":1364,"tags":1365,"stars":23,"repoUrl":24,"updatedAt":1375},"clerk-billing","manage subscriptions with Clerk Billing","Clerk Billing for subscription management - render Clerk's PricingTable and in-app checkout drawer, configure subscription plans, seat-limit plans for B2B, feature entitlements with has(), and billing webhooks. Use for SaaS monetization, plan gating, checkout flows, trials, invoicing, and subscription lifecycle management.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1366,1367,1368,1369,1372],{"name":1309,"slug":1310,"type":15},{"name":9,"slug":8,"type":15},{"name":1336,"slug":1337,"type":15},{"name":1370,"slug":1371,"type":15},"Payments","payments",{"name":1373,"slug":1374,"type":15},"SaaS","saas","2026-04-29T05:37:27.130955",{"slug":1377,"name":1377,"fn":1378,"description":1379,"org":1380,"tags":1381,"stars":23,"repoUrl":24,"updatedAt":1393},"clerk-chrome-extension-patterns","implement Clerk auth in Chrome Extensions","Chrome Extension auth with @clerk\u002Fchrome-extension -- popup\u002Fsidepanel setup, syncHost for OAuth\u002FSAML via web app, createClerkClient for service workers and headless extensions, stable CRX ID. Triggers on: Chrome extension auth, Plasmo clerk, popup sign-in, syncHost, background service worker token, createClerkClient, headless extension.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1382,1385,1386,1387,1390],{"name":1383,"slug":1384,"type":15},"Auth","auth",{"name":9,"slug":8,"type":15},{"name":1336,"slug":1337,"type":15},{"name":1388,"slug":1389,"type":15},"OAuth","oauth",{"name":1391,"slug":1392,"type":15},"Security","security","2026-04-07T04:46:08.489328",{"slug":1395,"name":1395,"fn":1396,"description":1397,"org":1398,"tags":1399,"stars":23,"repoUrl":24,"updatedAt":1410},"clerk-cli","manage Clerk authentication and instances via CLI","Operate the Clerk CLI (`clerk` binary) for authentication, user\u002Forg\u002Fsession management, impersonation, local webhook testing, deploy verification, instance config, env keys, feature toggles, and any Clerk Backend, Platform, or Frontend API call. Use when the user mentions Clerk management tasks, \"list clerk users\", \"impersonate a user\", \"test webhooks locally\", \"enable orgs\", \"enable billing\", \"clerk env pull\", \"clerk doctor\", \"clerk deploy\", \"clerk api\", or any ad-hoc Clerk API request. Prefer the CLI over raw HTTP: it handles auth, key resolution, app\u002Finstance targeting, and formatting automatically.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1400,1401,1402,1403,1406,1409],{"name":1349,"slug":1350,"type":15},{"name":1309,"slug":1310,"type":15},{"name":9,"slug":8,"type":15},{"name":1404,"slug":1405,"type":15},"CLI","cli",{"name":1407,"slug":1408,"type":15},"Deployment","deployment",{"name":1391,"slug":1392,"type":15},"2026-07-31T05:52:40.580813",{"slug":1412,"name":1412,"fn":1413,"description":1414,"org":1415,"tags":1416,"stars":23,"repoUrl":24,"updatedAt":1426},"clerk-custom-ui","customize Clerk UI and auth flows","Custom authentication flows and component appearance - hooks (useSignIn, useSignUp), themes, colors, fonts, CSS. Use for custom sign-in\u002Fsign-up flows, appearance styling, visual customization, branding.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1417,1418,1421,1422,1425],{"name":1309,"slug":1310,"type":15},{"name":1419,"slug":1420,"type":15},"Branding","branding",{"name":9,"slug":8,"type":15},{"name":1423,"slug":1424,"type":15},"Design","design",{"name":1336,"slug":1337,"type":15},"2026-04-10T05:00:10.109158",{"slug":1428,"name":1428,"fn":1429,"description":1430,"org":1431,"tags":1432,"stars":23,"repoUrl":24,"updatedAt":1443},"clerk-expo","implement Clerk authentication in Expo apps","Add Clerk authentication to Expo and React Native apps using @clerk\u002Fexpo. Use for Expo setup, prebuilt native components (AuthView, UserButton), custom sign-in\u002Fsign-up flows (email, password, SMS\u002Fphone OTP, MFA), OAuth\u002FSSO, native Google\u002FApple sign-in, Expo Router protected routes, biometrics, and push notifications. Do not use for native Swift\u002FiOS, native Android\u002FKotlin, or web-only framework projects.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1433,1434,1435,1438,1439,1440],{"name":1309,"slug":1310,"type":15},{"name":9,"slug":8,"type":15},{"name":1436,"slug":1437,"type":15},"Expo","expo",{"name":1336,"slug":1337,"type":15},{"name":21,"slug":22,"type":15},{"name":1441,"slug":1442,"type":15},"React Native","react-native","2026-05-19T06:48:47.074181",{"slug":1445,"name":1445,"fn":1446,"description":1447,"org":1448,"tags":1449,"stars":23,"repoUrl":24,"updatedAt":1458},"clerk-nextjs-patterns","implement advanced Next.js patterns with Clerk","Advanced Next.js patterns - middleware, Server Actions, caching with Clerk.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1450,1451,1452,1455],{"name":9,"slug":8,"type":15},{"name":1336,"slug":1337,"type":15},{"name":1453,"slug":1454,"type":15},"Next.js","next-js",{"name":1456,"slug":1457,"type":15},"Performance","performance","2026-04-10T05:00:15.80215",{"slug":1460,"name":1460,"fn":1461,"description":1462,"org":1463,"tags":1464,"stars":23,"repoUrl":24,"updatedAt":1472},"clerk-nuxt-patterns","implement Clerk auth in Nuxt 3 apps","Nuxt 3 auth patterns with @clerk\u002Fnuxt - middleware, composables, server API routes, SSR. Triggers on: Nuxt auth, useAuth composable, clerkMiddleware Nuxt, server API Clerk, Nuxt route protection.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1465,1466,1467,1468,1469],{"name":1309,"slug":1310,"type":15},{"name":1353,"slug":1354,"type":15},{"name":9,"slug":8,"type":15},{"name":1336,"slug":1337,"type":15},{"name":1470,"slug":1471,"type":15},"Nuxt","nuxt","2026-04-07T04:46:18.337538",{"slug":1474,"name":1474,"fn":1475,"description":1476,"org":1477,"tags":1478,"stars":23,"repoUrl":24,"updatedAt":1487},"clerk-orgs","manage Clerk Organizations for B2B SaaS","Clerk Organizations for B2B SaaS - create multi-tenant apps with org switching, role-based access, verified domains, and enterprise SSO. Use for team workspaces, RBAC, org-based routing, member management.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1479,1480,1483,1486],{"name":9,"slug":8,"type":15},{"name":1481,"slug":1482,"type":15},"Multi-Tenant","multi-tenant",{"name":1484,"slug":1485,"type":15},"RBAC","rbac",{"name":1373,"slug":1374,"type":15},"2026-04-10T05:00:14.40165",20,{"items":1490,"total":1488},[1491,1498,1505,1513,1521,1529,1537],{"slug":8,"name":8,"fn":1304,"description":1305,"org":1492,"tags":1493,"stars":23,"repoUrl":24,"updatedAt":1316},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1494,1495,1496,1497],{"name":1309,"slug":1310,"type":15},{"name":9,"slug":8,"type":15},{"name":21,"slug":22,"type":15},{"name":1314,"slug":1315,"type":15},{"slug":4,"name":4,"fn":5,"description":6,"org":1499,"tags":1500,"stars":23,"repoUrl":24,"updatedAt":25},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1501,1502,1503,1504],{"name":18,"slug":19,"type":15},{"name":9,"slug":8,"type":15},{"name":13,"slug":14,"type":15},{"name":21,"slug":22,"type":15},{"slug":1325,"name":1325,"fn":1326,"description":1327,"org":1506,"tags":1507,"stars":23,"repoUrl":24,"updatedAt":1341},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1508,1509,1510,1511,1512],{"name":1331,"slug":1332,"type":15},{"name":1309,"slug":1310,"type":15},{"name":9,"slug":8,"type":15},{"name":1336,"slug":1337,"type":15},{"name":1339,"slug":1340,"type":15},{"slug":1343,"name":1343,"fn":1344,"description":1345,"org":1514,"tags":1515,"stars":23,"repoUrl":24,"updatedAt":1359},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1516,1517,1518,1519,1520],{"name":1349,"slug":1350,"type":15},{"name":1309,"slug":1310,"type":15},{"name":1353,"slug":1354,"type":15},{"name":9,"slug":8,"type":15},{"name":1357,"slug":1358,"type":15},{"slug":1361,"name":1361,"fn":1362,"description":1363,"org":1522,"tags":1523,"stars":23,"repoUrl":24,"updatedAt":1375},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1524,1525,1526,1527,1528],{"name":1309,"slug":1310,"type":15},{"name":9,"slug":8,"type":15},{"name":1336,"slug":1337,"type":15},{"name":1370,"slug":1371,"type":15},{"name":1373,"slug":1374,"type":15},{"slug":1377,"name":1377,"fn":1378,"description":1379,"org":1530,"tags":1531,"stars":23,"repoUrl":24,"updatedAt":1393},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1532,1533,1534,1535,1536],{"name":1383,"slug":1384,"type":15},{"name":9,"slug":8,"type":15},{"name":1336,"slug":1337,"type":15},{"name":1388,"slug":1389,"type":15},{"name":1391,"slug":1392,"type":15},{"slug":1395,"name":1395,"fn":1396,"description":1397,"org":1538,"tags":1539,"stars":23,"repoUrl":24,"updatedAt":1410},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1540,1541,1542,1543,1544,1545],{"name":1349,"slug":1350,"type":15},{"name":1309,"slug":1310,"type":15},{"name":9,"slug":8,"type":15},{"name":1404,"slug":1405,"type":15},{"name":1407,"slug":1408,"type":15},{"name":1391,"slug":1392,"type":15}]