electron について
Windows、macOS、Linux 向けの JavaScript アプリ開発を支援する Electron のエージェントスキルです。アーキテクチャ、プロセス間通信、セキュリティ、開発、配布の情報を整理しています。
主な機能
- 01メイン、レンダラー、プリロードの解説
- 02IPC とコンテキスト分離のパターン
- 03セキュリティとパフォーマンスの実践
- 04ネイティブ API とモジュールの解説
- 05パッケージング、署名、更新
活用シーン
- 01Electron アプリのひな形作成
- 02レンダラーとメインプロセスの接続
- 03セキュリティと性能方針の確認
- 04配布用ビルドの準備
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ hairyf/ skills --skill electronインストール後、Claude Code で/electronを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
GENERATION.mdreferences/best-practices-performance.mdbest-practices-security.mdbest-practices-versioning.mdcore-context-isolation.mdcore-ipc.mdcore-process-model.mdcore-sandbox.mddevelop-accessibility.mddevelop-app-lifecycle.mddevelop-base-window.mddevelop-browser-window.mddevelop-clipboard.mddevelop-command-line.mddevelop-content-tracing.mddevelop-context-menu.mddevelop-cookies.mddevelop-crash-reporter.mddevelop-debug.mddevelop-debugger.mddevelop-devtools-extension.mddevelop-dialog.mddevelop-dock.mddevelop-downloads.mddevelop-drag-drop.mddevelop-environment-variables.mddevelop-esm.mddevelop-keyboard-shortcuts.mddevelop-linux-desktop-actions.mddevelop-menus-tray.md詳細
Electron は Chromium と Node.js を組み込み、Windows、macOS、Linux 向けのアプリを単一の JavaScript コードベースから配布できます。プロジェクトのひな形を作成するとき、main/renderer 間の IPC を接続するとき、セキュリティやパッケージングを設定するとき、またはネイティブモジュールや自動更新を統合するときに、これらのスキルを活用してください。
このスキルは Electron(最新)に基づいており、2026-01-30 に生成されました。
コアリファレンス
| トピック | 説明 | リファレンス |
|---|---|---|
| プロセスモデル | メイン、レンダラー、プリロード、ユーティリティプロセス。それぞれを使用する場面 | core-process-model |
| IPC | レンダラー↔メイン間のパターン(送信、呼び出し、メイン→レンダラー)、シリアライズ | core-ipc |
| コンテキスト分離 | contextBridge、プリロードから安全な API を公開する方法 | core-context-isolation |
| サンドボックス | プロセスのサンドボックス化、プリロードのポリフィル、無効化される場面 | core-sandbox |
開発
| トピック | 説明 | 参照 |
|---|---|---|
| アクセシビリティ | setAccessibilitySupportEnabled、支援技術、AXManualAccessibility | develop-accessibility |
| アプリのライフサイクル | whenReady、window-all-closed、quit、単一インスタンスロック | develop-app-lifecycle |
| BaseWindow | 複数ビューのウィンドウ;contentView、View、addChildView;親/モーダル | develop-base-window |
| BrowserWindow | ウィンドウの作成、loadURL/loadFile、ready-to-show、webPreferences | develop-browser-window |
| クリップボード | readText/writeText、readHTML/writeHTML;preload から使用 | develop-clipboard |
| Cookie | session.cookies;get、set、remove、flushStore;changed イベント | develop-cookies |
| コマンドライン | app.commandLine、appendSwitch、hasSwitch;Electron/Node/Chromium のフラグ | develop-command-line |
| コンテキストメニュー | 右クリックメニュー;webContents の context-menu、Menu.popup | develop-context-menu |
| contentTracing | Chromium のトレース;startRecording、stopRecording;chrome://tracing | develop-content-tracing |
| クラッシュレポーター | crashReporter.start、submitURL、extra;ready の前に呼び出す | develop-crash-reporter |
| デバッグ | レンダラープロセスの DevTools、メインプロセス(--inspect、Chrome/VSCode) | develop-debug |
| デバッガー(CDP) | webContents.debugger;attach、detach、sendCommand;DevTools Protocol | develop-debugger |
| DevTools 拡張機能 | loadExtension、removeExtension;electron-devtools-installer | develop-devtools-extension |
| ダイアログ | showOpenDialog、showSaveDialog、showMessageBox;IPC 経由で公開 | develop-dialog |
| Dock | macOS Dock;バウンス、バッジ、アイコン、メニュー、非表示/表示 | develop-dock |
| ダウンロード | will-download、DownloadItem、setSavePath、preventDefault | develop-downloads |
| キーボードショートカット | アクセラレーター、ローカル(MenuItem)、グローバル(globalShortcut) | develop-keyboard-shortcuts |
| Linux デスクトップアクション | .desktop ファイルの Actions;ランチャーのショートカット;process.argv | develop-linux-desktop-actions |
| メニューとトレイ | アプリケーション/コンテキスト/トレイ/Dock のメニュー;Tray アイコンとコンテキストメニュー | develop-menus-tray |
| Native Image | createFromPath、createFromBuffer、テンプレート画像;トレイ、アイコン | develop-native-image |
| ネイティブモジュール | ネイティブ Node アドオンの使用;@electron/rebuild、node-gyp | develop-native-modules |
| Net | net.fetch、net.request;メインプロセスからの HTTP(Chromium スタック) | develop-net |
| netLog | セッションのネットワークログ;startLogging、stopLogging、captureMode | develop-net-log |
| ドラッグ&ドロップ | ネイティブのファイルドラッグアウト;webContents.startDrag、IPC | develop-drag-drop |
| ESM | メインプロセスと preload の ES モジュール;.mjs、注意事項 | develop-esm |
| マルチスレッド | Web Workers、nodeIntegrationInWorker;ワーカーでは Electron を使用不可 | develop-multithreading |
| ナビゲーション履歴 | webContents.navigationHistory、goBack、goForward、getAllEntries | develop-navigation-history |
| オフスクリーンレンダリング | paint イベント、NativeImage;GPU 対ソフトウェア;setFrameRate | develop-offscreen-rendering |
| parentPort | ユーティリティプロセスの子プロセス;process.parentPort の message/postMessage | develop-parent-port |
| 電源モニター | suspend、resume、バッテリー/AC、thermal-state-change、shutdown | develop-power-monitor |
| 省電力ブロッカー | powerSaveBlocker;ディスプレイ/アプリのスリープを防止;ID による開始/停止 | develop-power-save-blocker |
| プログレスバー | setProgressBar(タスクバー/Dock);0~1、不確定 | develop-progress-bar |
| Protocol | カスタムプロトコル(protocol.handle)、registerSchemesAsPrivileged | develop-protocol |
| 最近使った書類 | addRecentDocument、clearRecentDocuments;JumpList、Dock | develop-recent-documents |
| Safe Storage | encryptString、decryptString;OS キーチェーン | develop-safe-storage |
| Screen | getPrimaryDisplay、getAllDisplays、workAreaSize、ディスプレイイベント | develop-screen |
| Session | partition、defaultSession、permissionRequestHandler、cookies | develop-session |
| 共有メニュー | macOS ShareMenu;アプリ/ソーシャルサービスへの共有;popup、shareMenu ロール | develop-share-menu |
| Shell | openExternal、openPath、showItemInFolder、trashItem;セキュリティ | develop-shell |
| Process | process.type、process.versions、process.platform、process.mas | develop-process |
| 環境変数 | ELECTRON_*、NODE_OPTIONS;fuses | develop-environment-variables |
| 代表ファイル | setRepresentedFilename、setDocumentEdited(macOS のタイトルバー) | develop-represented-file |
| システム環境設定 | getEffectiveAppearance、getColor、getMediaAccessStatus | develop-system-preferences |
| Touch Bar | macOS TouchBar;項目(Button、Label、Slider など)、setTouchBar | develop-touch-bar |
| テスト | WebDriver/WebdriverIO による E2E、ヘッドレス CI | develop-tests |
| ユーティリティプロセス | utilityProcess.fork、postMessage、MessagePortMain | develop-utility-process |
| Web Request | onBeforeRequest、onHeadersReceived、filter;CSP の設定 | develop-web-request |
| webContents ナビゲーション | will-navigate、setWindowOpenHandler、load イベント | develop-webcontents-navigation |
| webFrame | レンダラーのズーム、insertCSS、executeJavaScript、スペルチェック、フレームツリー | develop-web-frame |
| webFrameMain | メインプロセスからのフレーム制御;fromId/fromFrameToken、executeJavaScript、IPC | develop-web-frame-main |
| webUtils | レンダラーの getPathForFile(File);ファイル入力のパス;preload 経由で公開 | develop-web-utils |
| ウィンドウのカスタマイズ | フレームレス、透明、カスタムタイトルバー | develop-window-customization |
| Windows タスクバー | JumpList、setThumbarButtons、setOverlayIcon、flashFrame | develop-windows-taskbar |
ベストプラクティス
| トピック | 説明 | 参照 |
|---|---|---|
| パフォーマンス | まず測定し、読み込みを遅らせ、ブロッキングを避け、バンドルします | best-practices-performance |
| セキュリティ | コンテンツの読み込み、webPreferences、CSP、IPC の検証、配布 | best-practices-security |
| バージョン管理 | SemVer、~ と ^、安定化ブランチ、アップグレードと EOL | best-practices-versioning |
機能
| トピック | 説明 | 参照 |
|---|---|---|
| ASAR | パック/アンパック、Node と Web API の使用方法、unpack オプション、整合性 | features-asar |
| コーナーのスムージング | -electron-corner-smoothing CSS、滑らかな角丸、system-ui | features-corner-smoothing |
| ダークモード | nativeTheme、themeSource、prefers-color-scheme | features-dark-mode |
| デスクトップキャプチャ | desktopCapturer、setDisplayMediaRequestHandler、getDisplayMedia | features-desktop-capture |
| Fuses | runAsNode、nodeCliInspect、asar の整合性、@electron/fuses | features-fuses |
| アプリ内購入 | Mac App Store の IAP、purchaseProduct、getProducts、transactions-updated | features-in-app-purchase |
| MessagePorts | レンダラー間およびメインプロセスとレンダラー間のメッセージング、MessagePortMain | features-message-ports |
| 通知 | メインプロセス(Notification)、レンダラー(Web Notifications API) | features-notifications |
| オンライン/オフライン | net.isOnline()、net.online、navigator.onLine、online/offline イベント | features-online-offline |
| プッシュ通知 | APNS(macOS)、registerForAPNSNotifications、received-apns-notification | features-push-notifications |
| サービスワーカー | session.serviceWorkers、getAllRunning、メインプロセスと SW 間の IPC(IpcMainServiceWorker) | features-service-workers |
| スペルチェッカー | 有効化、setSpellCheckerLanguages、コンテキストメニュー、辞書 URL | features-spellchecker |
| アップデート | autoUpdater、Squirrel、リリースメタデータの公開 | features-updates |
| Web の埋め込み | iframe、WebContentsView、webview タグ、それぞれの使いどころ | features-web-embeds |
配布
| トピック | 説明 | 参照 |
|---|---|---|
| コード署名 | macOS の署名と公証、Windows Authenticode | distribute-code-signing |
| Mac App Store | MAS ビルド、Apple Distribution、サンドボックス、制限事項 | distribute-mac-app-store |
| パッケージング | ツール(Forge)、手動でのレイアウト、asar、リブランド | distribute-packaging |
| Windows Store | AppX/MSIX、electron-windows-store、process.windowsStore | distribute-windows-store |
コメント
Markdown 対応