# What changed in @napi-rs/cli

> 26 changes in @napi-rs/cli 3 from its official release notes, upgrade guides and advisories: 2 breaking, 1 new APIs and options. Each one cited. Sources checked 2026-10-19. HTML: https://unstale.sh/npm/@napi-rs/cli/

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

## @napi-rs/cli 3

### Breaking changes

- Conversion depth is bounded at 128 levels, preventing excessively deep serde_json::Value conversions. (3.10.8) — [release notes](https://github.com/napi-rs/napi-rs/releases/tag/%40napi-rs/cli%403.10.8)
- The build now fails when a --pipe post-process command exits non-zero. (3.6.2) — [release notes](https://github.com/napi-rs/napi-rs/releases/tag/%40napi-rs/cli%403.6.2)

### New APIs and options

- The CLI can resolve the command from the provided arguments. (3.4.0) — [release notes](https://github.com/napi-rs/napi-rs/releases/tag/%40napi-rs/cli%403.4.0)

### Performance

- Type definition generation is parallelized deterministically. (3.6.2) — [release notes](https://github.com/napi-rs/napi-rs/releases/tag/%40napi-rs/cli%403.6.2)

### Behavior and default changes

- The threaded WASI worker pool is preloaded from the loader. (3.10.7) — [release notes](https://github.com/napi-rs/napi-rs/releases/tag/%40napi-rs/cli%403.10.7)
- New projects now apply enableTypeDef when generating project files. (3.6.2) — [release notes](https://github.com/napi-rs/napi-rs/releases/tag/%40napi-rs/cli%403.6.2)

### Tooling

- The CLI recognizes the aarch64-unknown-freebsd target. (3.10.8) — [release notes](https://github.com/napi-rs/napi-rs/releases/tag/%40napi-rs/cli%403.10.8)
- Generated JSON, TOML, YAML, `.d.ts`, and JS/WASI loader files now share a house style; regenerating bindings may produce noisy diffs without behavior changes. (3.9.1) — [release notes](https://github.com/napi-rs/napi-rs/releases/tag/%40napi-rs/cli%403.9.1)
- The interactive new-project prompt now includes napi9. (3.6.2) — [release notes](https://github.com/napi-rs/napi-rs/releases/tag/%40napi-rs/cli%403.6.2)
- The CLI is compatible with the latest wasi-sdk toolchain. (3.6.2) — [release notes](https://github.com/napi-rs/napi-rs/releases/tag/%40napi-rs/cli%403.6.2)

### Fixes and other changes

- The CLI keeps a WASI-managed root entry when it differs from package main. (3.10.8) — [release notes](https://github.com/napi-rs/napi-rs/releases/tag/%40napi-rs/cli%403.10.8)
- On Android, generated Node loaders preopen the current working directory instead of `/`, which Termux cannot open. (3.9.1) — [release notes](https://github.com/napi-rs/napi-rs/releases/tag/%40napi-rs/cli%403.9.1)
- Builds now select the matching emnapi archive and avoid double-linking _initialize on current WASI toolchains. (3.9.1) — [release notes](https://github.com/napi-rs/napi-rs/releases/tag/%40napi-rs/cli%403.9.1)
- The variable now activates only when set to 'true' or 'error'. (3.7.1) — [release notes](https://github.com/napi-rs/napi-rs/releases/tag/%40napi-rs/cli%403.7.1)
- Worker error messages are now received correctly. (3.7.1) — [release notes](https://github.com/napi-rs/napi-rs/releases/tag/%40napi-rs/cli%403.7.1)
- New non-WASI projects no longer retain stale browser metadata. (3.6.2) — [release notes](https://github.com/napi-rs/napi-rs/releases/tag/%40napi-rs/cli%403.6.2)
- WASI package generation preserves stricter Node engine ranges. (3.6.2) — [release notes](https://github.com/napi-rs/napi-rs/releases/tag/%40napi-rs/cli%403.6.2)
- Generated class methods are preserved. (3.6.2) — [release notes](https://github.com/napi-rs/napi-rs/releases/tag/%40napi-rs/cli%403.6.2)
- Pre-publish preserves existing optionalDependencies. (3.6.2) — [release notes](https://github.com/napi-rs/napi-rs/releases/tag/%40napi-rs/cli%403.6.2)
- universalize resolves an absolute packageJsonPath correctly. (3.6.2) — [release notes](https://github.com/napi-rs/napi-rs/releases/tag/%40napi-rs/cli%403.6.2)
- The pre-publish git log lookup now uses the target working directory. (3.6.2) — [release notes](https://github.com/napi-rs/napi-rs/releases/tag/%40napi-rs/cli%403.6.2)
- Renaming a project now preserves its repository. (3.6.2) — [release notes](https://github.com/napi-rs/napi-rs/releases/tag/%40napi-rs/cli%403.6.2)
- The CLI now uses jsPackageName from CLI options. (3.5.0) — [release notes](https://github.com/napi-rs/napi-rs/releases/tag/%40napi-rs/cli%403.5.0)
- The CommonJS binding no longer uses createRequire. (3.4.1) — [release notes](https://github.com/napi-rs/napi-rs/releases/tag/%40napi-rs/cli%403.4.1)
- Corrects how the CLI detects the OpenHarmony SDK path. (3.4.0) — [release notes](https://github.com/napi-rs/napi-rs/releases/tag/%40napi-rs/cli%403.4.0)
- The package no longer invokes process.report on Windows. (3.4.0) — [release notes](https://github.com/napi-rs/napi-rs/releases/tag/%40napi-rs/cli%403.4.0)
