Summary
clerk init cannot set up @clerk/electron. --framework has no electron choice, and detection (packages/cli-core/src/lib/framework.ts FRAMEWORK_MAP) matches an Electron Forge project as React once react is installed (React precedes Vite in the map) or as Vite/JavaScript before that, so init installs @clerk/react or @clerk/clerk-js. clerk env pull writes the right variable name (VITE_CLERK_PUBLISHABLE_KEY) but also writes CLERK_SECRET_KEY, because packages/cli-core/src/commands/env/pull.ts includes the secret key for every npm framework. A secret key has no use in an Electron app, so the docs cannot recommend env pull either.
The Electron docs (clerk/clerk#3382) therefore use the manual Publishable Key step and carry no CLI instructions.
Proposal
Add an entry to FRAMEWORK_MAP before the react and vite entries, since Electron Forge projects contain both:
{
dep: "electron",
name: "Electron",
sdk: "@clerk/electron",
envVar: "VITE_CLERK_PUBLISHABLE_KEY",
envFile: ".env",
},
Notes for the implementer:
@clerk/electron needs electron-store installed alongside it (optional peer used by @clerk/electron/storage); sdkInstall may need to cover both.
- Electron has no secret key;
init and env pull should skip CLERK_SECRET_KEY for this framework the way the iOS and Android entries do (extend isNpmFramework/includeSecretKey or add a per-framework flag).
- The Electron renderer's Content Security Policy needs the instance's Frontend API host; the docs put it in
.env as VITE_CLERK_FRONTEND_API_HOST, which env pull could write too.
--starter could scaffold with Electron Forge: npm init electron-app@latest <name> -- --template=vite-typescript plus React, matching the docs quickstart at https://clerk.com/docs/electron/getting-started/quickstart.
- Keyless is not supported by the Electron SDK today (the SDK requires
publishableKey).
Follow-up in docs
Once shipped, the quickstart gains a "For AI agents" block with npx clerk@latest init --framework electron and a <PromptOnly> card (tracked in Linear DOCS, linked from the docs PR).
Summary
clerk initcannot set up@clerk/electron.--frameworkhas noelectronchoice, and detection (packages/cli-core/src/lib/framework.tsFRAMEWORK_MAP) matches an Electron Forge project as React oncereactis installed (React precedes Vite in the map) or as Vite/JavaScript before that, soinitinstalls@clerk/reactor@clerk/clerk-js.clerk env pullwrites the right variable name (VITE_CLERK_PUBLISHABLE_KEY) but also writesCLERK_SECRET_KEY, becausepackages/cli-core/src/commands/env/pull.tsincludes the secret key for every npm framework. A secret key has no use in an Electron app, so the docs cannot recommendenv pulleither.The Electron docs (clerk/clerk#3382) therefore use the manual Publishable Key step and carry no CLI instructions.
Proposal
Add an entry to
FRAMEWORK_MAPbefore thereactandviteentries, since Electron Forge projects contain both:Notes for the implementer:
@clerk/electronneedselectron-storeinstalled alongside it (optional peer used by@clerk/electron/storage);sdkInstallmay need to cover both.initandenv pullshould skipCLERK_SECRET_KEYfor this framework the way the iOS and Android entries do (extendisNpmFramework/includeSecretKeyor add a per-framework flag)..envasVITE_CLERK_FRONTEND_API_HOST, whichenv pullcould write too.--startercould scaffold with Electron Forge:npm init electron-app@latest <name> -- --template=vite-typescriptplus React, matching the docs quickstart at https://clerk.com/docs/electron/getting-started/quickstart.publishableKey).Follow-up in docs
Once shipped, the quickstart gains a "For AI agents" block with
npx clerk@latest init --framework electronand a<PromptOnly>card (tracked in Linear DOCS, linked from the docs PR).