electron-skills | Skill Performance & Reviews | TopRankSkills

TopRank Skills

Home / Skills / tools / electron-skills

electron-skills

maintained by llama-farm

star 816 account_tree 46 verified_user MIT License
bolt View GitHub

name: electron-skills description: Electron patterns for LlamaFarm Desktop. Covers main/renderer processes, IPC, security, and packaging. allowed-tools: Read, Grep, Glob user-invocable: false

Electron Skills for LlamaFarm Desktop

Electron 28 + Electron Vite patterns for the LlamaFarm Desktop application.

Overview

This skill extends typescript-skills with Electron-specific patterns for main/renderer process architecture, IPC communication, security, and performance.

Tech Stack

Component Technology Purpose
Framework Electron 28 Desktop application framework
Build electron-vite 2 Vite-based build for main/preload/renderer
Updates electron-updater Auto-update via GitHub releases
Packaging electron-builder Cross-platform packaging (macOS/Win/Linux)

Architecture

electron-app/
  src/
    main/           # Main process (Node.js context)
      index.ts      # App entry, lifecycle, IPC handlers
      backend/      # CLI installer, model downloader
      window-manager.ts
      menu-manager.ts
      logger.ts
    preload/        # Preload scripts (bridge context)
      index.ts      # contextBridge API exposure
    renderer/       # Renderer process (browser context)
      index.html    # Main window
      splash.html   # Splash screen

Core Principles

  1. Process isolation - Main, preload, and renderer are separate contexts
  2. Context isolation - Always use contextBridge.exposeInMainWorld
  3. No Node in renderer - nodeIntegration: false always
  4. Type-safe IPC - Define channel types and payload schemas
  5. Secure by default - Minimize exposed APIs in preload

Related Documents

Shared TypeScript Patterns

This skill inherits from typescript-skills:

Quick Reference

IPC Handler Pattern (Main Process)

ipcMain.handle('cli:info', async () => {
  const isInstalled = await this.cliInstaller.isInstalled()
  return {
    isInstalled,
    path: isInstalled ? this.cliInstaller.getCLIPath() : null
  }
})

Preload Bridge Pattern

const api = {
  cli: {
    getInfo: () => ipcRenderer.invoke('cli:info')
  },
  platform: process.platform,
  version: process.versions.electron
}

contextBridge.exposeInMainWorld('llamafarm', api)

BrowserWindow Configuration

new BrowserWindow({
  webPreferences: {
    preload: path.join(__dirname, '../preload/index.js'),
    nodeIntegration: false,
    contextIsolation: true
  }
})

Checklist Summary

Category Critical High Medium Low
IPC 2 3 2 1
Security 4 3 2 1
Performance 1 3 3 2

chat Comments (0)

chat_bubble_outline

No comments yet. Be the first to share your thoughts!

Skill Details

GitHub Stars 816
GitHub Forks 46
Created Jan 2026
Last Updated 4 months ago
tools tools system admin

Related Skills

docker-expert
chevron_right
caffeine
chevron_right
telnyx-network
chevron_right
discord-governance
chevron_right
plex

plex

openclaw
star 2.4k
chevron_right

Build your own?

Join 12,000+ developers contributing to the Claude ecosystem.