Add Electron to `clerk init` framework detection and `--framework`
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 55
- Forks
- 5
- Avg merge
- 1d 16h
- Merged PRs (30d)
- 17
Description
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/electronneedselectron-storeinstalled alongside it (optional peer used by@clerk/electron/storage);sdkInstallmay need to cover both.- Electron has no secret key;
initandenv pullshould skipCLERK_SECRET_KEYfor this framework the way the iOS and Android entries do (extendisNpmFramework/includeSecretKeyor add a per-framework flag). - The Electron renderer's Content Security Policy needs the instance's Frontend API host; the docs put it in
.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.- 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).
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with packages/cli-core/src/lib/framework.ts and its FRAMEWORK_MAP, then inspect packages/cli-core/src/commands/env/pull.ts and the init flow. Verify Electron Forge projects are detected as Electron, the Electron SDK and publishable-key environment settings are selected, and CLERK_SECRET_KEY is omitted; check whether starter behavior and existing tests also need updates.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- electron, typescript
- Domain
- cli
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100