Electron API And IPC

SkillFiles & storage

Guides your agent when editing massCode's API routes, IPC handlers, and Electron communication code.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Electron API And IPC skill

About this capability

Use when changing massCode API routes, DTOs, IPC handlers, Electron bridges, or any renderer-to-main communication and storage-access boundaries.

What this skill tells your AI

The instructions your AI receives, as published by masscodeio/masscode in .agents/skills/electron-api-and-ipc/SKILL.md and read by ahel’s review.

Overview

Все backend-возможности massCode живут в main process. Renderer получает доступ к данным и системным операциям только через Elysia API или IPC channels.

Renderer Access Rules

  • В renderer для данных используй import { api } from '~/renderer/services/api'.
  • В renderer для системных операций используй ipc.invoke('channel:action', payload).
  • Electron API из renderer доступен только через src/renderer/electron.ts.
  • Никогда не импортируй storage internals или backend-модули напрямую в renderer.

New API Endpoints

При добавлении нового endpoint:

  1. создай DTO в src/main/api/dto/;
  2. добавь route в src/main/api/routes/;
  3. запусти pnpm api:generate, чтобы обновить клиент.

Не оставляй API-клиент рассинхронизированным с route/DTO изменениями.

IPC Conventions

  • Для filesystem и system ops используй ipc.invoke(...).
  • Каналы должны укладываться в семейства:
    • fs:*
    • system:*
    • db:* — legacy или migration flows, не основной путь для новой функциональности
    • main-menu:*
    • prettier:*
    • spaces:*
    • theme:*

Good Boundaries

  • Renderer формирует intent и payload.
  • Main/API работает с данными приложения, файловой системой и system APIs.
  • Ответ возвращается обратно в renderer в виде DTO или IPC result, а не через shared mutable backend module.

Common Mistakes

  • Тянуть backend-модуль напрямую в renderer ради “удобства”.
  • Менять DTO/route без pnpm api:generate.
  • Добавлять system/file behavior в renderer вместо IPC handler.
  • Добавлять новые db:* flows там, где задача должна идти через текущую API/IPC модель приложения.
  • Создавать ad-hoc каналы, которые не укладываются в существующие channel families.

Signals

GitHub stars
7k
Forks
266
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
electron-api-and-ipc
Source
github.com/masscodeio/masscode