# fuses **Repository Path**: mirrors_electron/fuses ## Basic Information - **Project Name**: fuses - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-10-13 - **Last Updated**: 2026-03-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # @electron/fuses > Flip [Electron Fuses](https://github.com/electron/electron/blob/main/docs/tutorial/fuses.md) and customize your packaged build of Electron [![Test](https://github.com/electron/fuses/actions/workflows/test.yml/badge.svg)](https://github.com/electron/fuses/actions/workflows/test.yml) [![npm version](http://img.shields.io/npm/v/@electron/fuses.svg)](https://npmjs.org/package/@electron/fuses) [![API docs](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fregistry.npmjs.org%2F%40electron%2Ffuses%2Flatest&query=%24.version&logo=typescript&logoColor=white&label=API%20Docs)](https://packages.electronjs.org/fuses) ## Usage ### Via JavaScript ```typescript import { flipFuses, FuseVersion, FuseV1Options } from '@electron/fuses'; // During your build / package process await flipFuses( require('electron'), // Returns the path to the electron binary { version: FuseVersion.V1, [FuseV1Options.RunAsNode]: false, // Disables ELECTRON_RUN_AS_NODE [FuseV1Options.EnableCookieEncryption]: true, // Enables cookie encryption [FuseV1Options.EnableNodeOptionsEnvironmentVariable]: false, // Disables the NODE_OPTIONS environment variable [FuseV1Options.EnableNodeCliInspectArguments]: false, // Disables the --inspect and --inspect-brk family of CLI options [FuseV1Options.EnableEmbeddedAsarIntegrityValidation]: true, // Enables validation of the app.asar archive on macOS [FuseV1Options.OnlyLoadAppFromAsar]: true, // Enforces that Electron will only load your app from "app.asar" instead of its normal search paths [FuseV1Options.LoadBrowserProcessSpecificV8Snapshot]: true, // Loads V8 Snapshot from `browser_v8_context_snapshot.bin` for the browser process [FuseV1Options.GrantFileProtocolExtraPrivileges]: true, // Grants the file protocol extra privileges [FuseV1Options.WasmTrapHandlers]: true, // Enables V8 signal handlers to trap Out of Bounds memory access from WebAssembly }, ); ``` For full API usage, see the [API documentation](https://packages.electronjs.org/fuses). ### From the command line ```sh $ npx @electron/fuses read --app /Applications/Foo.app $ npx @electron/fuses write --app /Applications/Foo.app <...key=on/off> ``` ### Apple Silicon For `arm64` macOS builds of your app, you will need to pass `resetAdHocDarwinSignature: true` to the `flipFuses` method if you are not immediately codesigning your app after flipping the fuses. Otherwise, the app will refuse to launch with code signature validation errors. This is a security measure on Apple Silicon devices. ```typescript import { flipFuses, FuseVersion, FuseV1Options } from '@electron/fuses'; await flipFuses( require('electron'), { version: FuseVersion.V1, resetAdHocDarwinSignature: targetPlatform === 'darwin' && targetArch === 'arm64', [FuseV1Options.RunAsNode]: false, }, ); ``` ### New Fuses If you want to ensure you provide a config for new fuses when upgrading Electron major versions, you can set the `strictlyRequireAllFuses` option to `true`. This will hard fail the build if you are on a version of `@electron/fuses` that doesn't have configuration options for every fuse in the Electron binary you are targeting or if you don't provide a configuration for a specific fuse present in the Electron binary you are targeting. ```typescript import { flipFuses, FuseVersion, FuseV1Options } from '@electron/fuses'; await flipFuses( require('electron'), { version: FuseVersion.V1, strictlyRequireAllFuses: true, [FuseV1Options.RunAsNode]: false, }, ); ```