Changelog
All notable user-facing changes to the Bevy CLI will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
All Changes: cli-v0.1.0-alpha.2...main
Changed
- In web builds, the canvas now resizes to fill the webpage. This change will not affect projects that use a custom
index.htmlfile.
v0.1.0-alpha.2 - 2025-09-22
All Changes: cli-v0.1.0-alpha.1...cli-v0.1.0-alpha.2
Added
bevy build webandbevy run webcommands will now automatically apply the web backend forgetrandomif necessary.getrandomrequires both a feature and a rustflag to be enabled by the user, which can quickly lead to compile errors when not set up correctly. The CLI will automatically set the rustflag if needed and provide easy instructions on how to configure the features (#547)- The CLI is now able to list and install all available versions of the Bevy linter with
bevy lint listandbevy lint install(#529) - You can now run the linter on web builds with
bevy lint web(#523) - You can now specify the host address in
bevy run webwith the--hostflag (#472) - It is now possible to customize the arguments passed to
wasm-optwhen optimizing a build for the web (#486)- You can pass flags to the CLI like
--wasm-opt=-Oz --wasm-opt=--enable-bulk-memory, or you can change thewasm-optconfiguration value to an array instead of a boolean, likewasm-opt = ["-Oz", "--enable-bulk-memory"](#486)
- You can pass flags to the CLI like
- It is now possible to specify
bevy run webHTTP headers inCargo.tomlusing theheadersarray (#544) - The Bevy CLI now has colorful
--helpoutput, matching Cargo’s style (#464) - The main
--helpmessage now contains links to Bevy’s website, Bevy’s source code, and the CLI’s documentation (#457, #482) - (Unstable) It is now possible to build apps for the web with support for multi-threading (#499)
- Use the
--unstable multi-threadingflag or set theunstable.web-multi-threadingconfig totrueto run an app using multi-threaded Wasm - This is only available when compiling the CLI with the
unstablefeature, however it is enabled by default - This depends on an unstable flag in the Rust compiler, and thus requires a nightly toolchain of Rust
- Bevy doesn’t natively utilize multi-threaded WASM, so this will only benefit plugins that support it or code you write yourself
- Use the
Changed
- The CLI no longer uses
cargo-generateas a library dependency. Instead, if you don’t have thecargo-generateexecutable installed, the CLI will ask to automatically install it for you when you first runbevy new(#597)- This makes it slightly more challenging to use
bevy new, but it significantly decreases compilation times for the CLI (up to 3x!) and allows passing more options tocargo-generate.
- This makes it slightly more challenging to use
- When building a project, the CLI can now load the
assetsandwebfolders next to the crateCargo.toml, rather than just the workspaceCargo.toml. Crate-specific folders will be prioritized over workspace folders (#485, #490) rustflagsspecified in.cargo/config.tomland theRUSTFLAGSenvironmental variable are now respected and will be merged with those defined in the CLI’s configuration (#540)bevy build webandbevy run webnow support JS snippets (#527)- The
--no-default-featuresoption confusingly used to accepttrueandfalseas inputs, but has been changed to be a simple toggle flag, matching Cargo’s behavior (#473) - The
--yesflag frombevy linthas been moved to thebevy lint installsubcommand (#583) - The error message has been improved in cases where the CLI fails to gather project information using
cargo metadata(#543, #545)
Fixed
bevy build webandbevy run webnow respect thetargetconfiguration option, meaning it’s now possible to build for WASM targets likewasm32v1-noneinstead of justwasm32-unknown-unknown(#481)bevy runnow respects thedefault-membersworkspace field inCargo.tomlwhen selecting which crate to run (#477)bevy newnow emits an error if the name of the crate is invalid (#480)- Instructions in
bevy lint --helpno longer incorrectly says the linter needs to be installed manually (#465) - The example for
bevy completionshas been reworded to be clearer (#466)
v0.1.0-alpha.1 - 2025-05-23
All Changes: cli-v0.1.0-alpha.1
Added
bevy new: create new projects from a template usingcargo-generate(#2)bevy_new_minimalis the default template if none is specified (#80)- There are shortcuts for templates from TheBevyFlock. For example,
-t 2dusesbevy_new_2d(#82)
bevy lint: invoke the linter ifbevy_lintis installed (#4)bevy buildandbevy run: build and run your program with Bevy-specific configuration (#76, #103, #102, #120)bevy completions: generate terminal auto-complete scripts for a variety of shells (#265)- The CLI can be configured with
[package.metadata.bevy_cli](#331, #355, #351)