Skip to content
OpenSmartRoute
Skillv1.0.0

electron

Assists with building cross-platform desktop applications using Electron. Use when architecting main/renderer process communication, configuring secure contexts, implementing auto-updates, or packagin

by terminalskills(0) 0 installs
Free
Sign in to install

Free account. Installing gives you the manifest plus copy-paste snippets.

See reviews

About

Imported from terminalskills/skills (skills/electron/SKILL.md). Install upstream with npx skills add terminalskills/skills --skill electron. Copyright stays with the author (Apache-2.0).

Electron

Overview

Electron is a framework for building cross-platform desktop applications using web technologies. It combines a Node.js main process for system access and window management with Chromium renderer processes for the UI, communicating via IPC with context isolation and preload scripts for security.

Instructions

  • When setting up the architecture, create a main process for window management and system APIs, renderer processes for UI, and preload scripts to expose a controlled API bridge via contextBridge.exposeInMainWorld().
  • When implementing IPC, use ipcMain.handle() / ipcRenderer.invoke() for async request-response patterns, and webContents.send() for main-to-renderer push communication.
  • When accessing native APIs, use dialogs, file system, clipboard, notifications, and shell operations in the main process, exposing them to the renderer through the preload bridge.
  • When configuring security, keep contextIsolation: true and nodeIntegration: false (defaults), set CSP headers on all windows, sandbox renderer processes, and validate all IPC inputs in the main process.
  • When packaging the app, use electron-builder or electron-forge to produce platform-specific installers (NSIS/MSI for Windows, DMG for macOS, AppImage/deb for Linux) with code signing and notarization.
  • When implementing auto-updates, use electron-updater with GitHub Releases or a custom server, configure delta updates for smaller downloads, and verify update signatures.

Examples

Example 1: Build a file manager with native dialogs

User request: "Create an Electron app that browses and manages files with native dialogs"

Actions:

  1. Set up main process with BrowserWindow and preload script exposing file system commands
  2. Implement IPC handlers for dialog.showOpenDialog(), dialog.showSaveDialog(), and file operations
  3. Build a React-based renderer UI for browsing directories and previewing files
  4. Add context menus and keyboard shortcuts for file operations

Output: A cross-platform file manager with native OS dialogs and secure IPC-based file access.

Example 2: Add auto-updates with staged rollout

User request: "Set up auto-updates for my Electron app using GitHub Releases"

Actions:

  1. Configure electron-builder with publish settings pointing to GitHub Releases
  2. Add electron-updater in the main process with update check on startup
  3. Implement update UI in the renderer showing download progress and restart prompt
  4. Configure staged rollout to update a percentage of users first

Output: An Electron app that automatically checks for updates, downloads them in the background, and prompts the user to restart.

Guidelines

  • Always use context isolation and preload scripts; never enable nodeIntegration in the renderer.
  • Validate all IPC message data in the main process since the renderer is untrusted like a browser.
  • Use ipcMain.handle() / ipcRenderer.invoke() for async operations over the older send/on pattern.
  • Minimize main process work to keep it responsive for window management and IPC routing.
  • Set CSP headers on all windows: default-src 'self'; script-src 'self'.
  • Test on all target platforms since Windows, macOS, and Linux behave differently for menus, shortcuts, and file paths.
  • Handle the renderer-process-gone event and monitor memory usage with process.memoryUsage().

Use it

Copy one of these into your project. Installing also returns the manifest and these snippets.

yaml
targets:
  - https://api.opensmartroute.ai/api/v1/registry/terminalskills-skills-electron/manifest   # or paste the manifest below

Manifest

An Open Capability Manifest: the router reads it to know what this does, what it costs and when to pick it.

terminalskills-skills-electron.ocm.jsonjson
{
  "ocm": "1",
  "id": "terminalskills-skills-electron",
  "kind": "skill",
  "name": "electron",
  "description": "Assists with building cross-platform desktop applications using Electron. Use when architecting main/renderer process communication, configuring secure contexts, implementing auto-updates, or packaging apps for Windows, macOS, and Linux. Trigger words: electron, desktop app, browserwindow, ipc, auto-update, electron-builder.",
  "publisher": "terminalskills",
  "version": "1.0.0",
  "capabilities": {
    "domains": [
      "general"
    ],
    "tags": [
      "skill-md",
      "electron",
      "desktop",
      "cross-platform",
      "ipc",
      "packaging",
      "skills-sh"
    ],
    "languages": [
      "en"
    ]
  },
  "quality_prior": 0.6,
  "examples": [
    "Assists with building cross-platform desktop applications using Electron. Use when architecting main/renderer process communication, configuring secure contexts, implementing auto-updates, or packaging apps for Windows, macOS, and Linux. Trigger words: electron, desktop app, browserwindow, ipc, auto-update, electron-builder."
  ],
  "primary": false,
  "metadata": {
    "source": {
      "provider": "skills.sh",
      "repository": "https://github.com/terminalskills/skills",
      "path": "skills/electron/SKILL.md",
      "ref": "HEAD",
      "url": "https://github.com/terminalskills/skills/blob/HEAD/skills/electron/SKILL.md",
      "key": "terminalskills/skills/skills/electron/SKILL.md"
    },
    "compatibility": "Requires Node.js 18+",
    "license": "Apache-2.0"
  },
  "instructions": "# Electron\n\n## Overview\n\nElectron is a framework for building cross-platform desktop applications using web technologies. It combines a Node.js main process for system access and window management with Chromium renderer processes for the UI, communicating via IPC with context isolation and preload scripts for security.\n\n## Instructions\n\n- When setting up the architecture, create a main process for window management and system APIs, renderer processes for UI, and preload scripts to expose a controlled API bridge via `contextBridge.exposeInMainWorld()`.\n- When implementing IPC, use `ipcMain.hand",
  "cost": {
    "context_tokens": 856
  }
}

Fetch it by URL: GET /api/v1/registry/terminalskills-skills-electron/manifest?version=1.0.0

Reviews

Star ratings from people who tried it. One review per account; edit yours any time.

No reviews yet. Install it, try it, and be the first to rate it.