К основному содержанию
скилл CX Codex

electron-development — скилл для Claude Code: правила разработки

Скилл задаёт агенту правила разработки десктопных приложений на Electron: разделение процессов, IPC, безопасность окон.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add Mindrally/skills --skill electron-development -a claude-code
Открыть на GitHub

Что делает electron-development

Скилл описывает, как устроен проект на Electron, и подсказывает агенту, куда класть код. Внутри — структура каталогов src/ с папками main/, renderer/, preload/ и shared/, примеры для главного и рендер-процесса, обработчики IPC через ipcMain.handle и ipcMain.on.

Отдельный блок про безопасность: contextIsolation: true, nodeIntegration: false, preload-скрипты с contextBridge и белым списком каналов, а также заголовок Content Security Policy. Есть разделы про управление окнами, автообновление через electron-updater, нативные модули и сборку через electron-builder.

Скилл пригодится, если вы уже пишете на Electron или только начинаете проект. Для нативных зависимостей он советует electron-rebuild, а тесты предлагает писать на Spectron или Playwright. Ничего ставить заранее не нужно: это набор инструкций для агента, а не библиотека.

Какие задачи решает

  • разложить код Electron по процессам main, renderer и preload
  • настроить безопасные окна с contextIsolation и preload-скриптом
  • связать рендер и главный процесс через IPC-каналы
  • подключить автообновление через electron-updater
  • собрать установщики через electron-builder

Примеры запросов агенту

  • Разложи мой проект на Electron по структуре из скилла electron-development
  • Проверь настройки BrowserWindow на безопасность по electron-development
  • Добавь IPC-обработчик для чтения файла, как описано в electron-development

Как установить electron-development

1Через Skills CLI (Vercel)

npx skills add Mindrally/skills --skill electron-development -a claude-code

2Вручную: положить файлы

~/.claude/skills/electron-development/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/electron-development/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о electron-development

Как установить electron-development в Claude?

Выполните npx skills add Mindrally/skills --skill electron-development -a claude-code. Скилл появится в ~/.claude/skills/electron-development/SKILL.md.

Что делает electron-development?

Даёт агенту правила разработки десктопных приложений на Electron: структуру проекта, работу с IPC, безопасность окон и сборку.

Нужны ли дополнительные зависимости для работы скилла?

Нет, это текстовые инструкции для агента. Пакеты вроде electron-updater и electron-builder упоминаются как часть самого проекта на Electron.

Исходный текст

SKILL.md · Apache-2.0
---
name: electron-development
description: Electron development guidelines for building cross-platform desktop applications with JavaScript/TypeScript
metadata:
  maintainer: Mindrally
  source: https://github.com/Mindrally/skills
---

# Electron Development Guidelines

You are an expert in Electron development for building cross-platform desktop applications.

## Core Principles

- Follow security best practices for Electron apps
- Separate main and renderer process concerns
- Use IPC for process communication
- Implement proper window management

## Project Structure

```
src/
├── main/              # Main process code
│   ├── index.ts      # Entry point
│   ├── ipc/          # IPC handlers
│   └── utils/        # Utilities
├── renderer/          # Renderer process code
│   ├── components/   # UI components
│   ├── pages/        # Application pages
│   └── styles/       # Stylesheets
├── preload/          # Preload scripts
│   └── index.ts     # Expose APIs to renderer
└── shared/           # Shared types and utilities
```

## Security Best Practices

### Context Isolation
```javascript
// main.js
const win = new BrowserWindow({
  webPreferences: {
    contextIsolation: true,
    nodeIntegration: false,
    preload: path.join(__dirname, 'preload.js')
  }
});
```

### Preload Scripts
```javascript
// preload.js
const { contextBridge, ipcRenderer } = require('electron');

contextBridge.exposeInMainWorld('electronAPI', {
  sendMessage: (channel, data) => {
    const validChannels = ['toMain'];
    if (validChannels.includes(channel)) {
      ipcRenderer.send(channel, data);
    }
  },
  onMessage: (channel, callback) => {
    const validChannels = ['fromMain'];
    if (validChannels.includes(channel)) {
      ipcRenderer.on(channel, (event, ...args) => callback(...args));
    }
  }
});
```

### Content Security Policy
```html
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self'">
```

## IPC Communication

### Main Process
```javascript
const { ipcMain } = require('electron');

ipcMain.handle('read-file', async (event, filePath) => {
  const content = await fs.promises.readFile(filePath, 'utf-8');
  return content;
});

ipcMain.on('save-file', (event, { path, content }) => {
  fs.writeFileSync(path, content);
  event.reply('file-saved', { success: true });
});
```

### Renderer Process
```javascript
// Using exposed API from preload
const content = await window.electronAPI.readFile('/path/to/file');
```

## Window Management

```javascript
const { BrowserWindow } = require('electron');

function createWindow() {
  const win = new BrowserWindow({
    width: 1200,
    height: 800,
    minWidth: 800,
    minHeight: 600,
    webPreferences: {
      contextIsolation: true,
      preload: path.join(__dirname, 'preload.js')
    }
  });

  // Handle window events
  win.on('closed', () => {
    // Cleanup
  });

  // Load content
  if (process.env.NODE_ENV === 'development') {
    win.loadURL('http://localhost:3000');
    win.webContents.openDevTools();
  } else {
    win.loadFile('dist/index.html');
  }
}
```

## Auto Updates

```javascript
const { autoUpdater } = require('electron-updater');

autoUpdater.on('update-available', () => {
  // Notify user
});

autoUpdater.on('update-downloaded', () => {
  autoUpdater.quitAndInstall();
});

app.whenReady().then(() => {
  autoUpdater.checkForUpdatesAndNotify();
});
```

## Native Modules

- Use electron-rebuild for native dependencies
- Consider node-addon-api for custom modules
- Test native modules on all platforms
- Handle architecture differences (x64, arm64)

## Performance

- Minimize main process blocking
- Use web workers for heavy computation
- Implement lazy loading
- Profile with DevTools

## Testing

- Use Spectron or Playwright for E2E tests
- Unit test main process logic
- Test IPC handlers
- Test on all target platforms

## Building and Distribution

- Use electron-builder for packaging
- Configure proper app signing
- Set up auto-update infrastructure
- Test installers on all platforms

© Mindrally · Apache-2.0 · Mindrally/skills

Похожие скиллы

Всё по теме «Фронтенд и UI» →
electron-pro VoltAgent Community Субагент для создания приложений на Electron 27+. Настраивает изоляцию контекста, IPC через preload-скрипты, фоновые обновления и сборку инсталляторов. 376установок electron sanjeed5 Правило для Cursor задаёт команде единый стиль разработки на Electron: контекстная изоляция, безопасный contextBridge, IPC через invoke и кросс-платформенные пути. ★ 3 579звёзд репо electron-dev jamditis Скилл для сборки десктопных приложений на Electron с React, TypeScript и Vite: IPC, трей, PTY-терминалы, упаковка. CX Codex +1 305установок electron-best-practices agent-skills Скилл ведёт ИИ-агента по разработке Electron-приложений на React: безопасность, типизированный IPC, сборка и подпись. Пригодится, когда агент пишет код main, preload или renderer. CX Codex +1 820установок tauri-v2 nodnarbnitram Подсказывает агенту, как писать команды на Rust, настраивать IPC и capabilities в Tauri v2, и не даёт наступить на типовые грабли сборки. CX Codex +1 8 000установок electron-builder pedronauck Настраивает сборку десктопных приложений на Electron под Windows, macOS и Linux. Помогает с подписью кода, выпуском релизов и автоматическими обновлениями. CX Codex +1 392установок

Из того же набора168

front-end-developer Скилл превращает агента в старшего фронтенд-разработчика: React, Next.js, TypeScript, Tailwind, доступность. Пригодится, когда нужно писать компоненты, а не обсуждать их. CX Codex +1 1 300установок lua Задаёт агенту правила письма на Lua: таблицы, метатаблицы, обработка ошибок, игровой цикл и работа с памятью. Пригодится, если проект на Lua или Love2D. CX Codex +1 1 300установок tauri-development Скилл задаёт правила разработки десктопных программ на Tauri. Он настраивает связку Rust-бэкенда с фронтендом на TypeScript, React или Next.js. CX Codex +1 1 300установок nextjs-typescript-tailwindcss-supabase Скилл задаёт агенту правила для Next.js 14, TypeScript, TailwindCSS и Supabase: серверные компоненты, обработка ошибок, читаемый код. CX Codex +1 1 300установок alpine-js Набор правил для создания реактивных интерфейсов на Alpine.js. Помогает писать лёгкий клиентский код в связке с Tailwind CSS, Laravel Livewire и Ghost CMS. CX Codex +1 1 300установок zod-schema-validation Скилл задаёт правила валидации данных через Zod и вывода типов TypeScript на границах системы: в API, формах и внешних ответах. Помогает писать схемы без лишнего дублирования. CX Codex +1 1 200установок kafka-development Скилл с практиками Apache Kafka: топики, партиции, producer/consumer, Schema Registry. Пригодится, когда агент пишет код для event-driven архитектуры. CX Codex +1 1 200установок bootstrap Задаёт агенту правила работы с Bootstrap: сетка, компоненты, утилиты и валидация форм. Пригодится, когда интерфейс собирают без своего CSS. CX Codex +1 1 200установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой