Electron Development
davila7/claude-code-templates
Master Electron desktop app development with secure IPC, contextIsolation, preload scripts, multi-process architecture, electron-builder packaging, code signing, and auto-update.
Safe Electron IPC patterns for renderer-main communication with preload bridges, channel design, replies, and serialization limits.
$ npx skills add tympanix/Electorrent --skill electron-ipc -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install tympanix/Electorrent electron-ipc --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/tympanix/Electorrent.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/electron-ipc .claude/skills/electron-ipc && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "electron-ipc" agent skill from https://github.com/tympanix/Electorrent/tree/master/.agents/skills/electron-ipc into .claude/skills/electron-ipc/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "electron-ipc", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/tympanix/Electorrent/tree/master/.agents/skills/electron-ipcType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add tympanix/Electorrent --skill electron-ipc -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install tympanix/Electorrent electron-ipc --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tympanix/Electorrent.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/electron-ipc .agents/skills/electron-ipc && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "electron-ipc" agent skill from https://github.com/tympanix/Electorrent/tree/master/.agents/skills/electron-ipc into .agents/skills/electron-ipc/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "electron-ipc", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add tympanix/Electorrent --skill electron-ipc -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install tympanix/Electorrent electron-ipc --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tympanix/Electorrent.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/electron-ipc .cursor/skills/electron-ipc && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "electron-ipc" agent skill from https://github.com/tympanix/Electorrent/tree/master/.agents/skills/electron-ipc into .cursor/skills/electron-ipc/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "electron-ipc", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/tympanix/Electorrent.git --path .agents/skills/electron-ipc--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add tympanix/Electorrent --skill electron-ipc -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install tympanix/Electorrent electron-ipc --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tympanix/Electorrent.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/electron-ipc .gemini/skills/electron-ipc && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "electron-ipc" agent skill from https://github.com/tympanix/Electorrent/tree/master/.agents/skills/electron-ipc into .gemini/skills/electron-ipc/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "electron-ipc", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install tympanix/Electorrent electron-ipcInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add tympanix/Electorrent --skill electron-ipc -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/tympanix/Electorrent.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/electron-ipc .github/skills/electron-ipc && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "electron-ipc" agent skill from https://github.com/tympanix/Electorrent/tree/master/.agents/skills/electron-ipc into .github/skills/electron-ipc/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "electron-ipc", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add tympanix/Electorrent --skill electron-ipc -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install tympanix/Electorrent electron-ipc --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tympanix/Electorrent.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/electron-ipc .opencode/skills/electron-ipc && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "electron-ipc" agent skill from https://github.com/tympanix/Electorrent/tree/master/.agents/skills/electron-ipc into .opencode/skills/electron-ipc/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "electron-ipc", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
electron-ipcSafe Electron IPC patterns for renderer-main communication with preload bridges, channel design, replies, and serialization limits.
Electron Ipc is an agent skill from tympanix/Electorrent. Safe Electron IPC patterns for renderer-main communication with preload bridges, channel design, replies, and serialization limits.
Its SKILL.md is about 1.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
The repository describes itself as: A remote control client for µTorrent, qBittorrent, rTorrent, Transmission, Synology & Deluge. The licence is GPL-3.0.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit d45444f. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are javascript).
From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
electronjs.orgFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Electron Ipc loads about 1.2k tokens when it runs. Until then it costs about 36 tokens; SKILL.md has 475 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from tympanix/Electorrent at commit d45444f, republished under its GPL-3.0 licence (© tympanix). 475 words, ~1,208 tokens.
.claude/skills/electron-ipc/SKILL.md (or your agent's skills folder).Use this skill when you need to design or implement communication between Electron's main and renderer processes.
ipcMain and ipcRenderer.contextBridge
instead of exposing raw Electron modules to the renderer.openFile() or
setTitle(title).ipcRenderer.send, ipcRenderer.invoke, or ipcRenderer.on
directly to renderer code.dialog:openFile for readability.| Need | Renderer API | Main API | Notes |
|---|---|---|---|
| Fire-and-forget renderer -> main | ipcRenderer.send | ipcMain.on | Good for commands with no result |
| Request/response renderer -> main | ipcRenderer.invoke | ipcMain.handle | Preferred two-way pattern |
| Push main -> renderer | preload listener wrapper | webContents.send | Main must target a specific window/webContents |
| Renderer -> renderer | relay through main or MessagePort | main as broker if needed | No direct IPC channel between renderers |
Use this when the renderer triggers a main-process action and does not need a result.
ipcMain.on('set-title', (event, title) => {
const win = BrowserWindow.fromWebContents(event.sender)
win?.setTitle(title)
})contextBridge.exposeInMainWorld('electronAPI', {
setTitle: (title) => ipcRenderer.send('set-title', title)
})window.electronAPI.setTitle('New title')Use this when the renderer needs a result from the main process. Prefer this over older reply patterns.
ipcMain.handle('dialog:openFile', async () => {
const { canceled, filePaths } = await dialog.showOpenDialog()
return canceled ? undefined : filePaths[0]
})contextBridge.exposeInMainWorld('electronAPI', {
openFile: () => ipcRenderer.invoke('dialog:openFile')
})const filePath = await window.electronAPI.openFile()invoke/handle is the preferred async request-response model.ipcMain.handle are serialized; the renderer does not receive the
full original error object.Use this when the main process needs to push updates into a specific window.
mainWindow.webContents.send('update-counter', 1)contextBridge.exposeInMainWorld('electronAPI', {
onUpdateCounter: (callback) => {
ipcRenderer.on('update-counter', (_event, value) => callback(value))
}
})window.electronAPI.onUpdateCounter((value) => {
// update UI
})There is no invoke equivalent from main to renderer. If the renderer needs to
reply, send a new message back to the main process on a separate channel.
Avoid these unless you have a strong compatibility reason:
ipcRenderer.send plus event.reply for two-way communication:
works, but forces manual reply-channel bookkeeping.ipcRenderer.sendSync: blocks the renderer and hurts responsiveness.ipcRenderer methods over contextBridge.Electron IPC uses the Structured Clone Algorithm.
BrowserWindow or
WebContents, and Node/Electron objects backed by native C++ classes.Pass serializable data, not live framework objects.
send + oninvoke + handlewebContents.sendMessagePort© tympanix, GPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/electron-ipc of tympanix/Electorrent.
Open the folder on GitHubat commit d45444f
Electron Ipc next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Electron Ipc this skilltympanix/Electorrent | 1.2k | — | ~1.2k | Automated safety check: Pass | GPL-3.0 | |
| Electron Developmentdavila7/claude-code-templates | 32k | 3 repos | ~7k | Automated safety check: Pass | MIT | |
| Developing Electron DesktopTriliumNext/Trilium | 38k | — | ~5.7k | Automated safety check: Pass | AGPL-3.0 | |
| Desktop ElectronOpenHands/OpenHands | 90k | — | ~302 | Automated safety check: Pass | MIT | |
| Electron Drive Skillsickn33/agentic-awesome-skills | 47k | 1 repos | ~2.5k | Automated safety check: Pass | MIT | |
| Fantasia Electron Mainvishiri/fantasia-archive | 409 | — | ~1.4k | Automated safety check: Pass | GPL-3.0 |
davila7/claude-code-templates
Master Electron desktop app development with secure IPC, contextIsolation, preload scripts, multi-process architecture, electron-builder packaging, code signing, and auto-update.
TriliumNext/Trilium
A skill your agent uses when working on the Trilium Electron desktop app (apps/desktop) — adding or changing an electronApi method / IPC channel, touching preload.ts, main.ts, services/window.ts or…
OpenHands/OpenHands
This skill should be used when the user asks to "change the desktop app", "package Electron", "build a universal macOS app", "bundle Node or uv", "fix Electron startup", or changes electron/…
sickn33/agentic-awesome-skills
Launch the project's Electron app on a scratch profile and drive it: click, type, screenshot, run renderer or main-process code, read logs.
vishiri/fantasia-archive
Works on Fantasia Archive Electron main process: app lifecycle, window management, platform tweaks, native integrations, and ipcMain registration (registerIpc + electron-ipc-bridge channel names).
thedaviddias/Front-End-Checklist
A skill your agent uses when auditing slow page loads, heavy assets, or rendering delays related to Eliminate render-blocking resources.
tympanix/Electorrent
Deluge Web JSON-RPC and core RPC reference covering session login, web methods, and commonly used core torrent operations.
tympanix/Electorrent
Synology Download Station Web API reference covering API discovery, authentication, request format, common errors, and Download Station task operations.
tympanix/Electorrent
rTorrent XML-RPC command reference focused on remote control, multicall patterns, load methods, and the torrent commands used by Electorrent.
tympanix/Electorrent
Transmission RPC reference covering JSON-RPC 2.0 transport, session token handling, torrent methods, session methods, and protocol versioning.
tympanix/Electorrent
Implement a feature. An agent skill from tympanix/Electorrent.
Safe Electron IPC patterns for renderer-main communication with preload bridges, channel design, replies, and serialization limits. Electron Ipc is an agent skill from tympanix/Electorrent. Safe Electron IPC patterns for renderer-main communication with preload bridges, channel design, replies, and serialization limits.
Run `npx skills add tympanix/Electorrent --skill electron-ipc -a claude-code`. Or copy the skill folder (.agents/skills/electron-ipc in tympanix/Electorrent) into .claude/skills/electron-ipc in your project. Claude Code loads it when a task matches its description.
Run `npx skills add tympanix/Electorrent --skill electron-ipc -a codex`. Or copy the skill folder (.agents/skills/electron-ipc in tympanix/Electorrent) into .agents/skills/electron-ipc in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add tympanix/Electorrent --skill electron-ipc -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/electron-ipc, .gemini/skills/electron-ipc, .github/skills/electron-ipc and .opencode/skills/electron-ipc in your project.
SKILL.md names no scripts, command-line tools or credentials: Electron Ipc is instructions for the agent only.
SKILL.md names 1 domain. As links in the text: electronjs.org. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Electron Ipc is published under the GPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.2k tokens (SKILL.md is roughly 4.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Electron Ipc: Electron Development (davila7/claude-code-templates, 32k stars), Developing Electron Desktop (TriliumNext/Trilium, 38k stars), Desktop Electron (OpenHands/OpenHands, 90k stars) and Electron Drive Skill (sickn33/agentic-awesome-skills, 47k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
tympanix (a GitHub user) maintains it in tympanix/Electorrent, which has 1,193 GitHub stars. The repository holds 6 skills in this directory. The repository was last updated on October 3, 2026.
Source: tympanix/Electorrent on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.