Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Add Electron to `clerk init` framework detection and `--framework`

Open
#482 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 2 days

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
52/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
electron, typescript
Domain
cli

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.

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/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).

Dominant language
TypeScript
Stars
55
Forks
5
Avg merge
3d 7h
Merged PRs (30d)
11

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from clerk/cli

All issues in clerk/cli

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.