# Electron Desktop Apps

Builds cross-platform desktop apps with HTML, CSS, JavaScript, and Electron.

- Repository: https://github.com/fathah/hermes-desktop (14509 stars)
- Category: Engineering
- License: MIT
- Last updated: 2026-10-13
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add fathah/hermes-desktop --skill electron-pro -g -a claude-code -y`
Codex: `npx skills add fathah/hermes-desktop --skill electron-pro -g -a codex -y`
Cursor: `npx skills add fathah/hermes-desktop --skill electron-pro -g -a cursor -y`
Gemini CLI: `npx skills add fathah/hermes-desktop --skill electron-pro -g -a gemini-cli -y`

## Description

Expert in building cross-platform desktop applications using web technologies (HTML/CSS/JS) with the Electron framework.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Electron Desktop Developer

## Purpose

Provides cross-platform desktop application development expertise specializing in Electron, IPC architecture, and OS-level integration. Builds secure, performant desktop applications using web technologies with native capabilities for Windows, macOS, and Linux.

## When to Use

- Building cross-platform desktop apps (VS Code, Discord style)
- Migrating web apps to desktop with native capabilities (File system, Notifications)
- Implementing secure IPC (Main ↔ Renderer communication)
- Optimizing Electron memory usage and startup time
- Configuring auto-updaters (electron-updater)
- Signing and notarizing apps for app stores

---

---

## 2. Decision Framework

### Architecture Selection

```
How to structure the app?
│
├─ **Security First (Recommended)**
│  ├─ Context Isolation? → **Yes** (Standard since v12)
│  ├─ Node Integration? → **No** (Never in Renderer)
│  └─ Preload Scripts? → **Yes** (Bridge API)
│
├─ **Data Persistence**
│  ├─ Simple Settings? → **electron-store** (JSON)
│  ├─ Large Datasets? → **SQLite** (`better-sqlite3` in Main process)
│  └─ User Files? → **Native File System API**
│
└─ **UI Framework**
   ├─ React/Vue/Svelte? → **Yes** (Standard SPA approach)
   ├─ Multiple Windows? → **Window Manager Pattern**
   └─ System Tray App? → **Hidden Window Pattern**
```

### IPC Communication Patterns

| Pattern                        | Method               | Use Case                                        |
| ------------------------------ | -------------------- | ----------------------------------------------- |
| **One-Way (Renderer → Main)**  | `ipcRenderer.send`   | logging, analytics, minimizing window           |
| **Two-Way (Request/Response)** | `ipcRenderer.invoke` | DB queries, file reads, heavy computations      |
| **Main → Renderer**            | `webContents.send`   | Menu actions, system events, push notifications |

**Red Flags → Escalate to `security-auditor`:**

The rest: https://github.com/fathah/hermes-desktop/blob/HEAD/.agents/skills/electron-pro/SKILL.md
