# What changed in @electron-forge/cli

> 47 changes in @electron-forge/cli 7 to 8 from its official release notes, upgrade guides and advisories: 25 breaking, 2 deprecations, 8 new APIs and options. Each one cited. Sources checked 2026-10-20. HTML: https://unstale.sh/npm/@electron-forge/cli/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## @electron-forge/cli 8

### Breaking changes

- The Vite and webpack plugins emit main and preload bundles as .cjs; update configured main and preload paths. (8.0.1) — [release notes](https://github.com/electron/forge/releases/tag/v8.0.1)
- Project initialization and import moved out of Forge; use create-electron-app for scaffolding and importing projects. (8.0.1) — [release notes](https://github.com/electron/forge/releases/tag/v8.0.1)
- A single template per bundler replaces separate TypeScript templates; new projects use oxlint, oxfmt, moduleResolution: bundler, and a release script. (8.0.1) — [release notes](https://github.com/electron/forge/releases/tag/v8.0.1)
- Custom makers, publishers, plugins, and string packagerConfig hooks must provide a default export. (8.0.1) — [release notes](https://github.com/electron/forge/releases/tag/v8.0.1)
- Forge packages are ESM-only and require Node.js 22.17 or newer; existing Forge configurations still work in CommonJS or ESM projects. (8.0.1) — [release notes](https://github.com/electron/forge/releases/tag/v8.0.1)
- The import command was removed; use create-electron-app to import projects. (8.0.1) — [release notes](https://github.com/electron/forge/releases/tag/v8.0.1)
- The init command was removed; scaffold projects with create-electron-app instead. (8.0.1) — [release notes](https://github.com/electron/forge/releases/tag/v8.0.1)
- The electronegativity plugin was removed. (8.0.1) — [release notes](https://github.com/electron/forge/releases/tag/v8.0.1)
- plugin-fuses now requires @electron/fuses 2.x. (8.0.1) — [release notes](https://github.com/electron/forge/releases/tag/v8.0.1)
- Config strings are no longer rendered as lodash templates or resolved as require:./path; use JavaScript in Forge config files instead. (8.0.1) — [release notes](https://github.com/electron/forge/releases/tag/v8.0.1)
- Only the listed JavaScript and TypeScript Forge config file extensions are loaded; other languages and Babel-registered files are unsupported. (8.0.1) — [release notes](https://github.com/electron/forge/releases/tag/v8.0.1)
- Use --from-package in place of make --skip-package. (8.0.1) — [release notes](https://github.com/electron/forge/releases/tag/v8.0.1)
- S3 and GCS keyResolver now takes one object containing fileName, platform, arch, and version instead of positional arguments. (8.0.1) — [release notes](https://github.com/electron/forge/releases/tag/v8.0.1)
- With listr2 v11, Listr.errors is null unless collectErrors is set. (8.0.1) — [release notes](https://github.com/electron/forge/releases/tag/v8.0.1)
- The webpack loggerPort option was removed along with @electron-forge/web-multi-logger; press r in the terminal UI to restart the app. (8.0.1) — [release notes](https://github.com/electron/forge/releases/tag/v8.0.1)
- maker-deb rejects unsupported architectures, including arm (armel); supported architectures are ia32, x64, arm64, armv7l, and mips64el. (8.0.1) — [release notes](https://github.com/electron/forge/releases/tag/v8.0.1)
- maker-wix only builds x64, ia64, and x86 architectures. (8.0.1) — [release notes](https://github.com/electron/forge/releases/tag/v8.0.1)
- MakerFlatpakOptionsConfig was renamed to MakerFlatpakConfigOptions. (8.0.1) — [release notes](https://github.com/electron/forge/releases/tag/v8.0.1)
- Node.js 22.17.0 or newer is required to run Forge. (8.0.1) — [release notes](https://github.com/electron/forge/releases/tag/v8.0.1)
- DMG output now goes into architecture-specific subdirectories; update CI upload globs. (8.0.1) — [release notes](https://github.com/electron/forge/releases/tag/v8.0.1)
- PKG output now goes into architecture-specific subdirectories; update CI upload globs. (8.0.1) — [release notes](https://github.com/electron/forge/releases/tag/v8.0.1)
- The exported GitHub publisher class is now named PublisherGitHub. (8.0.1) — [release notes](https://github.com/electron/forge/releases/tag/v8.0.1)
- GCS public, private, and predefinedAcl settings were replaced by uploadOptions; uploads are no longer gzipped unless gzip is enabled there. (8.0.1) — [release notes](https://github.com/electron/forge/releases/tag/v8.0.1)
- The Vite plugin targets Vite 8; upgrade Vite and port custom Rollup options to the Vite 8 API. (8.0.1) — [release notes](https://github.com/electron/forge/releases/tag/v8.0.1)
- Custom devServer options must follow webpack-dev-server 5's API. (8.0.1) — [release notes](https://github.com/electron/forge/releases/tag/v8.0.1)

### Deprecations

- maker-appx is deprecated and now builds .msix through electron-windows-msix; move to maker-msix. (8.0.1) — [release notes](https://github.com/electron/forge/releases/tag/v8.0.1)
- The publish command still works as a deprecated alias for release. (8.0.1) — [release notes](https://github.com/electron/forge/releases/tag/v8.0.1)

### New APIs and options

- deb and rpm makers add a typed copyright option. (8.0.1) — [release notes](https://github.com/electron/forge/releases/tag/v8.0.1)
- maker-msix adds outputFileName to override the output filename. (8.0.1) — [release notes](https://github.com/electron/forge/releases/tag/v8.0.1)
- The create-electron-app init command gains a flag to specify the Electron version. (8.0.1) — [release notes](https://github.com/electron/forge/releases/tag/v8.0.1)
- Use release --from-make to publish artifacts from a previous make run; this replaces --from-dry-run. (8.0.1) — [release notes](https://github.com/electron/forge/releases/tag/v8.0.1)
- Set hotRestart: true to opt in to main-process hot restart in the Vite plugin. (8.0.1) — [release notes](https://github.com/electron/forge/releases/tag/v8.0.1)
- PKG notarization support was added. (8.0.1) — [release notes](https://github.com/electron/forge/releases/tag/v8.0.1)
- Pass a package manager, including an exact version, when initializing projects; non-interactive init otherwise uses npm. (8.0.1) — [release notes](https://github.com/electron/forge/releases/tag/v8.0.1)

### Behavior and default changes

- The Vite plugin is stable, covered by semver, targets Vite 8, builds targets in isolated processes, supports main-process hot restart, and honors a custom server host. (8.0.1) — [release notes](https://github.com/electron/forge/releases/tag/v8.0.1)
- GitHub asset upload progress is now shown at byte-level granularity. (8.0.1) — [release notes](https://github.com/electron/forge/releases/tag/v8.0.1)
- make always saves its results, allowing release --from-make to publish artifacts built earlier, including in another CI job. (8.0.1) — [release notes](https://github.com/electron/forge/releases/tag/v8.0.1)
- The webpack plugin displays compiler output as terminal tabs instead of using a browser logger on port 9000. (8.0.1) — [release notes](https://github.com/electron/forge/releases/tag/v8.0.1)

### Tooling

- The publish command is renamed to release to avoid conflict with npm publish; publish remains a deprecated alias. (8.0.1) — [release notes](https://github.com/electron/forge/releases/tag/v8.0.1)

### Fixes and other changes

- Plugins are initialized once per command; nested make and release steps no longer re-resolve the config. (8.0.1) — [release notes](https://github.com/electron/forge/releases/tag/v8.0.1)
- The Vite plugin now honors a custom server.host when constructing the renderer development-server URL. (8.0.1) — [release notes](https://github.com/electron/forge/releases/tag/v8.0.1)

## @electron-forge/cli 7

### New APIs and options

- The init command adds the --electron-version flag, allowing developers to specify an Electron version when initializing a project. (7.11.1) — [release notes](https://github.com/electron/forge/releases/tag/v7.11.1)

### Behavior and default changes

- The Vite plugin is marked as experimental. (7.11.1) — [release notes](https://github.com/electron/forge/releases/tag/v7.11.1)

### Fixes and other changes

- Interactive mode now detects whether the process is attached to a TTY instead of always assuming it is. (7.11.2) — [release notes](https://github.com/electron/forge/releases/tag/v7.11.2)
- The CLI now allows pre-release package manager ranges. (7.11.2) — [release notes](https://github.com/electron/forge/releases/tag/v7.11.2)
- The template adds `private: true` to generated package configuration. (7.11.1) — [release notes](https://github.com/electron/forge/releases/tag/v7.11.1)
- The create-electron-app template adds the missing `repository` field. (7.11.1) — [release notes](https://github.com/electron/forge/releases/tag/v7.11.1)
