What problem does it solve? Chrome extensions impose strict constraints on authentication: OAuth and SAML cannot run inside popups or side panels, content scripts cannot call Clerk directly due to origin restrictions, and rebuilding an extension rotates its ID and breaks allowed origins. This Skill provides the exact patterns to make Clerk auth work in every extension context. ## Core Features & Use Cases - Popup and side panel auth: Configure ClerkProvider from @clerk/chrome-extension with chrome.runtime.getURL redirect URLs, modal sign-in buttons, and a token cache backed by chrome.storage.local. - syncHost for OAuth/SAML: Delegate OAuth, SAML, and magic-link sign-in to a companion web app by syncing the Clerk session cookie via host_permissions and the syncHost prop. - Background and headless auth: Use createClerkClient with background: true in service workers to keep session tokens fresh, and message passing so content scripts can request tokens. - Stable CRX ID: Pin the extension ID with a manifest key so allowed origins survive rebuilds. - Use Case: You are building a Plasmo extension whose users sign in with Google. This Skill walks you through setting PLASMO_PUBLIC_CLERK_SYNC_HOST, adding host_permissions, registering the extension origin via the Clerk API, and hiding unsupported social buttons in the popup. ## Quick Start Set up Clerk authentication in my Plasmo Chrome extension popup with a stable extension ID and Google sign-in delegated to my web app.