Electron
Installation
SKILL.md
Security Non-Negotiables
nodeIntegration: falseis mandatory — renderer with Node.js access means XSS = full system compromisecontextIsolation: trueis mandatory — separates preload context from renderer- Whitelist IPC channels explicitly — never forward arbitrary channel names from renderer
- Validate all IPC message content — renderer is untrusted, treat like external API input
- Never use
eval()ornew Function()in renderer — defeats all security boundaries
Preload Script Rules
contextBridge.exposeInMainWorld()is the only safe bridge — rawipcRendererexposure is vulnerable- Clone data before passing across bridge — prevents prototype pollution attacks
- Minimal API surface — expose specific functions, not generic send/receive
Architecture Traps
webPreferenceslocked after window creation — can't enable nodeIntegration later- Blocking main process freezes ALL windows — async everything, no sync file operations
- Each BrowserWindow is separate renderer process — can't share JS variables directly
show: falsethenready-to-show— prevents white flash, looks more native